See also crock.
I made a Common Lisp version of my Crock documentation markup.
+++ parse +++
Function PARSE
Syntax:
parse text => document
Arguments and Values:
text -- a string
document -- a Crock document
Description:
Parse the text given in the string and return a Crock document.
+++ create-document +++
Generic Function CREATE-DOCUMENT
Syntax:
create-document => document
Arguments and Values:
document -- an empty Crock document
+++ add-element +++
Generic Function ADD-ELEMENT
Syntax:
add-element container element
Arguments and Values:
container -- a Crock container element
element -- a Crock element
Description:
Append an element to a Crock container.
+++ as-form +++
Generic Function AS-FORM
Syntax:
as-form element => form
Arguments and Values:
element -- a Crock element
form -- an s-expression
Description:
Translate a document to a s-expression.
Examples:
> (as-form (parse "Hello, *World*! This /is/ just an `example`."))
(:DOCUMENT
(:PARAGRAPH "Hello, " (:STYLE :BOLD "World")
"! This " (:STYLE :ITALIC "is") " just an " (:KEYWORD "example") "."))Class CROCK-ELEMENT
Class CROCK-CONTAINER
Generic Function TITLE-OF
Generic Function TEXT-OF
Generic Function CAPTION-OF
Generic Function LINES-OF
Generic Function LEVEL-OF
Generic Function COLSPAN-OF
Generic Function STYLE-OF
Generic Function URL-OF
Generic Function NAME-OF
Generic Function CONTENTS-OF
Class CROCK-DOCUMENT
Class CROCK-TITLE
Class CROCK-HEADING
Class CROCK-TOC-ENTRY
Class CROCK-MACRO
Class CROCK-PARAGRAPH
Class CROCK-VERBATIM
Class CROCK-TABLE
Class CROCK-TABLE-ROW
Class CROCK-TABLE-CELL
Class CROCK-LIST
Class CROCK-LIST-ITEM
Class CROCK-INLINE-MACRO
Class CROCK-STYLE
Class CROCK-IMAGE
Class CROCK-URL
Class CROCK-KEYWORD
Class CROCK-EXTRA-WORD
Class CROCK-ANCHOR
Class CROCK-FOOTNOTE
(defun nl (text)
(substitute #\Newline #\& text))
(defun text-to-xhtml (text &optional (stream t))
(x:serialize
(crock-xml:document-to-xhtml
(crock:parse text))
stream))
(text-to-xhtml (nl "*** This is the title ***"))
(text-to-xhtml (nl "Hello, *World*! This /is/ just an `example`."))outputs:
<div class="crock-title">This is the title</div> <p>Hello, <b>World</b>! This <i>is</i> just an <tt>example</tt>.</p>