Index: openacs-4/packages/acs-core-docs/www/xml/engineering-standards/docbook-primer.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/engineering-standards/docbook-primer.xml,v diff -u -r1.9.2.4 -r1.9.2.5 --- openacs-4/packages/acs-core-docs/www/xml/engineering-standards/docbook-primer.xml 29 Nov 2003 16:09:37 -0000 1.9.2.4 +++ openacs-4/packages/acs-core-docs/www/xml/engineering-standards/docbook-primer.xml 1 Dec 2003 23:26:14 -0000 1.9.2.5 @@ -31,13 +31,13 @@ The documentation for OpenACS is written using DocBook XML. The reasons why we are using DocBook are explained in more details in the - section. I will add the reasons why + next section. A few more reasons why we are using Docbook XML instead of Docbook SGML: - Consistency. We already have a bunch of - .xml files that ArsDigita wrote. Trying to re-write them to + Consistency. We started with a collection + of DcoBook XML files that ArsDigita wrote. Trying to re-write them to conform to the SGML DTD would be unnecessary work (I tried). @@ -48,6 +48,11 @@ url="http://en.tldp.org/LDP/LDP-Author-Guide/docbookxml.html">LDP Author Guide. + + The tool chain has matured. xsltproc and other XML + based tools have improved to the point where they are about as good as + the SGML tools and generation of both html and pdf output is straighforward. + @@ -66,12 +71,12 @@ Theoretically any strict DTD would have been sufficient - we could even write our own. But DocBook has been around - for a while (since early 90's), - it's well-tested, it's complete, it's extremely well-suited for technical documents + for a while (since the early 90's), + it's well-tested, it's complete, it's designed for technical documentation and best of all, it's open-source. A growing community surrounds DocBook (has - mailing lists) + mailing lists) and a number of free and commercial - tools are available + tools are available for editing and publishing DocBook documents. @@ -177,7 +182,7 @@ System/Application Requirements Template. - + Document Structure @@ -223,7 +228,7 @@ SectionsHeadlines Given that your job starts at the sect1-level, all your documents should open with a - <sect1>-tag and end + <sect1>-tag and end with the corresponding </sect1>. @@ -250,18 +255,18 @@ - <sect1 id="docbook-primer" xreflabel="aD DocBook Primer"> - <title>aD DocBook Primer</title> +<sect1 id="docbook-primer" xreflabel="aD DocBook Primer"> + <title>aD DocBook Primer</title> - ... +... - </sect1> - +</sect1> + sect2 Inside this container your document will be split up into - <sect2>'s, + <sect2>'s, each with the same requirements - id and xreflabel attributes, and a <title>-tag inside. Actually, the xreflabel is never required in sections, but it makes linking to that section a lot easier. @@ -282,13 +287,13 @@ computeroutputcode For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we will use the tag - <computeroutput>. + <computeroutput>. This takes the place of the HTML-tag <code> For bigger chunks of code such as SQL-blocks, the tag - <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of + <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically. @@ -315,21 +320,21 @@ xreflinkendCheck out how I link to a subsection of the Developer's Guide: - - Put this in your XML: + Put this in your XML: - - Find information about creating a package in - <xref linkend="packages-making-a-package"></xref>. + +- Find information about creating a package in +<xref linkend="packages-making-a-package"></xref>. + + And the output is: - And the output is: + +- Find information about creating a package in +. + - - Find information about creating a package in - - - - Note that even though this is an empty tag, you have to either: @@ -351,21 +356,21 @@ If the section you link to hasn't a specified xreflabel-attribute, the link is going to look like this: - - Put this in your XML: + Put this in your XML: + +-Find information about what a package looks like in +<xref linkend="packages-looks"></xref>. + - - Find information about what a package looks like in - <xref linkend="packages-looks"></xref>. + And the output is: + +- Find information about what a package looks like in +. + - And the output is: - - Find information about what a package looks like in - - - - Note that since I haven't provided an xreflabel for the subsection, packages-looks, the @@ -383,7 +388,7 @@ If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just a little different - (<ulink>): + (<ulink>): @@ -422,29 +427,29 @@ GraphicsImages To insert a graphic we use the elements - <mediaobject>, - <imageobject>, + <mediaobject>, + <imageobject>, and - <imagedata>. + <imagedata>. The news is that you have to provide two versions of all your graphics - one for the Web (probably a GIF or a JPEG) and one for print (EPS). Finally you should provide a brief description wrapped in - <textobject> - + <textobject> - in HTML this will be the ALT text. - <mediaobject> - <imageobject> - <imagedata fileref="../images/rp-flow.gif" format="GIF" align="center"/> - </imageobject> - <imageobject> - <imagedata fileref="../images/rp-flow.eps" format="EPS" align="center"/> - </imageobject> - <textobject> - <phrase>This is an image of the flow in the Request Processor</phrase> - </textobject> - </mediaobject> - +<mediaobject> + <imageobject> + <imagedata fileref="../images/rp-flow.gif" format="GIF" align="center"/> + </imageobject> + <imageobject> + <imagedata fileref="../images/rp-flow.eps" format="EPS" align="center"/> + </imageobject> + <textobject> + <phrase>This is an image of the flow in the Request Processor</phrase> + </textobject> +</mediaobject> + Put your graphics in a separate directory ("images") and link to them @@ -468,20 +473,20 @@ Making an unordered list is pretty much like doing the same thing in HTML - if you close your <li>, that is. The only differences are that each list item has to be wrapped in something more, such as <para>, and that the tags are called - <itemizedlist> + <itemizedlist> and - <listitem>: + <listitem>: - - <itemizedlist> - - <listitem><para>Stuff goes here</para></listitem> - <listitem><para>More stuff goes here</para></listitem> + +<itemizedlist> - </itemizedlist> - + <listitem><para>Stuff goes here</para></listitem> + <listitem><para>More stuff goes here</para></listitem> +</itemizedlist> + + @@ -490,17 +495,17 @@ 2. How to make an <ol> The ordered list is like the preceding, except that you use - <orderedlist> instead: + <orderedlist> instead: - <orderedlist> - - <listitem><para>Stuff goes here</para></listitem> - <listitem><para>More stuff goes here</para></listitem> +<orderedlist> - </orderedlist> - + <listitem><para>Stuff goes here</para></listitem> + <listitem><para>More stuff goes here</para></listitem> +</orderedlist> + + @@ -510,27 +515,27 @@ This kind of list is called a variablelist and these are the tags you'll need to make it happen: - <variablelist>, - <varlistentry>, - <term> and - <listitem>: + <variablelist>, + <varlistentry>, + <term> and + <listitem>: - <variablelist> - - <varlistentry> - <term>Heading (<dt>) goes here</term> - <listitem><para>And stuff (<dd>)goes here</para></listitem> - </varlistentry> +<variablelist> - <varlistentry> - <term>Another heading goes here</term> - <listitem><para>And more stuff goes here</para></listitem> - </varlistentry> + <varlistentry> + <term>Heading (<dt>) goes here</term> + <listitem><para>And stuff (<dd>)goes here</para></listitem> + </varlistentry> - </variablelist> - + <varlistentry> + <term>Another heading goes here</term> + <listitem><para>And more stuff goes here</para></listitem> + </varlistentry> +</variablelist> + + @@ -545,43 +550,42 @@ informaltabletable DocBook supports several types of tables, but in most cases, the - <informaltable> + <informaltable> is enough: - <informaltable frame="all"> - <tgroup cols="3"> - <tbody> +<informaltable frame="all"> + <tgroup cols="3"> + <tbody> <row> - <entry>a1</entry> - <entry>b1</entry> - <entry>c1</entry> + <entry>a1</entry> + <entry>b1</entry> + <entry>c1</entry> </row> <row> - <entry>a2</entry> - <entry>b2</entry> - <entry>c2</entry> + <entry>a2</entry> + <entry>b2</entry> + <entry>c2</entry> </row> <row> - <entry>a3</entry> - <entry>b3</entry> - <entry>c3</entry> + <entry>a3</entry> + <entry>b3</entry> + <entry>c3</entry> </row> - </tbody> - </tgroup> - </informaltable> - + </tbody> + </tgroup> +</informaltable> + With our current XSL-style-sheet, the output of the markup above will be a simple HTML-table: -
@@ -607,12 +611,11 @@ -
If you want cells to span more than one row or column, it gets a bit more complicated - check out - <table> + <table> for an example.
@@ -625,7 +628,7 @@ emphasisbold, italics Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - - <emphasis>. + <emphasis>. @@ -647,9 +650,9 @@ Use - <indexterm>, - <primary> and - <secondary> + <indexterm>, + <primary> and + <secondary> for this. See these links for an explanation. @@ -663,9 +666,8 @@ Once you have the - installed, you can convert your xml documents to HTML (or other - formats. Let me know if you are able to convert to other - formats). + installed, you can convert your xml documents to HTML or other + formats. @@ -675,15 +677,18 @@ multiple files, you call a different stylesheet. + + To generate a single HTML file from your DocBook XML file, use the command: bash$ xsltproc -o outputfilename.xml /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/html.xsl filename.xml - + + This example uses Daniel Veillard's bash$ xsltproc /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl filename.xml - + + + You could also look at the acs-core-docs Makefile + for examples of how these documents are generated.` + +