Table of Contents
processFile: Process one input file
class ArticleHandler: The customized content handler
ArticleHandler.startElement(): Observe a start tag
ArticleHandler.characters(): Observe text content
ArticleHandler.endElement(): Observe an end tag
Programs must be written for people to read, and only incidentally for machines to execute.
|-- Structure and interpretation of computer programs, Harold Abelson and Gerald Jay Sussman, p. xvii|
By literate programming, we mean programs that are intended to be readable. The idea comes from Dr. Donald E. Knuth and has a long history. For background, see the Literate Programming web site.
cweb system interwove
narrative about the program with the actual source code of
the program. One then runs a tool named
ctangle to generate the source code,
an a different tool named
generate the online documentation.
The present effort was inspired by similar efforts of Dr. Allan M. Stavely, who suggested using DocBook as a general framework for literate programming. Refer to Writing documentation with DocBook-XML 4.2 for more information on DocBook.
Stavely's idea was to use DocBook's existing
programlisting element to hold the
program fragments, adding a
role='executable' attribute to that
element to distinguish executable source code from other
uses of the
This means that the regular processing of DocBook into HTML
and PDF forms becomes the new equivalent of Knuth's
The remaining half of the problem, the extraction of the executable code from the DocBook source file, is the subject of this document.