scribble

Scribble is a Scribe-like reader for CL by Fare Rideau.

Scribble is a Library that extends the Common Lisp reader with the text markup syntax of Scribe. (The Scribe being discussed is the Scheme-based document preparation system by the author of Bigloo; it is not the antique system of same name that inspired LaTeX and was used in early CMUCL documentation). It defines #\[ as a macro-character that reads a Lisp-extended markup language. Scribble may be useful to you if like Scribe's syntax and want to use it in Common Lisp application. It may also be used to read and recycle existing Scribe documents.

The Scribe syntax is a markup syntax that allows to develop documents in a programmatic way. The syntax integrates very nicely with the LISP syntax; it is infinitely nicer than XML (easy thing to do); and it is noticeably shorter than the equivalent SEXP it produces.

Scribble also contains some extensions to the Scribe syntax:

The actual result is configurable, and configurations already exist for several html generation backends (see below).

Scribble also features an optional extension to Scribe's semantics: [foo] can be actually read as (pp "foo") rather than "foo", so you can wrap or preprocess strings. You can for instance (with-preprocessor #'string-upcase [foo]). This applies to the strings in the cases demonstrated above; they have been shown with this extension disabled for the sake of simplicity.

Scribble is in my (Fare Rideau's) personal CVS zone, under fare/fare/lisp/scribble.lisp. It is mirrored for anonymous access by the TUNES project CVS, so you can browse the viewcvs interface.

Download ASDF package from http://fare.tunes.org/asdf-packages/scribble.tar.gz

Scribble depends on Meta by Jochen Schmidt, version 0.1.1 or later, that implements the famous META parsing technique documented by Henry Baker.

Thanks to Kevin Rosenberg, you can install Scribble on debian with

        apt-get install cl-scribble

Mind that this package emphatically does not implement any of Scribe's semantics. It only implements the reader. In particular, it doesn't include an implementation of Scribe's semantics for keyword arguments, and it doesn't include any infrastructure to output HTML, LaTeX, info, Text, etc., from Scribe documents. Instead, Scribble will be a nice front-end for your usual CL Web infrastructure or Lisp Markup Languages, if only customized with the proper setf. The html generation backends from the following packages are already supported in version 1.18: lml2, htmlgen from allegroserve, and also araneida (with a patch); should work but untested: cl-who, htout, yaclml.


This page is linked from: Exscribe   Fare Rideau   Lisp Markup Languages   meta  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively