Here is what (I think) I know about the current generation process of the Oz documentation.

The source is in some Mozart-specific SGML format.

From it , we generate documentation in html and TeX. The former is also used to produce the chm (Windows) file, the latter is used to produce dvi (which we don't distribute for no obvious reason), ps and pdf.

To create the html doc, we use a custom oz frontend to nsgmls (for text) and emacs (for code) which is essentially an hardcoded complex stylesheet (uses lots of things in contrib -- gdbm, sgml, etc.). We build the documentation twice so as to get all cross-references correct.


To create the TeX doc, we convert the SGML file to XML using nsgmls and a custom perl script. From this first XML file we extract the images we need to convert to ps using giftopnm and pnmtops and we produce cross-reference information by an XSLT transform. We also use this first XML file to produce more XML files using successive XSLT transforms (using Java/sax) It is first annotated (gives unique ids, propagate inherited attributes, etc.); then an emacs lisp file is generated from the annotated XML and emacs is called to produce an XML file of the highlighted code; the annotated XML and highlighted XML are combined in an prefaced XML file (essentially they are appended together); then this is converted to a single XML document where the highlighted code is put in place (called defaced XML); this file is then augmented with cross-reference and author information (again in two phases);
finally, this is then converted to TeX by a last XSLT transform.

The TeX is then compiled to dvi then to ps and finally to pdf.

Yves
_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to