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:
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 source code is at: http://common-lisp.net/gitweb?p=users/frideau/scribble.git
Scribble depends on Meta by Jochen Schmidt, version 0.1.1 or later, that implements the famous META parsing technique documented by Henry Baker.
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