= AspectJ docs == Contents and build This module contains the sources for the documentation delivered with the AspectJ distribution and for various internal, teaching, and online works: * `devGuideDB`: DocBook sources for the AspectJ Development Environment Guide * `progGuideDB`: DocBook sources for the AspectJ Programming Language Guide * `faq`: DocBook sources for the AspectJ Frequently Asked Questions * `sandbox`: a collection of sample AspectJ programs, tools built on the AspectJ API's, script snippets, and instructional trails, all intended to serve as sources for documentation. See xref:sandbox/readme-sandbox.adoc[]. * `teaching`: Teaching materials, esp. for the AspectJ tutorials. * `quick.doc`: The Microsoft Word source file for the .pdf Quick Reference guides `dist/doc/quick.pdf` and `dist/doc/quickA4.pdf`. * `build.xml`: Ant build script for the doc distribution * `developer`: Docs for AspectJ developers *Build*: `build.xml` assembles a local distribution which is gathered into the product distribution by the master build script, `../build/build.xml`. Dependencies outside this directory: * `.xml` files refer to their docbook dtds using relative path, for the moment `../../lib/docbook/...` * When building docbook, uses `../lib/saxon` libraries. * When building installer, using `../lib/build/build.jar` and the `../build/installer-resources`. * `dist/doc/quick.pdf` is generated manually from `quick.doc`. * `../org.aspectj.lib` provides library sources for `{AspectJ}/doc/aspectjlib`. When editing the build script and XML files, try to make only substantive changes rather than reformatting, which produces illusory changes. If you do reformat, do so programmatically (e.g., using XMLBuddy plugin reformat command, with long lines wrapped and 80 character lines). == Docbook notes #*TODO:* Remove this section after AsciiDoc conversion is complete# Documentation is written in docbook XML form, which is transformed to HTML (single-page and multi-page forms) and, potentially, PDF. Unfortunately, this means you need to use the tags which are not only legal, but which work when transformed into all output formats, even if it means working around bugs in the transform scripts. Following are some notes on traps to avoid. === Authoring support XMLBuddy has a free eclipse plugin that displays errors using problem items and gutter annotations, but it gets confused by entity references. So for devguide.xml, create a new file foo.xml and do a manual merge, correct the files, and then scatter again (leo?). === PDF transformation The transformation from docbook XML to formatting-objects (.fo) to pdf is fairly weak. If you run the build.xml `test-pdf` task, you'll see a number of debug messages, which unfortunately give no clue as to the location of the problem. Problems noted in the output (where DE == docbook element) * tables broken. ** DE `table` unsupported ** DE `informaltable` autolayout is not supported * lineation/justification broken * need things like page header/footer titles, page number, copyright * Valid docbook elements not supported: ** superscript in title * ... Sample debug messages: - `area contents overflows area in line` - `table-layout=auto is not supported, using fixed!` - `The element 'fo:table-and-caption' is not yet implemented.` (So use docbook element (DE) `informaltable`, not DE `table`.) - `No spaces to justify text in line` many times == Older notes === Misc info for writing and building docbook * link tag linkend attribute takes an id ** xsl converts as needed during output ** do NOT use `ulink`; this will be converted to `""` (but see param `citerefentry-link`: might enable this) * to use sensible names for the files produced, ** use an xsl wrapper to add/modify features ** set flag to use the id of the top-level element in the output file as the filename. + `xsl:param name="use.id.as.filename" select="1"` ** fyi, other related parameters: `html-ext`, `root-filename` ** In this example, the top-level element in the output file is the `refentry`, so set ids which become the basename of the file: + + refentry id="aspectj-mode" # in aspectj-mode.xml, produces aspecj-mode.html refentry id="ajdee" # in ajdee.xml, produces ajdee.html ** related parameters: `html-ext`, `root-filename` ** these tags did not work for me: `dbhtml filename="foo.htm"`, `dbhtml prefix="foo-"` == Resources - the dtd reference for docbook http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html - the stylesheet reference for docbook xsl http://docbook.sourceforge.net/projects/dsssl/doc/html.html == To Do - fyi, generate.reference.titlepage appears not to be respected. tried to add if statement to html/refentry.xsl, but file still gen'd