[yelp-xsl/wip/xslduck] Change xsldoc to use ducktype



commit 6e1df911f1309025eb69dc07ffc92435e09c2457
Author: Shaun McCance <shaunm redhat com>
Date:   Sat Sep 22 19:03:59 2018 -0400

    Change xsldoc to use ducktype

 .gitignore                                         |   1 +
 doc/yelp-xsl/C/color.a.page                        |  91 +-
 doc/yelp-xsl/C/color.b.page                        |  98 +-
 doc/yelp-xsl/C/color.bg.blue.page                  |  17 +-
 doc/yelp-xsl/C/color.bg.dark.page                  |  20 +-
 doc/yelp-xsl/C/color.bg.gray.page                  |  17 +-
 doc/yelp-xsl/C/color.bg.green.page                 |  17 +-
 doc/yelp-xsl/C/color.bg.orange.page                |  17 +-
 doc/yelp-xsl/C/color.bg.page                       |  25 +-
 doc/yelp-xsl/C/color.bg.purple.page                |  17 +-
 doc/yelp-xsl/C/color.bg.red.page                   |  17 +-
 doc/yelp-xsl/C/color.bg.yellow.page                |  17 +-
 doc/yelp-xsl/C/color.blend.page                    | 136 ++-
 doc/yelp-xsl/C/color.blue.page                     |  25 +-
 doc/yelp-xsl/C/color.contrast.page                 | 116 ++-
 doc/yelp-xsl/C/color.fg.blue.page                  |  17 +-
 doc/yelp-xsl/C/color.fg.dark.page                  |  19 +-
 doc/yelp-xsl/C/color.fg.gray.page                  |  17 +-
 doc/yelp-xsl/C/color.fg.green.page                 |  17 +-
 doc/yelp-xsl/C/color.fg.orange.page                |  17 +-
 doc/yelp-xsl/C/color.fg.page                       |  25 +-
 doc/yelp-xsl/C/color.fg.purple.page                |  17 +-
 doc/yelp-xsl/C/color.fg.red.page                   |  17 +-
 doc/yelp-xsl/C/color.fg.yellow.page                |  17 +-
 doc/yelp-xsl/C/color.g.page                        |  98 +-
 doc/yelp-xsl/C/color.gray.page                     |  25 +-
 doc/yelp-xsl/C/color.green.page                    |  25 +-
 doc/yelp-xsl/C/color.hex2dec.page                  |  96 +-
 doc/yelp-xsl/C/color.orange.page                   |  25 +-
 doc/yelp-xsl/C/color.page                          |  91 +-
 doc/yelp-xsl/C/color.purple.page                   |  25 +-
 doc/yelp-xsl/C/color.r.page                        |  98 +-
 doc/yelp-xsl/C/color.red.page                      |  25 +-
 doc/yelp-xsl/C/color.rl.page                       | 109 ++-
 doc/yelp-xsl/C/color.yellow.page                   |  25 +-
 doc/yelp-xsl/C/db-chunk.page                       |  43 +-
 doc/yelp-xsl/C/db-common.page                      |  69 +-
 doc/yelp-xsl/C/db-profile.page                     |  67 +-
 doc/yelp-xsl/C/db-title.page                       |  47 +-
 doc/yelp-xsl/C/db-xref.page                        | 116 ++-
 doc/yelp-xsl/C/db.biblio.abbrev.key.page           |  18 +-
 doc/yelp-xsl/C/db.biblio.id.key.page               |  17 +-
 doc/yelp-xsl/C/db.biblio.label.key.page            |  17 +-
 doc/yelp-xsl/C/db.chunk.basename.page              |  14 +-
 doc/yelp-xsl/C/db.chunk.chunk-id.axis.page         |  79 +-
 doc/yelp-xsl/C/db.chunk.chunk-id.page              |  68 +-
 doc/yelp-xsl/C/db.chunk.depth-in-chunk.page        |  40 +-
 doc/yelp-xsl/C/db.chunk.depth-of-chunk.page        |  40 +-
 doc/yelp-xsl/C/db.chunk.extension.page             |  14 +-
 doc/yelp-xsl/C/db.chunk.max_depth.page             |  14 +-
 doc/yelp-xsl/C/db.copyright.page                   |  31 +-
 doc/yelp-xsl/C/db.glossentry.key.page              |  17 +-
 doc/yelp-xsl/C/db.id.key.page                      |  16 +-
 doc/yelp-xsl/C/db.linenumbering.start.page         |  32 +-
 doc/yelp-xsl/C/db.orderedlist.start.page           |  60 +-
 doc/yelp-xsl/C/db.personname.list.page             |  34 +-
 doc/yelp-xsl/C/db.personname.page                  |  32 +-
 doc/yelp-xsl/C/db.profile.arch.page                |  24 +-
 doc/yelp-xsl/C/db.profile.audience.page            |  24 +-
 doc/yelp-xsl/C/db.profile.condition.page           |  24 +-
 doc/yelp-xsl/C/db.profile.conformance.page         |  24 +-
 doc/yelp-xsl/C/db.profile.os.page                  |  24 +-
 doc/yelp-xsl/C/db.profile.outputformat.page        |  24 +-
 doc/yelp-xsl/C/db.profile.revision.page            |  24 +-
 doc/yelp-xsl/C/db.profile.security.page            |  24 +-
 doc/yelp-xsl/C/db.profile.test.page                |  74 +-
 doc/yelp-xsl/C/db.profile.userlevel.page           |  24 +-
 doc/yelp-xsl/C/db.profile.vendor.page              |  24 +-
 doc/yelp-xsl/C/db.profile.wordsize.page            |  24 +-
 doc/yelp-xsl/C/db.subtitle.page                    |  50 +-
 doc/yelp-xsl/C/db.title.page                       |  63 +-
 doc/yelp-xsl/C/db.titleabbrev.page                 |  48 +-
 doc/yelp-xsl/C/db.ulink.tooltip.page               |  55 +-
 doc/yelp-xsl/C/db.xref.content.page                |  74 +-
 doc/yelp-xsl/C/db.xref.target.page                 |  68 +-
 doc/yelp-xsl/C/db.xref.tooltip.mode.page           |  14 +-
 doc/yelp-xsl/C/db.xref.tooltip.page                |  60 +-
 doc/yelp-xsl/C/db2html-bibliography.page           | 343 ++++++-
 doc/yelp-xsl/C/db2html-block.page                  | 318 ++++++-
 doc/yelp-xsl/C/db2html-callout.page                |  88 +-
 doc/yelp-xsl/C/db2html-classsynopsis.page          | 206 ++++-
 doc/yelp-xsl/C/db2html-cmdsynopsis.page            | 149 +++-
 doc/yelp-xsl/C/db2html-css.page                    |  90 +-
 doc/yelp-xsl/C/db2html-division.page               | 294 +++++-
 doc/yelp-xsl/C/db2html-ebnf.page                   |  58 +-
 doc/yelp-xsl/C/db2html-footnote.page               |  58 +-
 doc/yelp-xsl/C/db2html-funcsynopsis.page           | 118 ++-
 doc/yelp-xsl/C/db2html-index.page                  | 137 ++-
 doc/yelp-xsl/C/db2html-inline.page                 | 992 ++++++++++++++++++++-
 doc/yelp-xsl/C/db2html-links.page                  |  68 +-
 doc/yelp-xsl/C/db2html-list.page                   | 242 ++++-
 doc/yelp-xsl/C/db2html-math.page                   | 104 ++-
 doc/yelp-xsl/C/db2html-media.page                  | 135 ++-
 doc/yelp-xsl/C/db2html-refentry.page               | 156 +++-
 doc/yelp-xsl/C/db2html-table.page                  |  97 +-
 doc/yelp-xsl/C/db2html-xref.page                   |  97 +-
 doc/yelp-xsl/C/db2html.anchor.page                 |  37 +-
 doc/yelp-xsl/C/db2html.audiodata.page              |  42 +-
 doc/yelp-xsl/C/db2html.biblioentry.data.page       |  51 +-
 doc/yelp-xsl/C/db2html.biblioentry.label.page      |  43 +-
 doc/yelp-xsl/C/db2html.biblioentry.mode.page       |  17 +-
 doc/yelp-xsl/C/db2html.block.formal.page           | 113 ++-
 doc/yelp-xsl/C/db2html.block.page                  |  65 +-
 doc/yelp-xsl/C/db2html.block.title.page            |  62 +-
 doc/yelp-xsl/C/db2html.blockquote.page             |  56 +-
 doc/yelp-xsl/C/db2html.callout.label.page          |  33 +-
 doc/yelp-xsl/C/db2html.class.cpp.mode.page         |  17 +-
 doc/yelp-xsl/C/db2html.class.python.mode.page      |  16 +-
 doc/yelp-xsl/C/db2html.classsynopsis.language.page |  19 +-
 .../C/db2html.cmdsynopsis.sbr.padding.mode.page    |  48 +-
 doc/yelp-xsl/C/db2html.colspec.colnum.page         |  53 +-
 doc/yelp-xsl/C/db2html.division.about.page         |  56 +-
 .../C/db2html.division.div.content.mode.page       |  37 +-
 doc/yelp-xsl/C/db2html.division.div.page           | 100 ++-
 doc/yelp-xsl/C/db2html.entry.colnum.page           |  61 +-
 doc/yelp-xsl/C/db2html.entry.colspan.page          |  56 +-
 doc/yelp-xsl/C/db2html.entry.implicit.page         | 121 ++-
 doc/yelp-xsl/C/db2html.entry.page                  | 149 +++-
 doc/yelp-xsl/C/db2html.footnote.footer.page        |  52 +-
 doc/yelp-xsl/C/db2html.footnote.link.page          |  31 +-
 doc/yelp-xsl/C/db2html.footnote.note.page          |  38 +-
 doc/yelp-xsl/C/db2html.funcsynopsis.style.page     |  18 +-
 doc/yelp-xsl/C/db2html.hgroup.page                 |  65 +-
 doc/yelp-xsl/C/db2html.imagedata.page              |  46 +-
 doc/yelp-xsl/C/db2html.inline.children.page        |  45 +-
 doc/yelp-xsl/C/db2html.inline.content.mode.page    |  14 +-
 doc/yelp-xsl/C/db2html.inline.page                 |  86 +-
 doc/yelp-xsl/C/db2html.link.page                   |  57 +-
 doc/yelp-xsl/C/db2html.links.linktrail.page        |  56 +-
 doc/yelp-xsl/C/db2html.links.next.page             |  67 +-
 doc/yelp-xsl/C/db2html.links.section.page          |  47 +-
 doc/yelp-xsl/C/db2html.math.div.page               |  49 +-
 doc/yelp-xsl/C/db2html.math.mode.page              |  19 +-
 doc/yelp-xsl/C/db2html.math.span.page              |  46 +-
 doc/yelp-xsl/C/db2html.mediaobject.fallback.page   |  42 +-
 doc/yelp-xsl/C/db2html.mediaobject.page            |  51 +-
 doc/yelp-xsl/C/db2html.page                        |  69 +-
 doc/yelp-xsl/C/db2html.para.page                   |  65 +-
 doc/yelp-xsl/C/db2html.pre.page                    |  93 +-
 doc/yelp-xsl/C/db2html.row.page                    |  86 +-
 doc/yelp-xsl/C/db2html.spanstr.page                |  68 +-
 doc/yelp-xsl/C/db2html.spanstr.pop.page            |  61 +-
 doc/yelp-xsl/C/db2html.ulink.page                  |  48 +-
 doc/yelp-xsl/C/db2html.videodata.page              |  45 +-
 doc/yelp-xsl/C/db2html.xlink.page                  |  64 +-
 doc/yelp-xsl/C/db2html.xref.page                   |  84 +-
 doc/yelp-xsl/C/db2xhtml.page                       |  68 +-
 doc/yelp-xsl/C/html.basename.page                  |  19 +-
 doc/yelp-xsl/C/html.body.attr.mode.page            |  17 +-
 doc/yelp-xsl/C/html.body.mode.page                 |  17 +-
 doc/yelp-xsl/C/html.bottom.custom.page             | 118 ++-
 doc/yelp-xsl/C/html.class.attr.mode.page           |  21 +-
 doc/yelp-xsl/C/html.class.attr.page                | 134 ++-
 doc/yelp-xsl/C/html.content.post.custom.page       | 129 ++-
 doc/yelp-xsl/C/html.content.post.mode.page         |  35 +-
 doc/yelp-xsl/C/html.content.post.page              | 140 ++-
 doc/yelp-xsl/C/html.content.pre.custom.page        | 128 ++-
 doc/yelp-xsl/C/html.content.pre.mode.page          |  35 +-
 doc/yelp-xsl/C/html.content.pre.page               | 140 ++-
 doc/yelp-xsl/C/html.css.content.page               | 173 +++-
 doc/yelp-xsl/C/html.css.core.page                  | 158 +++-
 doc/yelp-xsl/C/html.css.custom.page                | 155 +++-
 doc/yelp-xsl/C/html.css.elements.page              | 161 +++-
 doc/yelp-xsl/C/html.css.mode.page                  |  49 +-
 doc/yelp-xsl/C/html.css.page                       | 162 +++-
 doc/yelp-xsl/C/html.css.root.page                  |  25 +-
 doc/yelp-xsl/C/html.css.syntax.page                | 158 +++-
 doc/yelp-xsl/C/html.extension.page                 |  17 +-
 doc/yelp-xsl/C/html.footer.custom.page             | 118 ++-
 doc/yelp-xsl/C/html.footer.mode.page               |  18 +-
 doc/yelp-xsl/C/html.head.custom.page               | 118 ++-
 doc/yelp-xsl/C/html.head.top.custom.page           | 118 ++-
 doc/yelp-xsl/C/html.header.custom.page             | 118 ++-
 doc/yelp-xsl/C/html.header.mode.page               |  18 +-
 doc/yelp-xsl/C/html.js.content.custom.page         | 120 ++-
 doc/yelp-xsl/C/html.js.content.page                | 140 ++-
 doc/yelp-xsl/C/html.js.core.page                   | 115 ++-
 doc/yelp-xsl/C/html.js.custom.page                 | 118 ++-
 doc/yelp-xsl/C/html.js.mathjax.page                | 117 ++-
 doc/yelp-xsl/C/html.js.media.page                  | 117 ++-
 doc/yelp-xsl/C/html.js.mode.page                   |  18 +-
 doc/yelp-xsl/C/html.js.page                        | 135 ++-
 doc/yelp-xsl/C/html.js.root.page                   |  25 +-
 doc/yelp-xsl/C/html.js.script.page                 | 126 ++-
 doc/yelp-xsl/C/html.js.syntax.page                 | 119 ++-
 doc/yelp-xsl/C/html.js.ui.page                     | 115 ++-
 doc/yelp-xsl/C/html.lang.attrs.page                | 160 +++-
 doc/yelp-xsl/C/html.linktrails.empty.page          | 119 ++-
 doc/yelp-xsl/C/html.linktrails.prefix.page         | 118 ++-
 doc/yelp-xsl/C/html.mathml.namespace.page          |  18 +-
 doc/yelp-xsl/C/html.media.controls.page            | 115 ++-
 doc/yelp-xsl/C/html.namespace.page                 |  18 +-
 doc/yelp-xsl/C/html.output.after.mode.page         |  17 +-
 doc/yelp-xsl/C/html.output.page                    | 164 +++-
 doc/yelp-xsl/C/html.output.prefix.page             |  26 +-
 doc/yelp-xsl/C/html.page                           | 354 +++++++-
 doc/yelp-xsl/C/html.page.page                      | 209 ++++-
 doc/yelp-xsl/C/html.sidebar.contents.mode.page     |  31 +-
 doc/yelp-xsl/C/html.sidebar.contents.page          | 135 ++-
 doc/yelp-xsl/C/html.sidebar.custom.page            | 125 ++-
 doc/yelp-xsl/C/html.sidebar.left.page              |  26 +-
 doc/yelp-xsl/C/html.sidebar.mode.page              |  40 +-
 doc/yelp-xsl/C/html.sidebar.page                   | 159 +++-
 doc/yelp-xsl/C/html.sidebar.right.page             |  26 +-
 doc/yelp-xsl/C/html.sidebar.sections.mode.page     |  31 +-
 doc/yelp-xsl/C/html.sidebar.sections.page          | 135 ++-
 doc/yelp-xsl/C/html.svg.namespace.page             |  18 +-
 doc/yelp-xsl/C/html.syntax.class.mode.page         |  17 +-
 doc/yelp-xsl/C/html.syntax.class.page              | 129 ++-
 doc/yelp-xsl/C/html.syntax.highlight.page          |  25 +-
 doc/yelp-xsl/C/html.title.mode.page                |  18 +-
 doc/yelp-xsl/C/html.top.custom.page                | 118 ++-
 doc/yelp-xsl/C/html.xhtml.page                     |  28 +-
 doc/yelp-xsl/C/icons.page                          | 100 ++-
 doc/yelp-xsl/C/icons.size.quote.page               |  29 +-
 doc/yelp-xsl/C/icons.svg.figure.zoom.in.page       |  21 +-
 doc/yelp-xsl/C/icons.svg.figure.zoom.out.page      |  21 +-
 doc/yelp-xsl/C/icons.svg.media.pause.page          |  18 +-
 doc/yelp-xsl/C/icons.svg.media.play.page           |  18 +-
 doc/yelp-xsl/C/icons.svg.mode.page                 |  19 +-
 doc/yelp-xsl/C/icons.svg.note.advanced.page        |  27 +-
 doc/yelp-xsl/C/icons.svg.note.bug.page             |  27 +-
 doc/yelp-xsl/C/icons.svg.note.caution.page         |  27 +-
 doc/yelp-xsl/C/icons.svg.note.danger.page          |  27 +-
 doc/yelp-xsl/C/icons.svg.note.important.page       |  27 +-
 doc/yelp-xsl/C/icons.svg.note.note.page            |  27 +-
 doc/yelp-xsl/C/icons.svg.note.package.page         |  27 +-
 doc/yelp-xsl/C/icons.svg.note.page                 |  68 +-
 doc/yelp-xsl/C/icons.svg.note.tip.page             |  27 +-
 doc/yelp-xsl/C/icons.svg.note.warning.page         |  27 +-
 doc/yelp-xsl/C/index.page                          |  15 +-
 doc/yelp-xsl/C/keys.page                           |  80 +-
 doc/yelp-xsl/C/l10n-numbers.page                   |  27 +-
 doc/yelp-xsl/C/l10n.align.end.page                 |  48 +-
 doc/yelp-xsl/C/l10n.align.start.page               |  48 +-
 doc/yelp-xsl/C/l10n.direction.page                 |  52 +-
 doc/yelp-xsl/C/l10n.format.mode.page               |  55 +-
 doc/yelp-xsl/C/l10n.gettext.page                   | 189 ++--
 doc/yelp-xsl/C/l10n.locale.page                    |  17 +-
 doc/yelp-xsl/C/l10n.msgstr.key.page                |  17 +-
 doc/yelp-xsl/C/l10n.number.alphabetic.page         |  45 +-
 doc/yelp-xsl/C/l10n.number.cjk-ideographic.page    |  44 +-
 doc/yelp-xsl/C/l10n.number.ionic.page              |  44 +-
 doc/yelp-xsl/C/l10n.number.numeric.page            |  45 +-
 doc/yelp-xsl/C/l10n.number.page                    |  54 +-
 doc/yelp-xsl/C/l10n.page                           |  95 +-
 doc/yelp-xsl/C/l10n.plural.form.page               |  54 +-
 doc/yelp-xsl/C/mal-cache.page                      |  81 +-
 doc/yelp-xsl/C/mal-gloss.page                      |  36 +-
 doc/yelp-xsl/C/mal-if.page                         |  49 +-
 doc/yelp-xsl/C/mal-link.page                       |  98 +-
 doc/yelp-xsl/C/mal-sort.page                       |  58 +-
 doc/yelp-xsl/C/mal.cache.file.page                 |  17 +-
 doc/yelp-xsl/C/mal.cache.id.page                   |  19 +-
 doc/yelp-xsl/C/mal.cache.info.page                 |  11 +-
 doc/yelp-xsl/C/mal.cache.key.page                  |  20 +-
 doc/yelp-xsl/C/mal.cache.link.key.page             |  20 +-
 doc/yelp-xsl/C/mal.cache.page                      |  28 +-
 doc/yelp-xsl/C/mal.gloss.key.page                  |  16 +-
 doc/yelp-xsl/C/mal.gloss.match.page                |  48 +-
 doc/yelp-xsl/C/mal.gloss.terms.page                |  61 +-
 doc/yelp-xsl/C/mal.if.custom.page                  |  25 +-
 doc/yelp-xsl/C/mal.if.features.page                |  26 +-
 doc/yelp-xsl/C/mal.if.maybe.page                   |  27 +-
 doc/yelp-xsl/C/mal.if.platform.page                |  26 +-
 doc/yelp-xsl/C/mal.if.target.page                  |  26 +-
 doc/yelp-xsl/C/mal.if.test.page                    |  80 +-
 doc/yelp-xsl/C/mal.link.content.custom.page        |  92 +-
 doc/yelp-xsl/C/mal.link.content.mode.page          |  17 +-
 doc/yelp-xsl/C/mal.link.content.page               | 135 ++-
 doc/yelp-xsl/C/mal.link.default_root.page          |  26 +-
 doc/yelp-xsl/C/mal.link.desc.custom.page           |  92 +-
 doc/yelp-xsl/C/mal.link.desc.page                  | 128 ++-
 doc/yelp-xsl/C/mal.link.extension.page             |  17 +-
 doc/yelp-xsl/C/mal.link.guidelinks.page            |  99 +-
 doc/yelp-xsl/C/mal.link.linkid.page                |  55 +-
 doc/yelp-xsl/C/mal.link.linktrails.page            | 105 ++-
 doc/yelp-xsl/C/mal.link.prefix.page                |  17 +-
 doc/yelp-xsl/C/mal.link.seealsolinks.page          |  99 +-
 doc/yelp-xsl/C/mal.link.sorttitle.page             |  60 +-
 doc/yelp-xsl/C/mal.link.target.custom.page         |  76 +-
 doc/yelp-xsl/C/mal.link.target.extended.page       |  77 +-
 doc/yelp-xsl/C/mal.link.target.page                |  95 +-
 doc/yelp-xsl/C/mal.link.tooltip.custom.page        |  92 +-
 doc/yelp-xsl/C/mal.link.tooltip.page               | 131 ++-
 doc/yelp-xsl/C/mal.link.topiclinks.page            | 115 ++-
 doc/yelp-xsl/C/mal.link.xref.linkid.page           |  60 +-
 doc/yelp-xsl/C/mal.sort.tsort.page                 |  60 +-
 doc/yelp-xsl/C/mal2html-api.page                   |  63 +-
 doc/yelp-xsl/C/mal2html-block.page                 | 311 ++++++-
 doc/yelp-xsl/C/mal2html-gloss.page                 |  95 +-
 doc/yelp-xsl/C/mal2html-inline.page                | 276 +++++-
 doc/yelp-xsl/C/mal2html-links.page                 | 162 +++-
 doc/yelp-xsl/C/mal2html-list.page                  | 135 ++-
 doc/yelp-xsl/C/mal2html-math.page                  | 110 ++-
 doc/yelp-xsl/C/mal2html-media.page                 | 165 +++-
 doc/yelp-xsl/C/mal2html-page.page                  | 276 +++++-
 doc/yelp-xsl/C/mal2html-svg.page                   |  91 +-
 doc/yelp-xsl/C/mal2html-table.page                 | 105 ++-
 doc/yelp-xsl/C/mal2html-ui.page                    | 106 ++-
 doc/yelp-xsl/C/mal2html.api.links.function.c.page  |  77 +-
 doc/yelp-xsl/C/mal2html.api.links.function.page    |  61 +-
 doc/yelp-xsl/C/mal2html.block.mode.page            |  34 +-
 doc/yelp-xsl/C/mal2html.editor.badge.page          |  88 +-
 doc/yelp-xsl/C/mal2html.editor.banner.page         |  94 +-
 doc/yelp-xsl/C/mal2html.editor_mode.page           |  25 +-
 doc/yelp-xsl/C/mal2html.gloss.terms.page           |  64 +-
 doc/yelp-xsl/C/mal2html.inline.content.mode.page   |  18 +-
 doc/yelp-xsl/C/mal2html.inline.mode.page           |  24 +-
 doc/yelp-xsl/C/mal2html.links.guide.page           |  64 +-
 doc/yelp-xsl/C/mal2html.links.links.page           | 112 ++-
 doc/yelp-xsl/C/mal2html.links.prevnext.page        |  66 +-
 doc/yelp-xsl/C/mal2html.links.section.page         |  59 +-
 doc/yelp-xsl/C/mal2html.links.seealso.page         |  64 +-
 doc/yelp-xsl/C/mal2html.links.series.next.page     |  73 +-
 doc/yelp-xsl/C/mal2html.links.series.page          |  64 +-
 doc/yelp-xsl/C/mal2html.links.series.prev.page     |  76 +-
 doc/yelp-xsl/C/mal2html.links.topic.page           |  81 +-
 doc/yelp-xsl/C/mal2html.links.ul.li.page           | 103 ++-
 doc/yelp-xsl/C/mal2html.links.ul.page              |  80 +-
 doc/yelp-xsl/C/mal2html.math.mode.page             |  20 +-
 doc/yelp-xsl/C/mal2html.media.audio.page           |  61 +-
 doc/yelp-xsl/C/mal2html.media.image.page           |  48 +-
 doc/yelp-xsl/C/mal2html.media.video.page           |  65 +-
 doc/yelp-xsl/C/mal2html.page                       |  63 +-
 doc/yelp-xsl/C/mal2html.page.about.page            |  94 +-
 doc/yelp-xsl/C/mal2html.page.linktrails.empty.page |  94 +-
 doc/yelp-xsl/C/mal2html.page.linktrails.link.page  | 113 ++-
 doc/yelp-xsl/C/mal2html.page.linktrails.page       |  95 +-
 doc/yelp-xsl/C/mal2html.page.linktrails.trail.page |  92 +-
 .../C/mal2html.page.linktrails.trail.prefix.page   |  94 +-
 doc/yelp-xsl/C/mal2html.pre.page                   |  66 +-
 doc/yelp-xsl/C/mal2html.section.page               |  90 +-
 doc/yelp-xsl/C/mal2html.span.page                  |  67 +-
 doc/yelp-xsl/C/mal2html.svg.mode.page              |  19 +-
 doc/yelp-xsl/C/mal2html.title.mode.page            |  17 +-
 doc/yelp-xsl/C/mal2html.tree.mode.page             |  42 +-
 doc/yelp-xsl/C/mal2html.ttml.mode.page             |  17 +-
 doc/yelp-xsl/C/mal2html.ui.expander.data.page      |  66 +-
 doc/yelp-xsl/C/mal2html.ui.links.img.attrs.page    |  63 +-
 doc/yelp-xsl/C/mal2html.ui.links.img.page          |  95 +-
 doc/yelp-xsl/C/mal2html.ui.links.img.src.page      |  62 +-
 doc/yelp-xsl/C/mal2html.ui.links.tiles.page        |  89 +-
 doc/yelp-xsl/C/mal2xhtml.page                      |  63 +-
 doc/yelp-xsl/C/modes.page                          |  86 +-
 doc/yelp-xsl/C/parameters.page                     |  46 -
 doc/yelp-xsl/C/params.page                         |  42 +
 doc/yelp-xsl/C/stubs.page                          |  86 +-
 doc/yelp-xsl/C/stylesheets.page                    |  56 +-
 doc/yelp-xsl/C/templates.page                      |  86 +-
 doc/yelp-xsl/C/ttml.features.page                  |  28 +-
 doc/yelp-xsl/C/ttml.page                           |  37 +-
 doc/yelp-xsl/C/ttml.profile.attr.page              |  49 +-
 doc/yelp-xsl/C/ttml.profile.page                   |  43 +-
 doc/yelp-xsl/C/ttml.time.range.page                |  90 +-
 doc/yelp-xsl/C/ttml.time.seconds.page              |  43 +-
 doc/yelp-xsl/C/utils.email_address.page            |  31 +-
 doc/yelp-xsl/C/utils.linenumbering.page            |  48 +-
 doc/yelp-xsl/C/utils.page                          |  31 +-
 doc/yelp-xsl/C/utils.repeat_string.page            |  46 +-
 doc/yelp-xsl/C/utils.strip_newlines.page           |  56 +-
 doc/yelp-xsl/Makefile.am                           |  28 +-
 doc/yelp-xsl/mal2cache                             |  46 -
 doc/yelp-xsl/static/index.duck                     |   5 +
 doc/yelp-xsl/static/keys.duck                      |  40 +
 doc/yelp-xsl/static/modes.duck                     |  40 +
 doc/yelp-xsl/static/params.duck                    |  40 +
 doc/yelp-xsl/static/stubs.duck                     |  41 +
 doc/yelp-xsl/static/stylesheets.duck               |  25 +
 doc/yelp-xsl/static/templates.duck                 |  40 +
 doc/yelp-xsl/xsldoc-check.xsl                      | 176 ----
 doc/yelp-xsl/xsldoc-docbook.xsl                    | 326 -------
 doc/yelp-xsl/xsldoc-scan                           |  19 -
 doc/yelp-xsl/xsldoc-scan.awk                       | 416 ---------
 doc/yelp-xsl/xsldoc-scan.xsl                       | 963 ++++++++++++--------
 xslt/common/color.xsl                              | 224 ++---
 xslt/common/html.xsl                               | 760 +++++++++-------
 xslt/common/icons.xsl                              | 158 ++--
 xslt/common/l10n-numbers.xsl                       |  18 +-
 xslt/common/l10n.xsl                               | 168 ++--
 xslt/common/ttml.xsl                               |  76 +-
 xslt/common/utils.xsl                              |  24 +-
 xslt/dita/common/dita-ref.xsl                      |   4 +-
 xslt/dita/html/dita2html-block.xsl                 |  30 +-
 xslt/dita/html/dita2html-inline.xsl                |  10 +-
 xslt/dita/html/dita2html.xsl                       |   2 +-
 xslt/docbook/common/db-chunk.xsl                   |  12 +-
 xslt/docbook/common/db-common.xsl                  |  95 +-
 xslt/docbook/common/db-profile.xsl                 |  60 +-
 xslt/docbook/common/db-title.xsl                   |  38 +-
 xslt/docbook/common/db-xref.xsl                    |  21 +-
 xslt/docbook/html/db2html-bibliography.xsl         |  32 +-
 xslt/docbook/html/db2html-block.xsl                |  94 +-
 xslt/docbook/html/db2html-callout.xsl              |  25 +-
 xslt/docbook/html/db2html-classsynopsis.xsl        |  23 +-
 xslt/docbook/html/db2html-cmdsynopsis.xsl          |  25 +-
 xslt/docbook/html/db2html-css.xsl                  |   1 -
 xslt/docbook/html/db2html-division.xsl             |  28 +-
 xslt/docbook/html/db2html-ebnf.xsl                 |   1 -
 xslt/docbook/html/db2html-footnote.xsl             |  20 +-
 xslt/docbook/html/db2html-funcsynopsis.xsl         |  11 +-
 xslt/docbook/html/db2html-index.xsl                |   1 -
 xslt/docbook/html/db2html-inline.xsl               |  13 +-
 xslt/docbook/html/db2html-links.xsl                |  28 +-
 xslt/docbook/html/db2html-list.xsl                 |   2 +-
 xslt/docbook/html/db2html-math.xsl                 |  38 +-
 xslt/docbook/html/db2html-media.xsl                |  98 +-
 xslt/docbook/html/db2html-refentry.xsl             |   1 -
 xslt/docbook/html/db2html-table.xsl                | 167 ++--
 xslt/docbook/html/db2html-xref.xsl                 |  21 +-
 xslt/docbook/html/db2html.xsl                      |   8 +-
 xslt/docbook/html/db2xhtml.xsl                     |   4 +-
 xslt/mallard/common/mal-gloss.xsl                  |  38 +-
 xslt/mallard/common/mal-if.xsl                     |  44 +-
 xslt/mallard/common/mal-link.xsl                   | 494 +++++-----
 xslt/mallard/common/mal-sort.xsl                   |  17 +-
 xslt/mallard/html/mal2html-api.xsl                 |  24 +-
 xslt/mallard/html/mal2html-block.xsl               |  26 +-
 xslt/mallard/html/mal2html-gloss.xsl               |   8 +-
 xslt/mallard/html/mal2html-inline.xsl              |  42 +-
 xslt/mallard/html/mal2html-links.xsl               | 138 +--
 xslt/mallard/html/mal2html-list.xsl                |  24 +-
 xslt/mallard/html/mal2html-math.xsl                |  18 +-
 xslt/mallard/html/mal2html-media.xsl               |  76 +-
 xslt/mallard/html/mal2html-page.xsl                | 126 +--
 xslt/mallard/html/mal2html-svg.xsl                 |  12 +-
 xslt/mallard/html/mal2html-ui.xsl                  | 104 ++-
 xslt/mallard/html/mal2html.xsl                     |   8 +-
 xslt/mallard/html/mal2xhtml.xsl                    |   6 +-
 429 files changed, 23948 insertions(+), 7226 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 66b71515..079b87ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@ intltool-update.in
 missing
 yelp-xsl.pc
 
+/doc/yelp-xsl/ducks/*.duck
 /xslt/theme/test-theme.html
 /xslt/common/domains/yelp-xsl.xml
 /test/testdocs/html
diff --git a/doc/yelp-xsl/C/color.a.page b/doc/yelp-xsl/C/color.a.page
index 25854a52..6f1dc8e1 100644
--- a/doc/yelp-xsl/C/color.a.page
+++ b/doc/yelp-xsl/C/color.a.page
@@ -1,12 +1,81 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.a" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Extract the alpha value of a 
color.</desc></info><title>color.a</title><p>Extract the alpha value of a color.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>color</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template extracts the alpha, or opacity level, of a color. It returns a number between 0.0 and 
1.0. It accepts six-digit and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, 
and colors specified with <code>rgba()</code>. It does not accept HSL or named HTML colors. For colors 
specified with anything other than <code>rgba()</code>, it always returns 1.0.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.a">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Extract the alpha value of a color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.a</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$color</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template extracts the alpha, or opacity level, of a color. It returns a
+ number between 0.0 and 1.0. It accepts six-digit and three-digit hexidecimal
+ color codes, colors specified with <sys>rgb()</sys>, and colors specified with
+ <sys>rgba()</sys>. It does not accept HSL or named HTML colors. For colors specified
+ with anything other than <sys>rgba()</sys>, it always returns 1.0.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/color.b.page b/doc/yelp-xsl/C/color.b.page
index a9602968..971e05da 100644
--- a/doc/yelp-xsl/C/color.b.page
+++ b/doc/yelp-xsl/C/color.b.page
@@ -1,12 +1,86 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.b" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Extract the blue component of a 
color.</desc></info><title>color.b</title><p>Extract the blue component of a color.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>color</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template extracts the blue portion of a color, returning a number between 0 and 255. It accepts 
six-digit and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, and colors 
specified with <code>rgba()</code>. It does not accept HSL or named HTML colors.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="color.hex2dec"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.b">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Extract the blue component of a color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.b</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$color</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template extracts the blue portion of a color, returning a number between
+ 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
+ colors specified with <sys>rgb()</sys>, and colors specified with <sys>rgba()</sys>. It does
+ not accept HSL or named HTML colors.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.hex2dec"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.bg.blue.page b/doc/yelp-xsl/C/color.bg.blue.page
index 47da0461..e002c75a 100644
--- a/doc/yelp-xsl/C/color.bg.blue.page
+++ b/doc/yelp-xsl/C/color.bg.blue.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.blue" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A blue background 
color.</desc></info><title>color.bg.blue</title><p>A blue background color.</p>
-  
-  
-  <p>This parameter specifies a shade of blue that is suitable for backgrounds. It should have a high color 
contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.blue">color.blue</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.blue">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A blue background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.blue</title>
+ <p>This parameter specifies a shade of blue that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.blue">color.blue</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.dark.page b/doc/yelp-xsl/C/color.bg.dark.page
index 22b976d3..32faa194 100644
--- a/doc/yelp-xsl/C/color.bg.dark.page
+++ b/doc/yelp-xsl/C/color.bg.dark.page
@@ -1,6 +1,16 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.dark" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A dark gray background 
color.</desc></info><title>color.bg.dark</title><p>A dark gray background color.</p>
-  
-  
-  <p>This parameter specifies a shade of gray that is suitable for backgrounds, and is darker than <code 
style="xslt-param" xref="color.bg.gray">color.bg.gray</code>. It should have a high color contrast against 
<code style="xslt-param" xref="color.fg">color.fg</code>. It is typically used at the intersection of shaded 
rows and columns in a table, or as a very light gray accent color. If not specified, it can be automatically 
computed based on <code style="xslt-param" xref="color.gray">color.gray</code> and <code style="xslt-param" 
xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.dark">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A dark gray background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.dark</title>
+ <p>This parameter specifies a shade of gray that is suitable for backgrounds,
+ and is darker than <code xref="color.bg.gray">color.bg.gray</code>. It should have a high color contrast
+ against <code xref="color.fg">color.fg</code>. It is typically used at the intersection of shaded
+ rows and columns in a table, or as a very light gray accent color. If not
+ specified, it can be automatically computed based on <code xref="color.gray">color.gray</code> and
+ <code xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.gray.page b/doc/yelp-xsl/C/color.bg.gray.page
index 49c8b9cd..a36c07b4 100644
--- a/doc/yelp-xsl/C/color.bg.gray.page
+++ b/doc/yelp-xsl/C/color.bg.gray.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.gray" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A gray background 
color.</desc></info><title>color.bg.gray</title><p>A gray background color.</p>
-  
-  
-  <p>This parameter specifies a shade of gray that is suitable for backgrounds. It should have a high color 
contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.gray">color.gray</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.gray">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A gray background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.gray</title>
+ <p>This parameter specifies a shade of gray that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.gray">color.gray</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.green.page b/doc/yelp-xsl/C/color.bg.green.page
index 1099229a..75aa4b9a 100644
--- a/doc/yelp-xsl/C/color.bg.green.page
+++ b/doc/yelp-xsl/C/color.bg.green.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.green" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A green background 
color.</desc></info><title>color.bg.green</title><p>A green background color.</p>
-  
-  
-  <p>This parameter specifies a shade of green that is suitable for backgrounds. It should have a high color 
contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.green">color.green</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.green">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A green background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.green</title>
+ <p>This parameter specifies a shade of green that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.green">color.green</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.orange.page b/doc/yelp-xsl/C/color.bg.orange.page
index ddc34efc..081392f3 100644
--- a/doc/yelp-xsl/C/color.bg.orange.page
+++ b/doc/yelp-xsl/C/color.bg.orange.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.orange" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>An orange 
background color.</desc></info><title>color.bg.orange</title><p>An orange background color.</p>
-  
-  
-  <p>This parameter specifies a shade of orange that is suitable for backgrounds. It should have a high 
color contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.orange">color.orange</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.orange">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>An orange background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.orange</title>
+ <p>This parameter specifies a shade of orange that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.orange">color.orange</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.page b/doc/yelp-xsl/C/color.bg.page
index dc76cec2..3d632dd2 100644
--- a/doc/yelp-xsl/C/color.bg.page
+++ b/doc/yelp-xsl/C/color.bg.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>The normal background 
color.</desc></info><title>color.bg</title><p>The normal background color.</p>
-  
-  
-  <p>This parameters specifies the background color. It should have a high color contrast against <code 
style="xslt-param" xref="color.fg">color.fg</code>. Other background colors can be automatically computed 
based on this color.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>The normal background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg</title>
+ <p>This parameters specifies the background color. It should have a high color
+ contrast against <code xref="color.fg">color.fg</code>. Other background colors can be automatically
+ computed based on this color.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.bg</code></title>
+    <p><code>'#ffffff'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.purple.page b/doc/yelp-xsl/C/color.bg.purple.page
index a47f9a6b..0be8d03d 100644
--- a/doc/yelp-xsl/C/color.bg.purple.page
+++ b/doc/yelp-xsl/C/color.bg.purple.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.purple" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>A purple 
background color.</desc></info><title>color.bg.purple</title><p>A purple background color.</p>
-  
-  
-  <p>This parameter specifies a shade of purple that is suitable for backgrounds. It should have a high 
color contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.purple">color.purple</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.purple">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A purple background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.purple</title>
+ <p>This parameter specifies a shade of purple that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.purple">color.purple</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.red.page b/doc/yelp-xsl/C/color.bg.red.page
index 920b5374..6362ddb7 100644
--- a/doc/yelp-xsl/C/color.bg.red.page
+++ b/doc/yelp-xsl/C/color.bg.red.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.red" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A red background 
color.</desc></info><title>color.bg.red</title><p>A red background color.</p>
-  
-  
-  <p>This parameter specifies a shade of red that is suitable for backgrounds. It should have a high color 
contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.red">color.red</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.red">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A red background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.red</title>
+ <p>This parameter specifies a shade of red that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.red">color.red</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.bg.yellow.page b/doc/yelp-xsl/C/color.bg.yellow.page
index c2af86c6..048b38da 100644
--- a/doc/yelp-xsl/C/color.bg.yellow.page
+++ b/doc/yelp-xsl/C/color.bg.yellow.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.bg.yellow" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>A yellow 
background color.</desc></info><title>color.bg.yellow</title><p>A yellow background color.</p>
-  
-  
-  <p>This parameter specifies a shade of yellow that is suitable for backgrounds. It should have a high 
color contrast against <code style="xslt-param" xref="color.fg">color.fg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.yellow">color.yellow</code> and <code 
style="xslt-param" xref="color.bg">color.bg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.bg.yellow">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A yellow background color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.bg.yellow</title>
+ <p>This parameter specifies a shade of yellow that is suitable for backgrounds.
+ It should have a high color contrast against <code xref="color.fg">color.fg</code>. If not specified,
+ it can be automatically computed based on <code xref="color.yellow">color.yellow</code> and <code 
xref="color.bg">color.bg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.blend.page b/doc/yelp-xsl/C/color.blend.page
index c2f77751..526a841a 100644
--- a/doc/yelp-xsl/C/color.blend.page
+++ b/doc/yelp-xsl/C/color.blend.page
@@ -1,23 +1,113 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.blend" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Blend two colors together at a specified mix 
level.</desc></info><title>color.blend</title><p>Blend two colors together at a specified mix level.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>bg</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-    <item>
-      <title><code>fg</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-    <item>
-      <title><code>mix</code></title>
-      <p>The mix level, between 0.0 and 1.0.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template calculates a color by selecting a midpoint between <code style="xslt-param">bg</code> and 
<code style="xslt-param">fg</code>, where the <code style="xslt-param">mix</code> parameter specifies how far 
to move from <code style="xslt-param">bg</code> to <code style="xslt-param">fg</code>. For opaque colors, 
setting <code style="xslt-param">mix</code> to 0.0 will result in <code style="xslt-param">bg</code>, and 
setting <code style="xslt-param">mix</code> to 1.0 will result in <code style="xslt-param">fg</code>.</p>
-  <p>This template takes the alpha values of <code style="xslt-param">bg</code> and <code 
style="xslt-param">fg</code> into account, so that specifying 1.0 for <code style="xslt-param">mix</code> 
will result in a color that is the result of overlaying <code style="xslt-param">fg</code> on top of <code 
style="xslt-param">bg</code>. In effect, <code style="xslt-param">mix</code> acts as a multiplier on the 
alpha channels of the colors.</p>
-  <p>This template calls <code style="xslt-template" xref="color.r">color.r</code>, <code 
style="xslt-template" xref="color.g">color.g</code>, <code style="xslt-template" 
xref="color.b">color.b</code>, and <code style="xslt-template" xref="color.a">color.a</code> to get the 
components of <code style="xslt-param">bg</code> and <code style="xslt-param">fg</code>. It accepts six-digit 
and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, and colors specified with 
<code>rgba()</code>. It does not accept HSL or named HTML colors.</p>
-  <p>If the return color is fully opaque, this template returns the color using the <code>rgb()</code> 
scheme. Otherwise, it uses the <code>rgba()</code> scheme.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="color.r"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.blend">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Blend two colors together at a specified mix level.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.blend</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$bg</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+   <item>
+    <title><code>$fg</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+   <item>
+    <title><code>$mix</code></title>
+    <p>The mix level, between 0.0 and 1.0.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template calculates a color by selecting a midpoint between <code>$bg</code> and
+ <code>$fg</code>, where the <code>$mix</code> parameter specifies how far to move from <code>$bg</code> to 
<code>$fg</code>
+ For opaque colors, setting <code>$mix</code> to 0.0 will result in <code>$bg</code>, and setting
+ <code>$mix</code> to 1.0 will result in <code>$fg</code>.</p>
+ <p>This template takes the alpha values of <code>$bg</code> and <code>$fg</code> into account, so
+ that specifying 1.0 for <code>$mix</code> will result in a color that is the result
+ of overlaying <code>$fg</code> on top of <code>$bg</code>. In effect, <code>$mix</code> acts as a multiplier
+ on the alpha channels of the colors.</p>
+ <p>This template calls <code xref="color.r">color.r</code>, <code xref="color.g">color.g</code>, <code 
xref="color.b">color.b</code>, and <code xref="color.a">color.a</code> to get
+ the components of <code>$bg</code> and <code>$fg</code>. It accepts six-digit and three-digit
+ hexidecimal color codes, colors specified with <sys>rgb()</sys>, and colors specified
+ with <sys>rgba()</sys>. It does not accept HSL or named HTML colors.</p>
+ <p>If the return color is fully opaque, this template returns the color using
+ the <sys>rgb()</sys> scheme. Otherwise, it uses the <sys>rgba()</sys> scheme.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.a"/></p>
+  </item>
+  <item>
+   <p><link xref="color.b"/></p>
+  </item>
+  <item>
+   <p><link xref="color.g"/></p>
+  </item>
+  <item>
+   <p><link xref="color.r"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.blue.page b/doc/yelp-xsl/C/color.blue.page
index 7b889ff4..31692692 100644
--- a/doc/yelp-xsl/C/color.blue.page
+++ b/doc/yelp-xsl/C/color.blue.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.blue" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A blue accent 
color.</desc></info><title>color.blue</title><p>A blue accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of blue that is suitable for borders and other accents. It should have 
some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.blue">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A blue accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.blue</title>
+ <p>This parameter specifies a shade of blue that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.blue</code></title>
+    <p><code>'#3465a4'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.contrast.page b/doc/yelp-xsl/C/color.contrast.page
index 8b7cb6d6..b448ce4e 100644
--- a/doc/yelp-xsl/C/color.contrast.page
+++ b/doc/yelp-xsl/C/color.contrast.page
@@ -1,19 +1,97 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.contrast" type="topic" 
style="xslt-template"><info><link type="guide" xref="color" group="templates"/><link type="guide" 
xref="templates" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>Get the 
contrast between two colors.</desc></info><title>color.contrast</title><p>Get the contrast between two 
colors.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>bg</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-    <item>
-      <title><code>fg</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template calculates the contrast ratio between colors. The contrast ratio is a number between 1 
and 21. The algorithm is defined by the WCAG:</p>
-  <p>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef</p>
-  <p>This template calls <code style="xslt-template" xref="color.rl">color.rl</code> to get the relative 
luminance of <code style="xslt-param">bg</code> and <code style="xslt-param">fg</code>. It accepts six-digit 
and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, and colors specified with 
<code>rgba()</code>. It does not accept HSL or named HTML colors. Note that it does not take the alpha value 
into account when calculating the contrast ratio. Semi-transparent colors will have a lower actual contrast 
ratio than what is reported by this template.</p>
-  <p>The WCAG recommends a contrast ratio of at least 4.5 for normal text, and a ratio of at least 3.0 for 
large-scale text.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="color.rl"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.contrast">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Get the contrast between two colors.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.contrast</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$bg</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+   <item>
+    <title><code>$fg</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template calculates the contrast ratio between colors. The contrast ratio
+ is a number between 1 and 21. The algorithm is defined by the WCAG:</p>
+ <p><code>$link</code>[>>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef]</p>
+ <p>This template calls <code xref="color.rl">color.rl</code> to get the relative luminance of 
<code>$bg</code> and <code>$fg</code>.
+ It accepts six-digit and three-digit hexidecimal color codes, colors specified
+ with <sys>rgb()</sys>, and colors specified with <sys>rgba()</sys>. It does not accept HSL or
+ named HTML colors. Note that it does not take the alpha value into account when
+ calculating the contrast ratio. Semi-transparent colors will have a lower
+ actual contrast ratio than what is reported by this template.</p>
+ <p>The WCAG recommends a contrast ratio of at least 4.5 for normal text, and a
+ ratio of at least 3.0 for large-scale text.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.rl"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.fg.blue.page b/doc/yelp-xsl/C/color.fg.blue.page
index 4dfe818f..bcedaeed 100644
--- a/doc/yelp-xsl/C/color.fg.blue.page
+++ b/doc/yelp-xsl/C/color.fg.blue.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.blue" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A blue text 
color.</desc></info><title>color.fg.blue</title><p>A blue text color.</p>
-  
-  
-  <p>This parameter specifies a shade of blue that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.blue">color.blue</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.blue">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A blue text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.blue</title>
+ <p>This parameter specifies a shade of blue that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.blue">color.blue</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.dark.page b/doc/yelp-xsl/C/color.fg.dark.page
index 1f3dead4..fc49d33d 100644
--- a/doc/yelp-xsl/C/color.fg.dark.page
+++ b/doc/yelp-xsl/C/color.fg.dark.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.dark" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A dark gray text 
color.</desc></info><title>color.fg.dark</title><p>A dark gray text color.</p>
-  
-  
-  <p>This parameter specifies a dark shade of gray that is suitable for text. It should have a very high 
color contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. It is typically used to 
slightly reduce the visual weight of headers and bold text. If not specified, it can be automatically 
computed based on <code style="xslt-param" xref="color.gray">color.gray</code> and <code style="xslt-param" 
xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.dark">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A dark gray text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.dark</title>
+ <p>This parameter specifies a dark shade of gray that is suitable for text. It
+ should have a very high color contrast against <code xref="color.bg">color.bg</code>. It is typically
+ used to slightly reduce the visual weight of headers and bold text. If not
+ specified, it can be automatically computed based on <code xref="color.gray">color.gray</code> and
+ <code xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.gray.page b/doc/yelp-xsl/C/color.fg.gray.page
index 0adc623d..0ffc871a 100644
--- a/doc/yelp-xsl/C/color.fg.gray.page
+++ b/doc/yelp-xsl/C/color.fg.gray.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.gray" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A gray text 
color.</desc></info><title>color.fg.gray</title><p>A gray text color.</p>
-  
-  
-  <p>This parameter specifies a shade of gray that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.gray">color.gray</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.gray">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A gray text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.gray</title>
+ <p>This parameter specifies a shade of gray that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.gray">color.gray</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.green.page b/doc/yelp-xsl/C/color.fg.green.page
index 2f908eaa..8e7a7dbd 100644
--- a/doc/yelp-xsl/C/color.fg.green.page
+++ b/doc/yelp-xsl/C/color.fg.green.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.green" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A green text 
color.</desc></info><title>color.fg.green</title><p>A green text color.</p>
-  
-  
-  <p>This parameter specifies a shade of green that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.green">color.green</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.green">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A green text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.green</title>
+ <p>This parameter specifies a shade of green that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.green">color.green</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.orange.page b/doc/yelp-xsl/C/color.fg.orange.page
index 5ec4d2d2..4ddf4483 100644
--- a/doc/yelp-xsl/C/color.fg.orange.page
+++ b/doc/yelp-xsl/C/color.fg.orange.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.orange" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>An orange 
text color.</desc></info><title>color.fg.orange</title><p>An orange text color.</p>
-  
-  
-  <p>This parameter specifies a shade of orange that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.orange">color.orange</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.orange">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>An orange text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.orange</title>
+ <p>This parameter specifies a shade of orange that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.orange">color.orange</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.page b/doc/yelp-xsl/C/color.fg.page
index 2e643610..c9f946dc 100644
--- a/doc/yelp-xsl/C/color.fg.page
+++ b/doc/yelp-xsl/C/color.fg.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>The primary text 
color.</desc></info><title>color.fg</title><p>The primary text color.</p>
-  
-  
-  <p>This parameters specifies the normal color of text. It should have a high color contrast against <code 
style="xslt-param" xref="color.bg">color.bg</code>. Other text colors can be automatically computed based on 
this color.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>The primary text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg</title>
+ <p>This parameters specifies the normal color of text. It should have a high color
+ contrast against <code xref="color.bg">color.bg</code>. Other text colors can be automatically computed
+ based on this color.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.fg</code></title>
+    <p><code>'#000000'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.purple.page b/doc/yelp-xsl/C/color.fg.purple.page
index 256e337d..5f7bbe6e 100644
--- a/doc/yelp-xsl/C/color.fg.purple.page
+++ b/doc/yelp-xsl/C/color.fg.purple.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.purple" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>A purple 
text color.</desc></info><title>color.fg.purple</title><p>A purple text color.</p>
-  
-  
-  <p>This parameter specifies a shade of purple that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.purple">color.purple</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.purple">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A purple text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.purple</title>
+ <p>This parameter specifies a shade of purple that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.purple">color.purple</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.red.page b/doc/yelp-xsl/C/color.fg.red.page
index b305b4ea..4069b72c 100644
--- a/doc/yelp-xsl/C/color.fg.red.page
+++ b/doc/yelp-xsl/C/color.fg.red.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.red" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A red text 
color.</desc></info><title>color.fg.red</title><p>A red text color.</p>
-  
-  
-  <p>This parameter specifies a shade of red that is suitable for text. It should have a high color contrast 
against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be automatically 
computed based on <code style="xslt-param" xref="color.red">color.red</code> and <code style="xslt-param" 
xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.red">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A red text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.red</title>
+ <p>This parameter specifies a shade of red that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.red">color.red</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.fg.yellow.page b/doc/yelp-xsl/C/color.fg.yellow.page
index 0f1b7a09..7a15c01b 100644
--- a/doc/yelp-xsl/C/color.fg.yellow.page
+++ b/doc/yelp-xsl/C/color.fg.yellow.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.fg.yellow" type="topic" 
style="xslt-param"><info><link type="guide" xref="color" group="parameters"/><link type="guide" 
xref="parameters" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>A yellow 
text color.</desc></info><title>color.fg.yellow</title><p>A yellow text color.</p>
-  
-  
-  <p>This parameter specifies a shade of yellow that is suitable for text. It should have a high color 
contrast against <code style="xslt-param" xref="color.bg">color.bg</code>. If not specified, it can be 
automatically computed based on <code style="xslt-param" xref="color.yellow">color.yellow</code> and <code 
style="xslt-param" xref="color.fg">color.fg</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.fg.yellow">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A yellow text color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.fg.yellow</title>
+ <p>This parameter specifies a shade of yellow that is suitable for text. It should
+ have a high color contrast against <code xref="color.bg">color.bg</code>. If not specified, it can be
+ automatically computed based on <code xref="color.yellow">color.yellow</code> and <code 
xref="color.fg">color.fg</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/color.g.page b/doc/yelp-xsl/C/color.g.page
index 030d6889..6f0a5cfe 100644
--- a/doc/yelp-xsl/C/color.g.page
+++ b/doc/yelp-xsl/C/color.g.page
@@ -1,12 +1,86 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.g" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Extract the green component of a 
color.</desc></info><title>color.g</title><p>Extract the green component of a color.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>color</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template extracts the green portion of a color, returning a number between 0 and 255. It accepts 
six-digit and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, and colors 
specified with <code>rgba()</code>. It does not accept HSL or named HTML colors.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="color.hex2dec"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.g">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Extract the green component of a color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.g</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$color</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template extracts the green portion of a color, returning a number between
+ 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
+ colors specified with <sys>rgb()</sys>, and colors specified with <sys>rgba()</sys>. It does
+ not accept HSL or named HTML colors.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.hex2dec"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.gray.page b/doc/yelp-xsl/C/color.gray.page
index c65aed91..c2d2bda8 100644
--- a/doc/yelp-xsl/C/color.gray.page
+++ b/doc/yelp-xsl/C/color.gray.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.gray" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A gray accent 
color.</desc></info><title>color.gray</title><p>A gray accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of gray that is suitable for borders and other accents. It should have 
some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.gray">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A gray accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.gray</title>
+ <p>This parameter specifies a shade of gray that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.gray</code></title>
+    <p><code>'#babdb6'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.green.page b/doc/yelp-xsl/C/color.green.page
index 845b5741..dc90c976 100644
--- a/doc/yelp-xsl/C/color.green.page
+++ b/doc/yelp-xsl/C/color.green.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.green" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A green accent 
color.</desc></info><title>color.green</title><p>A green accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of green that is suitable for borders and other accents. It should 
have some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.green">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A green accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.green</title>
+ <p>This parameter specifies a shade of green that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.green</code></title>
+    <p><code>'#73d216'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.hex2dec.page b/doc/yelp-xsl/C/color.hex2dec.page
index 69faec74..2c53a5f1 100644
--- a/doc/yelp-xsl/C/color.hex2dec.page
+++ b/doc/yelp-xsl/C/color.hex2dec.page
@@ -1,12 +1,84 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.hex2dec" type="topic" 
style="xslt-template"><info><link type="guide" xref="color" group="templates"/><link type="guide" 
xref="templates" group="color"/><revision version="3.28" date="2016-01-03" status="final"/><desc>Convert a 
hexidecimal number to decimal.</desc></info><title>color.hex2dec</title><p>Convert a hexidecimal number to 
decimal.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>hex</code></title>
-      <p>The hexidecimal number to convert to decimal.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template converts a hexidecimal number to decimal. It's useful for getting the numeric values of 
color components in a hexidecimal color code.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="color.hex2dec"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.hex2dec">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Convert a hexidecimal number to decimal.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.hex2dec</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$hex</code></title>
+    <p>The hexidecimal number to convert to decimal.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template converts a hexidecimal number to decimal. It's useful for getting
+ the numeric values of color components in a hexidecimal color code.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.hex2dec"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.orange.page b/doc/yelp-xsl/C/color.orange.page
index 3fc45b2a..bc9551b2 100644
--- a/doc/yelp-xsl/C/color.orange.page
+++ b/doc/yelp-xsl/C/color.orange.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.orange" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>An orange accent 
color.</desc></info><title>color.orange</title><p>An orange accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of orange that is suitable for borders and other accents. It should 
have some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.orange">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>An orange accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.orange</title>
+ <p>This parameter specifies a shade of orange that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.orange</code></title>
+    <p><code>'#f57900'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.page b/doc/yelp-xsl/C/color.page
index e9b10b53..6eb7d23c 100644
--- a/doc/yelp-xsl/C/color.page
+++ b/doc/yelp-xsl/C/color.page
@@ -1,2 +1,89 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color" type="guide" style="xslt-stylesheet"><?xslt-private 
_color.fgify?><?xslt-private _color.bgify?><?xslt-private color.background?><?xslt-private 
color.link?><?xslt-private color.link_visited?><?xslt-private color.text?><?xslt-private 
color.text_light?><?xslt-private color.text_error?><?xslt-private color.blue_background?><?xslt-private 
color.blue_border?><?xslt-private color.gray_background?><?xslt-private color.dark_background?><?xslt-private 
color.gray_border?><?xslt-private color.red_background?><?xslt-private color.red_border?><?xslt-private 
color.yellow_background?><?xslt-private color.yellow_border?><info><link type="guide" xref="stylesheets" 
group="color"/><revision version="3.28" date="2016-01-03" status="final"/><link type="xslt-defines-template" 
xref="color.hex2dec"/><link type="xslt-defines-template" xref="color.r"/><link type="xslt-defines-template" 
xref="color.g"/><link type="xslt-defines-template" xref="colo
 r.b"/><l
 ink type="xslt-defines-template" xref="color.a"/><link type="xslt-defines-template" xref="color.rl"/><link 
type="xslt-defines-template" xref="color.contrast"/><link type="xslt-defines-template" 
xref="color.blend"/><link type="xslt-defines-param" xref="color.fg"/><link type="xslt-defines-param" 
xref="color.bg"/><link type="xslt-defines-param" xref="color.red"/><link type="xslt-defines-param" 
xref="color.fg.red"/><link type="xslt-defines-param" xref="color.bg.red"/><link type="xslt-defines-param" 
xref="color.orange"/><link type="xslt-defines-param" xref="color.fg.orange"/><link type="xslt-defines-param" 
xref="color.bg.orange"/><link type="xslt-defines-param" xref="color.yellow"/><link type="xslt-defines-param" 
xref="color.fg.yellow"/><link type="xslt-defines-param" xref="color.bg.yellow"/><link 
type="xslt-defines-param" xref="color.green"/><link type="xslt-defines-param" xref="color.fg.green"/><link 
type="xslt-defines-param" xref="color.bg.green"/><link type="xslt-defines-para
 m" xref=
 "color.blue"/><link type="xslt-defines-param" xref="color.fg.blue"/><link type="xslt-defines-param" 
xref="color.bg.blue"/><link type="xslt-defines-param" xref="color.purple"/><link type="xslt-defines-param" 
xref="color.fg.purple"/><link type="xslt-defines-param" xref="color.bg.purple"/><link 
type="xslt-defines-param" xref="color.gray"/><link type="xslt-defines-param" xref="color.fg.gray"/><link 
type="xslt-defines-param" xref="color.bg.gray"/><link type="xslt-defines-param" xref="color.fg.dark"/><link 
type="xslt-defines-param" xref="color.bg.dark"/></info><title>Colors</title><p>Common named colors and color 
utilities for output styling.</p><p>This stylesheet provides a common interface to specify custom colors for 
transformations to presentation-oreinted formats.  This allows similar output for different types of input 
documents.</p><p>This stylesheet also provides a number of templates for manipulating colors and extracting 
information about colors.</p><links type="topic" g
 roups="s
 tylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="color.bg"/></p></item><item><p><link 
xref="color.bg.blue"/></p></item><item><p><link xref="color.bg.dark"/></p></item><item><p><link 
xref="color.bg.gray"/></p></item><item><p><link xref="color.bg.red"/></p></item><item><p><link 
xref="color.bg.yellow"/></p></item><item><p><link xref="color.blue"/></p></item><item><p><link 
xref="color.fg"/></p></item><item><p><link xref="color.fg.blue"/></p></item><item><p><link 
xref="color.fg.dark"/></p></item><item><p><link xref="color.fg.purple"/></p></item><item><p><link xref
 ="color.
 fg.red"/></p></item><item><p><link xref="color.gray"/></p></item><item><p><link 
xref="color.green"/></p></item><item><p><link xref="color.orange"/></p></item><item><p><link 
xref="color.purple"/></p></item><item><p><link xref="color.red"/></p></item><item><p><link 
xref="color.yellow"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="color">
+ <info>
+  <link type="guide" xref="stylesheets" group="color"/>
+  <desc>Common named colors and color utilities for output styling.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>Colors</title>
+ <p>This stylesheet provides a common interface to specify custom colors for
+ transformations to presentation-oreinted formats. This allows similar
+ output for different types of input documents.</p>
+ <p>This stylesheet also provides a number of templates for manipulating colors
+ and extracting information about colors.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.purple.page b/doc/yelp-xsl/C/color.purple.page
index f01628a5..064796e9 100644
--- a/doc/yelp-xsl/C/color.purple.page
+++ b/doc/yelp-xsl/C/color.purple.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.purple" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A purple accent 
color.</desc></info><title>color.purple</title><p>A purple accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of purple that is suitable for borders and other accents. It should 
have some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.purple">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A purple accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.purple</title>
+ <p>This parameter specifies a shade of purple that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.purple</code></title>
+    <p><code>'#75507b'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.r.page b/doc/yelp-xsl/C/color.r.page
index e28525fb..290f086f 100644
--- a/doc/yelp-xsl/C/color.r.page
+++ b/doc/yelp-xsl/C/color.r.page
@@ -1,12 +1,86 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.r" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Extract the red component of a 
color.</desc></info><title>color.r</title><p>Extract the red component of a color.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>color</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template extracts the red portion of a color, returning a number between 0 and 255. It accepts 
six-digit and three-digit hexidecimal color codes, colors specified with <code>rgb()</code>, and colors 
specified with <code>rgba()</code>. It does not accept HSL or named HTML colors.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="color.hex2dec"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.r">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Extract the red component of a color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.r</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$color</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template extracts the red portion of a color, returning a number between
+ 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
+ colors specified with <sys>rgb()</sys>, and colors specified with <sys>rgba()</sys>. It does
+ not accept HSL or named HTML colors.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.hex2dec"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.red.page b/doc/yelp-xsl/C/color.red.page
index ddf0ec24..1ffb5618 100644
--- a/doc/yelp-xsl/C/color.red.page
+++ b/doc/yelp-xsl/C/color.red.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.red" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A red accent 
color.</desc></info><title>color.red</title><p>A red accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of red that is suitable for borders and other accents. It should have 
some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.red">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A red accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.red</title>
+ <p>This parameter specifies a shade of red that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.red</code></title>
+    <p><code>'#cc0000'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/color.rl.page b/doc/yelp-xsl/C/color.rl.page
index a6f45181..c76e5e06 100644
--- a/doc/yelp-xsl/C/color.rl.page
+++ b/doc/yelp-xsl/C/color.rl.page
@@ -1,14 +1,95 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.rl" type="topic" style="xslt-template"><info><link 
type="guide" xref="color" group="templates"/><link type="guide" xref="templates" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>Get the relative luminance of a 
color.</desc></info><title>color.rl</title><p>Get the relative luminance of a color.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>color</code></title>
-      <p>A color specified in hexidecimal, <code>rgb()</code>, or <code>rgba()</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template calculates the relative luminance of a color, returning a number between 0.0 and 1.0. The 
relative luminance is used when calculating color contrast. The relative luminance algorithm is defined by 
the WCAG:</p>
-  <p>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef</p>
-  <p>This template accepts six-digit and three-digit hexidecimal color codes, colors specified with 
<code>rgb()</code>, and colors specified with <code>rgba()</code>. It does not accept HSL or named HTML 
colors.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="color.r"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="color.rl">
+ <info>
+  <link type="guide" xref="color" group="templates"/>
+  <link type="guide" xref="templates" group="color"/>
+  <desc>Get the relative luminance of a color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.rl</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$color</code></title>
+    <p>A color specified in hexidecimal, <sys>rgb()</sys>, or <sys>rgba()</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template calculates the relative luminance of a color, returning a number
+ between 0.0 and 1.0. The relative luminance is used when calculating color
+ contrast. The relative luminance algorithm is defined by the WCAG:</p>
+ <p><code>$link</code>[>>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef]</p>
+ <p>This template accepts six-digit and three-digit hexidecimal color codes, colors
+ specified with <sys>rgb()</sys>, and colors specified with <sys>rgba()</sys>. It does not accept
+ HSL or named HTML colors.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="color.b"/></p>
+  </item>
+  <item>
+   <p><link xref="color.g"/></p>
+  </item>
+  <item>
+   <p><link xref="color.r"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/color.yellow.page b/doc/yelp-xsl/C/color.yellow.page
index 290a64f4..102c726b 100644
--- a/doc/yelp-xsl/C/color.yellow.page
+++ b/doc/yelp-xsl/C/color.yellow.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="color.yellow" type="topic" style="xslt-param"><info><link 
type="guide" xref="color" group="parameters"/><link type="guide" xref="parameters" group="color"/><revision 
version="3.28" date="2016-01-03" status="final"/><desc>A yellow accent 
color.</desc></info><title>color.yellow</title><p>A yellow accent color.</p>
-  
-  
-  <p>This parameter specifies a shade of yellow that is suitable for borders and other accents. It should 
have some contrast against background colors, but it does not need as high of a contrast as text colors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="color.yellow">
+ <info>
+  <link type="guide" xref="color" group="params"/>
+  <link type="guide" xref="params" group="color"/>
+  <desc>A yellow accent color.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>color.yellow</title>
+ <p>This parameter specifies a shade of yellow that is suitable for borders and
+ other accents. It should have some contrast against background colors, but it
+ does not need as high of a contrast as text colors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>color.yellow</code></title>
+    <p><code>'#edd400'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db-chunk.page b/doc/yelp-xsl/C/db-chunk.page
index cf28dfc3..307ddb53 100644
--- a/doc/yelp-xsl/C/db-chunk.page
+++ b/doc/yelp-xsl/C/db-chunk.page
@@ -1,2 +1,41 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db-chunk" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><link 
type="xslt-defines-template" xref="db.chunk.depth-in-chunk"/><link type="xslt-defines-template" 
xref="db.chunk.depth-of-chunk"/><link type="xslt-defines-template" xref="db.chunk.chunk-id"/><link 
type="xslt-defines-template" xref="db.chunk.chunk-id.axis"/><link type="xslt-defines-param" 
xref="db.chunk.max_depth"/><link type="xslt-defines-param" xref="db.chunk.basename"/><link 
type="xslt-defines-param" xref="db.chunk.extension"/></info><title>DocBook 
Chunking</title><comment><p>Describe this module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></lin
 ks><link
 s type="topic" groups="templates" style="linklist"><title>Templates</title></links><links type="topic" 
groups="keys" style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Keys</title><item><p><link xref="db.id.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="db.chunk.basename"/></p></item><item><p><link 
xref="db.chunk.max_depth"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db-chunk">
+ <info>
+  <link type="guide" xref="stylesheets" group="db"/>
+ </info>
+ <title>DocBook Chunking</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db-common.page b/doc/yelp-xsl/C/db-common.page
index dfe697fe..64330f06 100644
--- a/doc/yelp-xsl/C/db-common.page
+++ b/doc/yelp-xsl/C/db-common.page
@@ -1,2 +1,67 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db-common" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><link 
type="xslt-requires" xref="l10n"/><link type="xslt-defines-template" xref="db.copyright"/><link 
type="xslt-defines-template" xref="db.linenumbering.start"/><link type="xslt-defines-template" 
xref="db.orderedlist.start"/><link type="xslt-defines-template" xref="db.personname"/><link 
type="xslt-defines-template" xref="db.personname.list"/><link type="xslt-implements-mode" 
xref="l10n.format.mode"/></info><title>DocBook Common</title><p>This stylesheet module provides utility 
templates for DocBook that are independant of the target format.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" style="link
 list"><t
 itle>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="l10n"/></p></item></list><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="db.profile.test"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:copyright.years</code></p></td></tr><tr><td><p><link
 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:copyright.name</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db-common">
+ <info>
+  <link type="guide" xref="stylesheets" group="db"/>
+ </info>
+ <title>DocBook Common</title>
+ <p>This stylesheet module provides utility templates for DocBook that are
+ independant of the target format.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:copyright.years</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:copyright.name</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db-profile.page b/doc/yelp-xsl/C/db-profile.page
index ec169805..8c565597 100644
--- a/doc/yelp-xsl/C/db-profile.page
+++ b/doc/yelp-xsl/C/db-profile.page
@@ -1,2 +1,65 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db-profile" type="guide" 
style="xslt-stylesheet"><?xslt-private _db.profile.test.compare?><info><link type="guide" xref="stylesheets" 
group="db"/><revision version="3.10" date="2013-08-12" status="final"/><link type="xslt-defines-template" 
xref="db.profile.test"/><link type="xslt-defines-param" xref="db.profile.arch"/><link 
type="xslt-defines-param" xref="db.profile.audience"/><link type="xslt-defines-param" 
xref="db.profile.condition"/><link type="xslt-defines-param" xref="db.profile.conformance"/><link 
type="xslt-defines-param" xref="db.profile.os"/><link type="xslt-defines-param" xref="db.profile.os"/><link 
type="xslt-defines-param" xref="db.profile.revision"/><link type="xslt-defines-param" 
xref="db.profile.security"/><link type="xslt-defines-param" xref="db.profile.userlevel"/><link 
type="xslt-defines-param" xref="db.profile.vendor"/><link type="xslt-defines-param" 
xref="db.profile.wordsize"/></info><title>DocBook Profili
 ng</titl
 e><p>Support for DocBook effectivity attributes</p><p>This stylesheet contains utilities for handling 
conditional processing in DocBook documents.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="db.profile.arch"/></p></item><item><p><link 
xref="db.profile.audience"/></p></item><item><p><link xref="db.profile.condition"/></p></item><item><p><link 
xref="db.profile.conformance"/></p></item><item><p><link xref="db.profile.os"/></p></item><item><p><link 
xref="db.profile.outputformat"/></p></item><item><p><link xref="db.profile.revi
 sion"/><
 /p></item><item><p><link xref="db.profile.security"/></p></item><item><p><link 
xref="db.profile.userlevel"/></p></item><item><p><link xref="db.profile.vendor"/></p></item><item><p><link 
xref="db.profile.wordsize"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db-profile">
+ <info>
+  <link type="guide" xref="stylesheets" group="db"/>
+  <desc>Support for DocBook effectivity attributes</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>DocBook Profiling</title>
+ <p>This stylesheet contains utilities for handling conditional processing
+ in DocBook documents.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.profile.arch"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.audience"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.condition"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.conformance"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.os"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.outputformat"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.revision"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.security"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.userlevel"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.vendor"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.wordsize"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db-title.page b/doc/yelp-xsl/C/db-title.page
index c1f379ee..1f8ddd07 100644
--- a/doc/yelp-xsl/C/db-title.page
+++ b/doc/yelp-xsl/C/db-title.page
@@ -1,2 +1,45 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db-title" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="db"/><revision version="3.4" date="2011-11-10" status="final"/><link 
type="xslt-defines-template" xref="db.title"/><link type="xslt-defines-template" xref="db.titleabbrev"/><link 
type="xslt-defines-template" xref="db.subtitle"/></info><title>DocBook Titles</title><p>Support for DocBook 
title, titleabbrev, and subtitle elements.</p><p>This stylesheet contains templates for outputting titles 
based on title, titleabbrev, or subtitle elements. It supports automatic titles for certain elements with 
optional titles.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" style="linklist"><titl
 e>Templa
 tes</title></links><links type="topic" groups="keys" style="linklist"><title>Keys</title></links><list 
style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.chunk-id"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db-title">
+ <info>
+  <link type="guide" xref="stylesheets" group="db"/>
+  <desc>Support for DocBook title, titleabbrev, and subtitle elements.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>DocBook Titles</title>
+ <p>This stylesheet contains templates for outputting titles based on title,
+ titleabbrev, or subtitle elements. It supports automatic titles for certain
+ elements with optional titles.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db-xref.page b/doc/yelp-xsl/C/db-xref.page
index 280844ed..16ee6790 100644
--- a/doc/yelp-xsl/C/db-xref.page
+++ b/doc/yelp-xsl/C/db-xref.page
@@ -1,2 +1,114 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db-xref" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.format.mode?><info><link type="guide" xref="stylesheets" 
group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-requires" 
xref="db-chunk"/><link type="xslt-requires" xref="db-title"/><link type="xslt-requires" xref="l10n"/><link 
type="xslt-defines-template" xref="db.ulink.tooltip"/><link type="xslt-defines-template" 
xref="db.xref.content"/><link type="xslt-defines-template" xref="db.xref.target"/><link 
type="xslt-defines-template" xref="db.xref.tooltip"/><link type="xslt-implements-mode" 
xref="db.xref.tooltip.mode"/></info><title>DocBook Links</title><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" grou
 ps="temp
 lates" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db-chunk"/></p></item><item><p><link 
xref="db-title"/></p></item><item><p><link xref="l10n"/></p></item></list><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="utils.email_address"/></p></item><item><p><link xref="db.title"/></p></item><item><p><link 
xref="db.chunk.chunk-id"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.basename"/></p></item><item><p><link 
xref="db.chunk.extension"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="db.xref.too
 ltip.mod
 e">db.xref.tooltip.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="db.xref.tooltip.mode">db.xref.tooltip.mode</link></p></td><td><p><code>biblioentry    | bibliomixed    
|                                                  db:biblioentry | db:bibliomixed 
</code></p></td></tr><tr><td><p><link 
xref="db.xref.tooltip.mode">db.xref.tooltip.mode</link></p></td><td><p><code>glossentry | 
db:glossentry</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db-xref">
+ <info>
+  <link type="guide" xref="stylesheets" group="db"/>
+ </info>
+ <title>DocBook Links</title>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.extension"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id"/></p>
+  </item>
+  <item>
+   <p><link xref="db.subtitle"/></p>
+  </item>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+  <item>
+   <p><link xref="db.titleabbrev"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.email_address"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db.xref.tooltip.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="db.xref.tooltip.mode">db.xref.tooltip.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db.xref.tooltip.mode">db.xref.tooltip.mode</code></p>
+    </td>
+    <td>
+     <p><code>biblioentry    | bibliomixed    |                                                  
db:biblioentry | db:bibliomixed </code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db.xref.tooltip.mode">db.xref.tooltip.mode</code></p>
+    </td>
+    <td>
+     <p><code>glossentry | db:glossentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:glossterm</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db.biblio.abbrev.key.page b/doc/yelp-xsl/C/db.biblio.abbrev.key.page
index 7e829e10..c6c5f6e9 100644
--- a/doc/yelp-xsl/C/db.biblio.abbrev.key.page
+++ b/doc/yelp-xsl/C/db.biblio.abbrev.key.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.biblio.abbrev.key" type="topic" 
style="xslt-key"><info><link type="guide" xref="db-common" group="keys"/><link type="guide" xref="keys" 
group="db"/><revision version="3.18" date="2015-07-23" status="final"/><desc>Get a <code>biblioentry</code> 
or <code>bibliomixed</code> element from its 
<code>abbrev</code>.</desc></info><title>db.biblio.abbrev.key</title><p>Get a <code>biblioentry</code> or 
<code>bibliomixed</code> element from its <code>abbrev</code>.</p>
-  
-  
-  <p>This key returns <code>biblioentry</code> and <code>bibliomixed</code> elements based on their child 
<code>abbrev</code> elements. The <code>abbrev</code> element must be the first child element of the 
<code>biblioentry</code> or <code>bibliomixed</code> element. This key only returns elements that have an 
<code>id</code> attribute for DocBook 4 or an <code>xml:id</code> attribute for DocBook 5.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="db.biblio.abbrev.key">
+ <info>
+  <link type="guide" xref="db-common" group="keys"/>
+  <link type="guide" xref="keys" group="db"/>
+  <desc>Get a <sys>biblioentry</sys> or <sys>bibliomixed</sys> element from its <sys>abbrev</sys>.</desc>
+  <revision version="3.18" date="2015-07-23" status="final"/>
+ </info>
+ <title>db.biblio.abbrev.key</title>
+ <p>This key returns <sys>biblioentry</sys> and <sys>bibliomixed</sys> elements based on their child
+ <sys>abbrev</sys> elements. The <sys>abbrev</sys> element must be the first child element of the
+ <sys>biblioentry</sys> or <sys>bibliomixed</sys> element. This key only returns elements that
+ have an <sys>id</sys> attribute for DocBook 4 or an <sys>xml:id</sys> attribute for DocBook 5.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.biblio.id.key.page b/doc/yelp-xsl/C/db.biblio.id.key.page
index 440803b1..4b3b18c8 100644
--- a/doc/yelp-xsl/C/db.biblio.id.key.page
+++ b/doc/yelp-xsl/C/db.biblio.id.key.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.biblio.id.key" type="topic" style="xslt-key"><info><link 
type="guide" xref="db-common" group="keys"/><link type="guide" xref="keys" group="db"/><revision 
version="3.18" date="2015-07-23" status="final"/><desc>Get a <code>biblioentry</code> or 
<code>bibliomixed</code> element from its <code>id</code>.</desc></info><title>db.biblio.id.key</title><p>Get 
a <code>biblioentry</code> or <code>bibliomixed</code> element from its <code>id</code>.</p>
-  
-  
-  <p>This key returns <code>biblioentry</code> and <code>bibliomixed</code> elements based on their 
<code>id</code> or <code>xml:id</code> attributes. The {#id} attribute is used for DocBook 4, and the 
<code>xml:id</code> attribute is used for DocBook 5.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="db.biblio.id.key">
+ <info>
+  <link type="guide" xref="db-common" group="keys"/>
+  <link type="guide" xref="keys" group="db"/>
+  <desc>Get a <sys>biblioentry</sys> or <sys>bibliomixed</sys> element from its <sys>id</sys>.</desc>
+  <revision version="3.18" date="2015-07-23" status="final"/>
+ </info>
+ <title>db.biblio.id.key</title>
+ <p>This key returns <sys>biblioentry</sys> and <sys>bibliomixed</sys> elements based on their <sys>id</sys>
+ or <sys>xml:id</sys> attributes. The <code xref="#id">#id</code> attribute is used for DocBook 4, and the
+ <sys>xml:id</sys> attribute is used for DocBook 5.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.biblio.label.key.page b/doc/yelp-xsl/C/db.biblio.label.key.page
index 8f0d2798..1c7e3977 100644
--- a/doc/yelp-xsl/C/db.biblio.label.key.page
+++ b/doc/yelp-xsl/C/db.biblio.label.key.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.biblio.label.key" type="topic" 
style="xslt-key"><info><link type="guide" xref="db-common" group="keys"/><link type="guide" xref="keys" 
group="db"/><revision version="3.18" date="2015-07-23" status="final"/><desc>Get a <code>biblioentry</code> 
or <code>bibliomixed</code> element from its 
<code>xreflabel</code>.</desc></info><title>db.biblio.label.key</title><p>Get a <code>biblioentry</code> or 
<code>bibliomixed</code> element from its <code>xreflabel</code>.</p>
-  
-  
-  <p>This key returns <code>biblioentry</code> and <code>bibliomixed</code> elements based on their 
<code>xreflabel</code> attributes. It only returns elements that have an <code>id</code> attribute for 
DocBook 4 or an <code>xml:id</code> attribute for DocBook 5.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="db.biblio.label.key">
+ <info>
+  <link type="guide" xref="db-common" group="keys"/>
+  <link type="guide" xref="keys" group="db"/>
+  <desc>Get a <sys>biblioentry</sys> or <sys>bibliomixed</sys> element from its <sys>xreflabel</sys>.</desc>
+  <revision version="3.18" date="2015-07-23" status="final"/>
+ </info>
+ <title>db.biblio.label.key</title>
+ <p>This key returns <sys>biblioentry</sys> and <sys>bibliomixed</sys> elements based on their
+ <sys>xreflabel</sys> attributes. It only returns elements that have an <sys>id</sys> attribute
+ for DocBook 4 or an <sys>xml:id</sys> attribute for DocBook 5.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.chunk.basename.page b/doc/yelp-xsl/C/db.chunk.basename.page
index 1e71fc35..64f3fde5 100644
--- a/doc/yelp-xsl/C/db.chunk.basename.page
+++ b/doc/yelp-xsl/C/db.chunk.basename.page
@@ -1,6 +1,10 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.basename" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-chunk" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>The base 
filename of the output file, without an extension.</desc></info><title>db.chunk.basename</title><p>The base 
filename of the output file, without an extension.</p>
-  
-  
-  <comment><p>Describe what this does</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.chunk.basename">
+ <info>
+  <link type="guide" xref="db-chunk" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The base filename of the output file, without an extension.</desc>
+ </info>
+ <title>db.chunk.basename</title>
+ <p>REMARK: Describe what this does</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.chunk.chunk-id.axis.page b/doc/yelp-xsl/C/db.chunk.chunk-id.axis.page
index bfeb49a7..1fe4199e 100644
--- a/doc/yelp-xsl/C/db.chunk.chunk-id.axis.page
+++ b/doc/yelp-xsl/C/db.chunk.chunk-id.axis.page
@@ -1,24 +1,55 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.chunk-id.axis" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-chunk" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determines the id 
of the first chunk along a specified axis.</desc></info><title>db.chunk.chunk-id.axis</title><p>Determines 
the id of the first chunk along a specified axis.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The base element</p>
-    </item>
-    <item>
-      <title><code>node</code></title>
-      <p>The axis along which to find the first chunk</p>
-    </item>
-    <item>
-      <title><code>depth_in_chunk</code></title>
-      <p>The depth of <code style="xslt-param">node</code> in the containing chunk</p>
-    </item>
-    <item>
-      <title><code>depth_of_chunk</code></title>
-      <p>The depth of the containing chunk in the document</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Explain how this works, and what the axes are</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item><item><p><link 
xref="db.chunk.chunk-id.axis"/></p></item><item><p><link xref="db.chunk.chunk-id"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.max_depth"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db.chunk.chunk-id.axis">
+ <info>
+  <link type="guide" xref="db-chunk" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determines the id of the first chunk along a specified axis.</desc>
+ </info>
+ <title>db.chunk.chunk-id.axis</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The base element</p>
+   </item>
+   <item>
+    <title><code>$node</code></title>
+    <p>The axis along which to find the first chunk</p>
+   </item>
+   <item>
+    <title><code>$depth_in_chunk</code></title>
+    <p>The depth of <code>$node</code> in the containing chunk</p>
+   </item>
+   <item>
+    <title><code>$depth_of_chunk</code></title>
+    <p>The depth of the containing chunk in the document</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Explain how this works, and what the axes are</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.chunk-id.axis"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.chunk.chunk-id.page b/doc/yelp-xsl/C/db.chunk.chunk-id.page
index f04dbf1c..bd457c00 100644
--- a/doc/yelp-xsl/C/db.chunk.chunk-id.page
+++ b/doc/yelp-xsl/C/db.chunk.chunk-id.page
@@ -1,20 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.chunk-id" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-chunk" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determines the id 
of the chunk that contains an element.</desc></info><title>db.chunk.chunk-id</title><p>Determines the id of 
the chunk that contains an element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>id</code></title>
-      <p>The id of the element to determine the chunk id of</p>
-    </item>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to determine the chunk id of</p>
-    </item>
-    <item>
-      <title><code>depth_in_chunk</code></title>
-      <p>The depth of <code style="xslt-param">node</code> in the containing chunk</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Explain how this works</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item></list><list style="compact"><title>Calls 
Keys</title><item><p><link xref="db.id.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="db.chunk.basename"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.chunk.chunk-id">
+ <info>
+  <link type="guide" xref="db-chunk" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determines the id of the chunk that contains an element.</desc>
+ </info>
+ <title>db.chunk.chunk-id</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$id</code></title>
+    <p>The id of the element to determine the chunk id of</p>
+   </item>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to determine the chunk id of</p>
+   </item>
+   <item>
+    <title><code>$depth_in_chunk</code></title>
+    <p>The depth of <code>$node</code> in the containing chunk</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Explain how this works</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.chunk.depth-in-chunk.page b/doc/yelp-xsl/C/db.chunk.depth-in-chunk.page
index 5498573e..4e3c13cb 100644
--- a/doc/yelp-xsl/C/db.chunk.depth-in-chunk.page
+++ b/doc/yelp-xsl/C/db.chunk.depth-in-chunk.page
@@ -1,12 +1,28 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.depth-in-chunk" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-chunk" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determines the 
depth of an element in the containing chunk.</desc></info><title>db.chunk.depth-in-chunk</title><p>Determines 
the depth of an element in the containing chunk.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to determine the depth of</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Explain how this works</p></comment>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.max_depth"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db.chunk.depth-in-chunk">
+ <info>
+  <link type="guide" xref="db-chunk" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determines the depth of an element in the containing chunk.</desc>
+ </info>
+ <title>db.chunk.depth-in-chunk</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to determine the depth of</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Explain how this works</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.chunk.depth-of-chunk.page b/doc/yelp-xsl/C/db.chunk.depth-of-chunk.page
index b2eb7db2..f21e6dcb 100644
--- a/doc/yelp-xsl/C/db.chunk.depth-of-chunk.page
+++ b/doc/yelp-xsl/C/db.chunk.depth-of-chunk.page
@@ -1,12 +1,28 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.depth-of-chunk" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-chunk" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determines the 
depth of the containing chunk in the 
document.</desc></info><title>db.chunk.depth-of-chunk</title><p>Determines the depth of the containing chunk 
in the document.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to determine the depth of</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Explain how this works</p></comment>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.max_depth"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db.chunk.depth-of-chunk">
+ <info>
+  <link type="guide" xref="db-chunk" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determines the depth of the containing chunk in the document.</desc>
+ </info>
+ <title>db.chunk.depth-of-chunk</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to determine the depth of</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Explain how this works</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.chunk.extension.page b/doc/yelp-xsl/C/db.chunk.extension.page
index 8778ae34..8d3166c1 100644
--- a/doc/yelp-xsl/C/db.chunk.extension.page
+++ b/doc/yelp-xsl/C/db.chunk.extension.page
@@ -1,6 +1,10 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.extension" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-chunk" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>The default file 
extension for new output documents.</desc></info><title>db.chunk.extension</title><p>The default file 
extension for new output documents.</p>
-  
-  
-  <comment><p>Describe what this does</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.chunk.extension">
+ <info>
+  <link type="guide" xref="db-chunk" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The default file extension for new output documents.</desc>
+ </info>
+ <title>db.chunk.extension</title>
+ <p>REMARK: Describe what this does</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.chunk.max_depth.page b/doc/yelp-xsl/C/db.chunk.max_depth.page
index 76967d5f..edee8acd 100644
--- a/doc/yelp-xsl/C/db.chunk.max_depth.page
+++ b/doc/yelp-xsl/C/db.chunk.max_depth.page
@@ -1,6 +1,10 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.chunk.max_depth" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-chunk" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>The maximum 
depth for chunking sections.</desc></info><title>db.chunk.max_depth</title><p>The maximum depth for chunking 
sections.</p>
-  
-  
-  <comment><p>Describe what this does</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.chunk.max_depth">
+ <info>
+  <link type="guide" xref="db-chunk" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The maximum depth for chunking sections.</desc>
+ </info>
+ <title>db.chunk.max_depth</title>
+ <p>REMARK: Describe what this does</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.copyright.page b/doc/yelp-xsl/C/db.copyright.page
index ae0b0117..1688ce7e 100644
--- a/doc/yelp-xsl/C/db.copyright.page
+++ b/doc/yelp-xsl/C/db.copyright.page
@@ -1,12 +1,19 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.copyright" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-common" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Outputs copyright 
information</desc></info><title>db.copyright</title><p>Outputs copyright information</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>copyright</code> element to format</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs copyright information from a <code>copyright</code> elements. It assembles the 
<code>year</code> and <code>holder</code> elements into a simple copyright notice, beginning with the 
copyright symbol "©".</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.copyright">
+ <info>
+  <link type="guide" xref="db-common" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Outputs copyright information</desc>
+ </info>
+ <title>db.copyright</title>
+ <p><code>$node</code>: The <sys>copyright</sys> element to format</p>
+ <p>This template outputs copyright information from a <sys>copyright</sys> elements.
+ It assembles the <sys>year</sys> and <sys>holder</sys> elements into a simple copyright
+ notice, beginning with the copyright symbol "©".</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.glossentry.key.page b/doc/yelp-xsl/C/db.glossentry.key.page
index 694211f5..b9066ffc 100644
--- a/doc/yelp-xsl/C/db.glossentry.key.page
+++ b/doc/yelp-xsl/C/db.glossentry.key.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.glossentry.key" type="topic" 
style="xslt-key"><info><link type="guide" xref="db-common" group="keys"/><link type="guide" xref="keys" 
group="db"/><revision version="3.18" date="2015-07-22" status="final"/><desc>Get a <code>glossentry</code> 
element from its <code>glossterm</code>.</desc></info><title>db.glossentry.key</title><p>Get a 
<code>glossentry</code> element from its <code>glossterm</code>.</p>
-  
-  
-  <p>This key returns <code>glossentry</code> elements based on the text in their <code>glossterm</code> 
child elements. It only returns <code>glossentry</code> elements that have an <code>id</code> attribute in 
DocBook 4 or an <code>xml:id</code> attribute in DocBook 5.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="db.glossentry.key">
+ <info>
+  <link type="guide" xref="db-common" group="keys"/>
+  <link type="guide" xref="keys" group="db"/>
+  <desc>Get a <sys>glossentry</sys> element from its <sys>glossterm</sys>.</desc>
+  <revision version="3.18" date="2015-07-22" status="final"/>
+ </info>
+ <title>db.glossentry.key</title>
+ <p>This key returns <sys>glossentry</sys> elements based on the text in their <sys>glossterm</sys>
+ child elements. It only returns <sys>glossentry</sys> elements that have an <sys>id</sys>
+ attribute in DocBook 4 or an <sys>xml:id</sys> attribute in DocBook 5.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.id.key.page b/doc/yelp-xsl/C/db.id.key.page
index 41d719d1..d8ef22ff 100644
--- a/doc/yelp-xsl/C/db.id.key.page
+++ b/doc/yelp-xsl/C/db.id.key.page
@@ -1,6 +1,12 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.id.key" type="topic" style="xslt-key"><info><link 
type="guide" xref="db-common" group="keys"/><link type="guide" xref="keys" group="db"/><revision 
version="3.4" date="2012-01-26" status="final"/><desc>Get an element from the <code>id</code> 
attribute.</desc></info><title>db.id.key</title><p>Get an element from the <code>id</code> attribute.</p>
-  
-  
-  <p>This key returns any element based on the <code>id</code> attribute, or the <code>xml:id</code> 
attribute in DocBook 5.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="db.id.key">
+ <info>
+  <link type="guide" xref="db-common" group="keys"/>
+  <link type="guide" xref="keys" group="db"/>
+  <desc>Get an element from the <sys>id</sys> attribute.</desc>
+  <revision version="3.4" date="2012-01-26" status="final"/>
+ </info>
+ <title>db.id.key</title>
+ <p>This key returns any element based on the <sys>id</sys> attribute, or the <sys>xml:id</sys>
+ attribute in DocBook 5.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.linenumbering.start.page b/doc/yelp-xsl/C/db.linenumbering.start.page
index f93a9ea2..2a708b80 100644
--- a/doc/yelp-xsl/C/db.linenumbering.start.page
+++ b/doc/yelp-xsl/C/db.linenumbering.start.page
@@ -1,12 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.linenumbering.start" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-common" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determines the 
starting line number for a verbatim element</desc></info><title>db.linenumbering.start</title><p>Determines 
the starting line number for a verbatim element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The verbatim element to determine the starting line number for</p>
-    </item>
-  </terms></synopsis>
-  <p>This template determines the starting line number for a verbatim element using the 
<code>continuation</code> attribute.  The template finds the first preceding element of the same name, counts 
its lines, and handles any <code>startinglinenumber</code> or <code>continuation</code> element it finds on 
that element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.linenumbering.start"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db.linenumbering.start">
+ <info>
+  <link type="guide" xref="db-common" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determines the starting line number for a verbatim element</desc>
+ </info>
+ <title>db.linenumbering.start</title>
+ <p><code>$node</code>: The verbatim element to determine the starting line number for</p>
+ <p>This template determines the starting line number for a verbatim element using
+ the <sys>continuation</sys> attribute.  The template finds the first preceding element
+ of the same name, counts its lines, and handles any <sys>startinglinenumber</sys> or
+ <sys>continuation</sys> element it finds on that element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.linenumbering.start"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.orderedlist.start.page b/doc/yelp-xsl/C/db.orderedlist.start.page
index 79ddc700..fe2d4b31 100644
--- a/doc/yelp-xsl/C/db.orderedlist.start.page
+++ b/doc/yelp-xsl/C/db.orderedlist.start.page
@@ -1,18 +1,42 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.orderedlist.start" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-common" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>Determine the 
number to use for the first <code>listitem</code> in an 
<code>orderedlist</code>.</desc></info><title>db.orderedlist.start</title><p>Determine the number to use for 
the first <code>listitem</code> in an <code>orderedlist</code>.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>orderedlist</code> element to use.</p>
-    </item>
-    <item>
-      <title><code>continuation</code></title>
-      <p>The value of the <code>continuation</code> attribute.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template determines the starting number for an <code>orderedlist</code> element using the 
<code>continuation</code> attribute.  The template finds the first preceding <code>orderedlist</code> element 
and counts its list items.  If that element also uses the <code>continuation</code> attribute, this template 
calls itself recursively to add that element's starting line number to its list item count.</p>
-  <p>This template uses conditional processing when looking at preceding ordered lists and their child list 
items.</p>
-  <p>The <code style="xslt-param">continuation</code> parameter is automatically set based on the 
<code>continuation</code> attribute of <code style="xslt-param">node</code>. It exists as a parameter to 
allow this template to force continuation when it calls itself recursively for conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="db.orderedlist.start"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db.orderedlist.start">
+ <info>
+  <link type="guide" xref="db-common" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Determine the number to use for the first <sys>listitem</sys> in an <sys>orderedlist</sys>.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.orderedlist.start</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>orderedlist</sys> element to use.</p>
+   </item>
+   <item>
+    <title><code>$continuation</code></title>
+    <p>The value of the <sys>continuation</sys> attribute.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template determines the starting number for an <sys>orderedlist</sys> element using
+ the <sys>continuation</sys> attribute.  The template finds the first preceding <sys>orderedlist</sys>
+ element and counts its list items.  If that element also uses the <sys>continuation</sys>
+ attribute, this template calls itself recursively to add that element's starting
+ line number to its list item count.</p>
+ <p>This template uses conditional processing when looking at preceding ordered lists
+ and their child list items.</p>
+ <p>The <code>$continuation</code> parameter is automatically set based on the <sys>continuation</sys>
+ attribute of <code>$node</code>. It exists as a parameter to allow this template to force
+ continuation when it calls itself recursively for conditional processing.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.orderedlist.start"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.personname.list.page b/doc/yelp-xsl/C/db.personname.list.page
index 5d15ecec..518f7d82 100644
--- a/doc/yelp-xsl/C/db.personname.list.page
+++ b/doc/yelp-xsl/C/db.personname.list.page
@@ -1,12 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.personname.list" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-common" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Outputs a list of 
people's names</desc></info><title>db.personname.list</title><p>Outputs a list of people's names</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>nodes</code></title>
-      <p>The elements containing tags such as <code>firstname</code> and <code>surname</code></p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a list of names of people as modelled by the <code>personname</code> element.  
The <code>personname</code> element allows authors to mark up components of a person's name, such as the 
person's first name and surname.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="db.personname"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.personname.list">
+ <info>
+  <link type="guide" xref="db-common" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Outputs a list of people's names</desc>
+ </info>
+ <title>db.personname.list</title>
+ <p><code>$nodes</code>: The elements containing tags such as <sys>firstname</sys> and <sys>surname</sys></p>
+ <p>This template outputs a list of names of people as modelled by the <sys>personname</sys>
+ element.  The <sys>personname</sys> element allows authors to mark up components of a
+ person's name, such as the person's first name and surname.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.personname"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.personname.page b/doc/yelp-xsl/C/db.personname.page
index 58b2be3c..603d141d 100644
--- a/doc/yelp-xsl/C/db.personname.page
+++ b/doc/yelp-xsl/C/db.personname.page
@@ -1,12 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.personname" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-common" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Outputs the name 
of a person</desc></info><title>db.personname</title><p>Outputs the name of a person</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element containing tags such as <code>firstname</code> and <code>surname</code></p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the name of a person as modelled by the <code>personname</code> element.  The 
<code>personname</code> element allows authors to mark up components of a person's name, such as the person's 
first name and surname.  This template assembles those into a string.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.personname"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.personname">
+ <info>
+  <link type="guide" xref="db-common" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Outputs the name of a person</desc>
+ </info>
+ <title>db.personname</title>
+ <p><code>$node</code>: The element containing tags such as <sys>firstname</sys> and <sys>surname</sys></p>
+ <p>This template outputs the name of a person as modelled by the <sys>personname</sys>
+ element.  The <sys>personname</sys> element allows authors to mark up components of
+ a person's name, such as the person's first name and surname.  This template
+ assembles those into a string.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.personname"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.profile.arch.page b/doc/yelp-xsl/C/db.profile.arch.page
index 4c29aa2c..813b31b3 100644
--- a/doc/yelp-xsl/C/db.profile.arch.page
+++ b/doc/yelp-xsl/C/db.profile.arch.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.arch" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
architectures for conditional processing.</desc></info><title>db.profile.arch</title><p>The list of 
architectures for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>arch</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.arch">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of architectures for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.arch</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>arch</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.arch</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.audience.page b/doc/yelp-xsl/C/db.profile.audience.page
index a81be5a3..1be5d08e 100644
--- a/doc/yelp-xsl/C/db.profile.audience.page
+++ b/doc/yelp-xsl/C/db.profile.audience.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.audience" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
audiences for conditional processing.</desc></info><title>db.profile.audience</title><p>The list of audiences 
for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>audience</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.audience">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of audiences for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.audience</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>audience</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.audience</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.condition.page b/doc/yelp-xsl/C/db.profile.condition.page
index 0d6c4d19..75a24563 100644
--- a/doc/yelp-xsl/C/db.profile.condition.page
+++ b/doc/yelp-xsl/C/db.profile.condition.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.condition" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
application-specific conditions for conditional 
processing.</desc></info><title>db.profile.condition</title><p>The list of application-specific conditions 
for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>condition</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.condition">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of application-specific conditions for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.condition</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>condition</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.condition</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.conformance.page b/doc/yelp-xsl/C/db.profile.conformance.page
index 347258d0..917d6908 100644
--- a/doc/yelp-xsl/C/db.profile.conformance.page
+++ b/doc/yelp-xsl/C/db.profile.conformance.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.conformance" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
conformance characteristics for conditional 
processing.</desc></info><title>db.profile.conformance</title><p>The list of conformance characteristics for 
conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>conformance</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" 
id="db.profile.conformance">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of conformance characteristics for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.conformance</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>conformance</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.conformance</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.os.page b/doc/yelp-xsl/C/db.profile.os.page
index fdc669c3..ae9e8e4e 100644
--- a/doc/yelp-xsl/C/db.profile.os.page
+++ b/doc/yelp-xsl/C/db.profile.os.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.os" type="topic" style="xslt-param"><info><link 
type="guide" xref="db-profile" group="parameters"/><link type="guide" xref="parameters" group="db"/><revision 
version="3.10" date="2013-08-12" status="final"/><desc>The list of operating systems for conditional 
processing.</desc></info><title>db.profile.os</title><p>The list of operating systems for conditional 
processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>os</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.os">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of operating systems for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.os</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>os</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.os</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.outputformat.page b/doc/yelp-xsl/C/db.profile.outputformat.page
index b47c75c7..82741cb7 100644
--- a/doc/yelp-xsl/C/db.profile.outputformat.page
+++ b/doc/yelp-xsl/C/db.profile.outputformat.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.outputformat" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
output formats for conditional processing.</desc></info><title>db.profile.outputformat</title><p>The list of 
output formats for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the 
<code>outputformat</code> attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" 
id="db.profile.outputformat">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of output formats for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.outputformat</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>outputformat</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.outputformat</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.revision.page b/doc/yelp-xsl/C/db.profile.revision.page
index a05862ae..5f7b3057 100644
--- a/doc/yelp-xsl/C/db.profile.revision.page
+++ b/doc/yelp-xsl/C/db.profile.revision.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.revision" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
editorial revisions for conditional processing.</desc></info><title>db.profile.revision</title><p>The list of 
editorial revisions for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>revision</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.revision">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of editorial revisions for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.revision</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>revision</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.revision</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.security.page b/doc/yelp-xsl/C/db.profile.security.page
index ce99c129..c50ac7b7 100644
--- a/doc/yelp-xsl/C/db.profile.security.page
+++ b/doc/yelp-xsl/C/db.profile.security.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.security" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
security levels for conditional processing.</desc></info><title>db.profile.security</title><p>The list of 
security levels for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>security</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.security">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of security levels for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.security</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>security</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.security</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.test.page b/doc/yelp-xsl/C/db.profile.test.page
index 910fb2fd..c93554a4 100644
--- a/doc/yelp-xsl/C/db.profile.test.page
+++ b/doc/yelp-xsl/C/db.profile.test.page
@@ -1,12 +1,62 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.test" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-profile" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>Test if an 
element should be shown based on profiling attributes.</desc></info><title>db.profile.test</title><p>Test if 
an element should be shown based on profiling attributes.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to check the condition for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template looks at all the profiling attributes of the element <code 
style="xslt-param">node</code>: <code>arch</code>, <code>audience</code>, <code>condition</code>, 
<code>conformance</code>, <code>os</code>, <code>outputformat</code>, <code>revision</code>, 
<code>security</code>, <code>userlevel</code>, <code>vendor</code>, and <code>wordsize</code>. It returns the 
string <code>"true"</code> if all attributes present match the corresponding parameter in this stylesheet. 
Attributes and parameters can both be lists, separated by semicolons. An attribute matches a parameter if 
there is at least one value in common between the two.</p>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.profile.arch"/></p></item><item><p><link xref="db.profile.audience"/></p></item><item><p><link 
xref="db.profile.condition"/></p></item><item><p><link 
xref="db.profile.conformance"/></p></item><item><p><link xref="db.profile.os"/></p></item><item><p><link 
xref="db.profile.outputformat"/></p></item><item><p><link 
xref="db.profile.revision"/></p></item><item><p><link xref="db.profile.security"/></p></item><item><p><link 
xref="db.profile.userlevel"/></p></item><item><p><link xref="db.profile.vendor"/></p></item><item><p><link 
xref="db.profile.wordsize"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.profile.test">
+ <info>
+  <link type="guide" xref="db-profile" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Test if an element should be shown based on profiling attributes.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.test</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to check the condition for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template looks at all the profiling attributes of the element <code>$node</code>:
+ <sys>arch</sys>, <sys>audience</sys>, <sys>condition</sys>, <sys>conformance</sys>, <sys>os</sys>, 
<sys>outputformat</sys>,
+ <sys>revision</sys>, <sys>security</sys>, <sys>userlevel</sys>, <sys>vendor</sys>, and <sys>wordsize</sys>. 
It returns
+ the string <sys>"true"</sys> if all attributes present match the corresponding parameter
+ in this stylesheet. Attributes and parameters can both be lists, separated by
+ semicolons. An attribute matches a parameter if there is at least one value in
+ common between the two.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.profile.arch"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.audience"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.condition"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.conformance"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.os"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.outputformat"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.revision"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.security"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.userlevel"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.vendor"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.wordsize"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.profile.userlevel.page b/doc/yelp-xsl/C/db.profile.userlevel.page
index c7abbecb..7af64abb 100644
--- a/doc/yelp-xsl/C/db.profile.userlevel.page
+++ b/doc/yelp-xsl/C/db.profile.userlevel.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.userlevel" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
user experience levels for conditional processing.</desc></info><title>db.profile.userlevel</title><p>The 
list of user experience levels for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>userlevel</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.userlevel">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of user experience levels for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.userlevel</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>userlevel</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.userlevel</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.vendor.page b/doc/yelp-xsl/C/db.profile.vendor.page
index 287813c1..645fc898 100644
--- a/doc/yelp-xsl/C/db.profile.vendor.page
+++ b/doc/yelp-xsl/C/db.profile.vendor.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.vendor" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
vendors for conditional processing.</desc></info><title>db.profile.vendor</title><p>The list of vendors for 
conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>vendor</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.vendor">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of vendors for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.vendor</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>vendor</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.vendor</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.profile.wordsize.page b/doc/yelp-xsl/C/db.profile.wordsize.page
index 4797839b..b0ebb8ff 100644
--- a/doc/yelp-xsl/C/db.profile.wordsize.page
+++ b/doc/yelp-xsl/C/db.profile.wordsize.page
@@ -1,6 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.profile.wordsize" type="topic" 
style="xslt-param"><info><link type="guide" xref="db-profile" group="parameters"/><link type="guide" 
xref="parameters" group="db"/><revision version="3.10" date="2013-08-12" status="final"/><desc>The list of 
word sizes for conditional processing.</desc></info><title>db.profile.wordsize</title><p>The list of word 
sizes for conditional processing.</p>
-  
-  
-  <p>This parameter takes a semicolon-separated list of values to match against the <code>wordsize</code> 
attribute for conditional processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="db.profile.wordsize">
+ <info>
+  <link type="guide" xref="db-profile" group="params"/>
+  <link type="guide" xref="params" group="db"/>
+  <desc>The list of word sizes for conditional processing.</desc>
+  <revision version="3.10" date="2013-08-12" status="final"/>
+ </info>
+ <title>db.profile.wordsize</title>
+ <p>This parameter takes a semicolon-separated list of values to match against the
+ <sys>wordsize</sys> attribute for conditional processing.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>db.profile.wordsize</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/db.subtitle.page b/doc/yelp-xsl/C/db.subtitle.page
index 17607ef4..d844ad59 100644
--- a/doc/yelp-xsl/C/db.subtitle.page
+++ b/doc/yelp-xsl/C/db.subtitle.page
@@ -1,16 +1,34 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.subtitle" type="topic" style="xslt-template"><info><link 
type="guide" xref="db-title" group="templates"/><link type="guide" xref="templates" group="db"/><revision 
version="3.4" date="2011-11-10" status="final"/><desc>Output a subtitle for an 
element.</desc></info><title>db.subtitle</title><p>Output a subtitle for an element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to output the subtitle of.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>The info child element of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the subtitle of the element <code style="xslt-param">node</code>, which is 
sometimes used for link text. If no explicit <code>titleabbrev</code> element is found, this template just 
calls <code style="xslt-template" xref="db.title">db.title</code>. This template is not suitable for 
determining whehter a subtitle should be placed in a heading, as it will always return the title if a 
subtitle is not found.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="db.title"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.subtitle">
+ <info>
+  <link type="guide" xref="db-title" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Output a subtitle for an element.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>db.subtitle</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to output the subtitle of.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>The info child element of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the subtitle of the element <code>$node</code>, which is sometimes
+ used for link text. If no explicit <sys>titleabbrev</sys> element is found, this template
+ just calls <code xref="db.title">db.title</code>. This template is not suitable for determining whehter a
+ subtitle should be placed in a heading, as it will always return the title if
+ a subtitle is not found.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.title.page b/doc/yelp-xsl/C/db.title.page
index 0efb073a..1626c7c1 100644
--- a/doc/yelp-xsl/C/db.title.page
+++ b/doc/yelp-xsl/C/db.title.page
@@ -1,17 +1,46 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.title" type="topic" style="xslt-template"><info><link 
type="guide" xref="db-title" group="templates"/><link type="guide" xref="templates" group="db"/><revision 
version="3.28" date="2017-03-18" status="final"/><desc>Output a title for an 
element.</desc></info><title>db.title</title><p>Output a title for an element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to output the title of.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>The info child element of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the title of the element <code style="xslt-param">node</code> as it might be used 
for a heading or for link text. For certain types of elements, this templates will use a localized automatic 
title if no explicit title is provided.</p>
-  <p>When <code style="xslt-param">node</code> is an element for which this template cannot construct a 
title, it calls itself recursively passing the parent element of <code style="xslt-param">node</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.chunk-id"/></p></item><item><p><link xref="db.title"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.title">
+ <info>
+  <link type="guide" xref="db-title" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Output a title for an element.</desc>
+  <revision version="3.28" date="2017-03-18" status="final"/>
+ </info>
+ <title>db.title</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to output the title of.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>The info child element of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the title of the element <code>$node</code> as it might be used for
+ a heading or for link text. For certain types of elements, this templates will
+ use a localized automatic title if no explicit title is provided.</p>
+ <p>When <code>$node</code> is an element for which this template cannot construct a title,
+ it calls itself recursively passing the parent element of <code>$node</code>.</p>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id"/></p>
+  </item>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.titleabbrev.page b/doc/yelp-xsl/C/db.titleabbrev.page
index 64bd8121..9b0c9650 100644
--- a/doc/yelp-xsl/C/db.titleabbrev.page
+++ b/doc/yelp-xsl/C/db.titleabbrev.page
@@ -1,16 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.titleabbrev" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-title" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="3.4" date="2011-11-10" status="final"/><desc>Output an 
abbreviated title for an element.</desc></info><title>db.titleabbrev</title><p>Output an abbreviated title 
for an element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to output the abbreviated title of.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>The info child element of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the abbreviated title of the element <code style="xslt-param">node</code>, which 
is sometimes used for link text. If no explicit <code>titleabbrev</code> element is found, this template just 
calls <code style="xslt-template" xref="db.title">db.title</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="db.title"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.titleabbrev">
+ <info>
+  <link type="guide" xref="db-title" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Output an abbreviated title for an element.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>db.titleabbrev</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to output the abbreviated title of.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>The info child element of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the abbreviated title of the element <code>$node</code>, which is
+ sometimes used for link text. If no explicit <sys>titleabbrev</sys> element is found,
+ this template just calls <code xref="db.title">db.title</code>.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.ulink.tooltip.page b/doc/yelp-xsl/C/db.ulink.tooltip.page
index ec677a89..a99926ba 100644
--- a/doc/yelp-xsl/C/db.ulink.tooltip.page
+++ b/doc/yelp-xsl/C/db.ulink.tooltip.page
@@ -1,15 +1,40 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.ulink.tooltip" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-xref" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates the 
tooltip for an external link</desc></info><title>db.ulink.tooltip</title><p>Generates the tooltip for an 
external link</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to generate a tooltip for</p>
-    </item>
-    <item>
-      <title><code>url</code></title>
-      <p>The URL of the link, usually from the <code>url</code> attribute</p>
-    </item>
-  </terms></synopsis>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="utils.email_address"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.ulink.tooltip">
+ <info>
+  <link type="guide" xref="db-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Generates the tooltip for an external link</desc>
+ </info>
+ <title>db.ulink.tooltip</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to generate a tooltip for</p>
+   </item>
+   <item>
+    <title><code>$url</code></title>
+    <p>The URL of the link, usually from the <sys>url</sys> attribute</p>
+   </item>
+  </terms>
+ </synopsis>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.extension"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.email_address"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.xref.content.page b/doc/yelp-xsl/C/db.xref.content.page
index 21528c29..e4e3e8c3 100644
--- a/doc/yelp-xsl/C/db.xref.content.page
+++ b/doc/yelp-xsl/C/db.xref.content.page
@@ -1,20 +1,54 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.xref.content" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-xref" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates the 
content of a cross reference</desc></info><title>db.xref.content</title><p>Generates the content of a cross 
reference</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The id of the linked-to element, usually from the <code>linkend</code> attribute</p>
-    </item>
-    <item>
-      <title><code>target</code></title>
-      <p>The linked-to element</p>
-    </item>
-    <item>
-      <title><code>xrefstyle</code></title>
-      <p>The cross reference style, usually from the <code>xrefstyle</code> attribute</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>The xrefstyle/role stuff needs to be documented</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="db.title"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.xref.content">
+ <info>
+  <link type="guide" xref="db-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Generates the content of a cross reference</desc>
+ </info>
+ <title>db.xref.content</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The id of the linked-to element, usually from the <sys>linkend</sys> attribute</p>
+   </item>
+   <item>
+    <title><code>$target</code></title>
+    <p>The linked-to element</p>
+   </item>
+   <item>
+    <title><code>$xrefstyle</code></title>
+    <p>The cross reference style, usually from the <sys>xrefstyle</sys> attribute</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: The xrefstyle/role stuff needs to be documented</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.extension"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.subtitle"/></p>
+  </item>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+  <item>
+   <p><link xref="db.titleabbrev"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.xref.target.page b/doc/yelp-xsl/C/db.xref.target.page
index 127ee835..5a73feca 100644
--- a/doc/yelp-xsl/C/db.xref.target.page
+++ b/doc/yelp-xsl/C/db.xref.target.page
@@ -1,20 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.xref.target" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-xref" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates the 
target identifier of a cross reference</desc></info><title>db.xref.target</title><p>Generates the target 
identifier of a cross reference</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The id of the linked-to element, usually from the <code>linkend</code> attribute</p>
-    </item>
-    <item>
-      <title><code>target</code></title>
-      <p>The linked-to element</p>
-    </item>
-    <item>
-      <title><code>is_chunk</code></title>
-      <p>Whether <code style="xslt-param">target</code> is known to be a chunked element</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about how this works with chunking</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.chunk-id"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.basename"/></p></item><item><p><link xref="db.chunk.extension"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.xref.target">
+ <info>
+  <link type="guide" xref="db-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Generates the target identifier of a cross reference</desc>
+ </info>
+ <title>db.xref.target</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The id of the linked-to element, usually from the <sys>linkend</sys> attribute</p>
+   </item>
+   <item>
+    <title><code>$target</code></title>
+    <p>The linked-to element</p>
+   </item>
+   <item>
+    <title><code>$is_chunk</code></title>
+    <p>Whether <code>$target</code> is known to be a chunked element</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about how this works with chunking</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.extension"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db.xref.tooltip.mode.page b/doc/yelp-xsl/C/db.xref.tooltip.mode.page
index 06cb668c..cb0ec21f 100644
--- a/doc/yelp-xsl/C/db.xref.tooltip.mode.page
+++ b/doc/yelp-xsl/C/db.xref.tooltip.mode.page
@@ -1,6 +1,10 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.xref.tooltip.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db-xref" group="modes"/><link type="guide" xref="modes" 
group="db"/><revision version="0.0" date="1970-01-01" 
status="stub"/><desc>FIXME</desc></info><title>db.xref.tooltip.mode</title><p>FIXME</p>
-  
-  
-  <comment><p>Document this</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="db.xref.tooltip.mode">
+ <info>
+  <link type="guide" xref="db-xref" group="modes"/>
+  <link type="guide" xref="modes" group="db"/>
+  <desc>FIXME</desc>
+ </info>
+ <title>db.xref.tooltip.mode</title>
+ <p>REMARK: Document this</p>
 </page>
diff --git a/doc/yelp-xsl/C/db.xref.tooltip.page b/doc/yelp-xsl/C/db.xref.tooltip.page
index bec901d6..a3222b0a 100644
--- a/doc/yelp-xsl/C/db.xref.tooltip.page
+++ b/doc/yelp-xsl/C/db.xref.tooltip.page
@@ -1,16 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db.xref.tooltip" type="topic" 
style="xslt-template"><info><link type="guide" xref="db-xref" group="templates"/><link type="guide" 
xref="templates" group="db"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates the 
tooltip for a cross reference</desc></info><title>db.xref.tooltip</title><p>Generates the tooltip for a cross 
reference</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The id of the linked-to element, usually from the <code>linkend</code> attribute</p>
-    </item>
-    <item>
-      <title><code>target</code></title>
-      <p>The linked-to element</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Document this</p></comment>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="db.xref.tooltip.mode"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db.xref.tooltip">
+ <info>
+  <link type="guide" xref="db-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db"/>
+  <desc>Generates the tooltip for a cross reference</desc>
+ </info>
+ <title>db.xref.tooltip</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The id of the linked-to element, usually from the <sys>linkend</sys> attribute</p>
+   </item>
+   <item>
+    <title><code>$target</code></title>
+    <p>The linked-to element</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Document this</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.extension"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db.xref.tooltip.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-bibliography.page b/doc/yelp-xsl/C/db2html-bibliography.page
index aabcd908..df4d2908 100644
--- a/doc/yelp-xsl/C/db2html-bibliography.page
+++ b/doc/yelp-xsl/C/db2html-bibliography.page
@@ -1,2 +1,341 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-bibliography" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.format.mode?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="3.4" date="2011-11-14" status="final"/><link type="xslt-defines-template" 
xref="db2html.biblioentry.data"/><link type="xslt-defines-template" xref="db2html.biblioentry.label"/><link 
type="xslt-implements-mode" xref="db2html.biblioentry.mode"/></info><title>DocBook to HTML - 
Bibliographies</title><p>This module provides templates to process DocBook bibliograpies.</p><links 
type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" style="linklist"
<title>
 Keys</title></links><list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.personname.list"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item><item><p><link 
xref="db2html.division.div"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>bibliography
 | db:bibliography</code></p></td></tr><tr><td><p/></td><td><p><code>bibliodiv | 
db:bibliodiv</code></p></td></tr><tr><td><p/></td><td><p><code>biblioentry | 
db:biblioentry</code></p></td></tr><tr><td><p/></td><td><p><code>bibliomixed | 
db:bibliomixed</code></p></td></tr><tr><td><p/></td><td><p><code>bibliolist | 
db:bibliolist</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 xref="db2html.biblioentry.mode">db2html.biblioentry.mode</l
 ink></p>
 </td><td><p><code>abstract | db:abstract</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>affiliation | 
db:affiliation</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>author | 
db:author</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>authorblurb</code></p></td></tr><tr><td><p><link
 xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>authorgroup | 
db:authorgroup</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>biblioset | 
db:biblioset</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>citerefentry | 
db:citerefentry</code></p></td></tr><tr><td><p><link xref="db2html.biblioentry.mode">db
 2html.bi
 blioentry.mode</link></p></td><td><p><code>collab | db:collab</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>copyright | 
db:copyright</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>db:cover</code></p></td></tr><tr><td><p><link
 xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>editor | 
db:editor</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>footnote | footnoteref | 
db:footnote | db:footnoteref</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>glossterm | 
db:glossterm</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>indexterm | 
db:indexterm</code></p></td></tr><tr><td><p><link x
 ref="db2
 html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>legalnotice | 
db:legalnotice</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>mediaobject | 
db:mediaobject</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>db:org</code></p></td></tr><tr><td><p><link
 xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>othercredit | 
db:othercredit</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>db:person</code></p></td></tr><tr><td><p><link
 xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>personname | 
db:personname</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>personblurb | 
db:personblurb</code></p></td></tr><
 tr><td><
 p><link xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>publisher | 
db:publisher</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>printhistory | 
db:printhistory</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>subscript | 
db:subscript</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>superscript | 
db:superscript</code></p></td></tr><tr><td><p><link 
xref="db2html.biblioentry.mode">db2html.biblioentry.mode</link></p></td><td><p><code>revhistory | 
db:revhistory</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-bibliography">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="3.4" date="2011-11-14" status="final"/>
+ </info>
+ <title>DocBook to HTML - Bibliographies</title>
+ <p>This module provides templates to process DocBook bibliograpies.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.copyright"/></p>
+  </item>
+  <item>
+   <p><link xref="db.personname"/></p>
+  </item>
+  <item>
+   <p><link xref="db.personname.list"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.block.formal"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.division.div"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.biblioentry.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>bibliography | db:bibliography</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>bibliodiv | db:bibliodiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>biblioentry | db:biblioentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>bibliomixed | db:bibliomixed</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>bibliolist | db:bibliolist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>abstract | db:abstract</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>affiliation | db:affiliation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>author | db:author</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>authorblurb</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>authorgroup | db:authorgroup</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>biblioset | db:biblioset</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>citerefentry | db:citerefentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>collab | db:collab</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>copyright | db:copyright</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>db:cover</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>editor | db:editor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>footnote | footnoteref | db:footnote | db:footnoteref</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>glossterm | db:glossterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>indexterm | db:indexterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>legalnotice | db:legalnotice</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>mediaobject | db:mediaobject</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>db:org</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>othercredit | db:othercredit</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>db:person</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>personname | db:personname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>personblurb | db:personblurb</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>publisher | db:publisher</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>printhistory | db:printhistory</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>subscript | db:subscript</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>superscript | db:superscript</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.biblioentry.mode">db2html.biblioentry.mode</code></p>
+    </td>
+    <td>
+     <p><code>revhistory | db:revhistory</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:biblioentry.label</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-block.page b/doc/yelp-xsl/C/db2html-block.page
index aee95f1a..fe7504a2 100644
--- a/doc/yelp-xsl/C/db2html-block.page
+++ b/doc/yelp-xsl/C/db2html-block.page
@@ -1,2 +1,316 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-block" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="3.4" 
date="2011-11-12" status="final"/><link type="xslt-defines-template" xref="db2html.block"/><link 
type="xslt-defines-template" xref="db2html.block.formal"/><link type="xslt-defines-template" 
xref="db2html.block.title"/><link type="xslt-defines-template" xref="db2html.blockquote"/><link 
type="xslt-defines-template" xref="db2html.para"/><link type="xslt-defines-template" 
xref="db2html.pre"/><link type="xslt-implements-mode" xref="html.syntax.class.mode"/></info><title>DocBook to 
HTML - Block Elements</title><p>This stylesheet handles most simple block-level elements, turning them into 
the appropriate HTML tags. It does not handle tables, lists, and various other complex block-level 
elements.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links typ
 e="topic
 " groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="db.profile.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="icons.svg.figure.zoom.in"/></p></item><item><p><link 
xref="utils.linenumbering"/></p></item><item><p><link xref="html.syntax.class"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="html.syntax.highlight"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>abstract
 | db:abstract</code></p></td></
 tr><tr><
 
td><p/></td><td><p><code>ackno</code></p></td></tr><tr><td><p/></td><td><p><code>db:acknowledgements</code></p></td></tr><tr><td><p/></td><td><p><code>address
 | db:address</code></p></td></tr><tr><td><p/></td><td><p><code>attribution | 
db:attribution</code></p></td></tr><tr><td><p/></td><td><p><code>blockquote | 
db:blockquote</code></p></td></tr><tr><td><p/></td><td><p><code>bridgehead | 
db:bridgehead</code></p></td></tr><tr><td><p/></td><td><p><code>caption | 
db:caption</code></p></td></tr><tr><td><p/></td><td><p><code>caution | 
db:caution</code></p></td></tr><tr><td><p/></td><td><p><code>epigraph | 
db:epigraph</code></p></td></tr><tr><td><p/></td><td><p><code>equation | 
db:equation</code></p></td></tr><tr><td><p/></td><td><p><code>example | 
db:example</code></p></td></tr><tr><td><p/></td><td><p><code>figure | informalfigure | db:figure | 
db:informalfigure</code></p></td></tr><tr><td><p/></td><td><p><code>formalpara | 
db:formalpara</code></p></td></tr><tr><td><p/></td><td><
 p><code>
 highlights</code></p></td></tr><tr><td><p/></td><td><p><code>important | 
db:important</code></p></td></tr><tr><td><p/></td><td><p><code>informalequation | 
db:informalequation</code></p></td></tr><tr><td><p/></td><td><p><code>informalexample | 
db:informalexample</code></p></td></tr><tr><td><p/></td><td><p><code>literallayout | 
db:literallayout</code></p></td></tr><tr><td><p/></td><td><p><code>note | 
db:note</code></p></td></tr><tr><td><p/></td><td><p><code>para | 
db:para</code></p></td></tr><tr><td><p/></td><td><p><code>programlisting | 
db:programlisting</code></p></td></tr><tr><td><p/></td><td><p><code>screen | 
db:screen</code></p></td></tr><tr><td><p/></td><td><p><code>screenshot | 
db:screenshot</code></p></td></tr><tr><td><p/></td><td><p><code>sidebar | 
db:sidebar</code></p></td></tr><tr><td><p/></td><td><p><code>simpara | 
db:simpara</code></p></td></tr><tr><td><p/></td><td><p><code>synopsis | 
db:synopsis</code></p></td></tr><tr><td><p/></td><td><p><code>task | db:task</co
 de></p><
 /td></tr><tr><td><p/></td><td><p><code>taskprerequisites | 
db:taskprerequisites</code></p></td></tr><tr><td><p/></td><td><p><code>taskrelated | 
db:taskrelated</code></p></td></tr><tr><td><p/></td><td><p><code>tasksummary | 
db:tasksummary</code></p></td></tr><tr><td><p/></td><td><p><code>tip | 
db:tip</code></p></td></tr><tr><td><p/></td><td><p><code>title | 
db:title</code></p></td></tr><tr><td><p/></td><td><p><code>warning | 
db:warning</code></p></td></tr><tr><td><p><link 
xref="html.syntax.class.mode">html.syntax.class.mode</link></p></td><td><p><code>programlisting | 
db:programlisting</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-block">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="3.4" date="2011-11-12" status="final"/>
+ </info>
+ <title>DocBook to HTML - Block Elements</title>
+ <p>This stylesheet handles most simple block-level elements, turning them into
+ the appropriate HTML tags. It does not handle tables, lists, and various other
+ complex block-level elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.linenumbering.start"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.class"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.in"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.out"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.caution"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.danger"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.important"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.tip"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.warning"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.linenumbering"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>abstract | db:abstract</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>ackno</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:acknowledgements</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>address | db:address</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>attribution | db:attribution</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>blockquote | db:blockquote</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>bridgehead | db:bridgehead</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>caption | db:caption</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>caution | db:caution</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>epigraph | db:epigraph</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>equation | db:equation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>example | db:example</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>figure | informalfigure | db:figure | db:informalfigure</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>formalpara | db:formalpara</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>highlights</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>important | db:important</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>informalequation | db:informalequation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>informalexample | db:informalexample</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>literallayout | db:literallayout</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>note | db:note</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>para | db:para</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>programlisting | db:programlisting</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>screen | db:screen</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>screenshot | db:screenshot</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sidebar | db:sidebar</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>simpara | db:simpara</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>synopsis | db:synopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>task | db:task</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>taskprerequisites | db:taskprerequisites</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>taskrelated | db:taskrelated</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tasksummary | db:tasksummary</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tip | db:tip</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>title | db:title</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>warning | db:warning</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.syntax.class.mode">html.syntax.class.mode</code></p>
+    </td>
+    <td>
+     <p><code>programlisting | db:programlisting</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-callout.page b/doc/yelp-xsl/C/db2html-callout.page
index f3ac998c..da95cd54 100644
--- a/doc/yelp-xsl/C/db2html-callout.page
+++ b/doc/yelp-xsl/C/db2html-callout.page
@@ -1,2 +1,86 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-callout" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="1.0" 
date="2011-05-16" status="final"/><link type="xslt-requires" xref="db2html-block"/><link type="xslt-requires" 
xref="db2html-xref"/><link type="xslt-requires" xref="html"/><link type="xslt-defines-template" 
xref="db2html.callout.label"/></info><title>DocBook to HTML - Callouts</title><p>This modules handles simple 
DocBook callouts using the <code>co</code> and <code>callout</code> elements. Currently, only callouts to 
<code>co</code> elements are supported. The <code>area</code> element is not supported.</p><links 
type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups=
 "templat
 es" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db2html-block"/></p></item><item><p><link 
xref="db2html-xref"/></p></item><item><p><link xref="html"/></p></item></list><list 
style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>co
 | db:co</code></p></td></tr><tr><td><p/></td><td><p><code>calloutlist | 
db:calloutlist</code></p></td></tr><tr><td><p/></td><td><p><code>callout | 
db:callout</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-callout">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>DocBook to HTML - Callouts</title>
+ <p>This modules handles simple DocBook callouts using the <sys>co</sys> and <sys>callout</sys>
+ elements. Currently, only callouts to <sys>co</sys> elements are supported. The
+ <sys>area</sys> element is not supported.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.block.formal"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>co | db:co</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>calloutlist | db:calloutlist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>callout | db:callout</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-classsynopsis.page b/doc/yelp-xsl/C/db2html-classsynopsis.page
index eba714f5..e12c7156 100644
--- a/doc/yelp-xsl/C/db2html-classsynopsis.page
+++ b/doc/yelp-xsl/C/db2html-classsynopsis.page
@@ -1,2 +1,204 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-classsynopsis" type="guide" 
style="xslt-stylesheet"><?xslt-private db2html.class.cpp.modifier?><info><link type="guide" 
xref="stylesheets" group="db2html"/><revision version="1.0" date="2011-05-16" status="final"/><link 
type="xslt-requires" xref="db2html-xref"/><link type="xslt-requires" xref="html"/><link 
type="xslt-implements-mode" xref="db2html.class.cpp.mode"/><link type="xslt-implements-mode" 
xref="db2html.class.python.mode"/><link type="xslt-defines-param" 
xref="db2html.classsynopsis.language"/></info><title>DocBook to HTML - Class Synopses</title><p>This module 
handles the DocBook <code>classsynopsis</code> and related elements. The contents of the class-modeling 
elements are processed in a mode depending on the programming language to format the synopsis 
correctly.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" style="linkli
 st"><tit
 le>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db2html-xref"/></p></item><item><p><link 
xref="html"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="db2html.classsynopsis.language"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>
               classsynopsis     | constructorsynopsis    | fieldsynopsis |               methodsynopsis    | 
destructorsynopsis     |  
         
      db:classsynopsis  | db:constructorsynopsis | db:fieldsynopsis |               db:methodsynopsis | 
db:destructorsynopsis  </code></p></td></tr><tr><td><p/></td><td><p><code>classsynopsisinfo | 
db:classsynopsisinfo</code></p></td></tr><tr><td><p/></td><td><p><code>methodparam | 
db:methodparam</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>classsynopsis | 
db:classsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>constructorsynopsis | 
db:constructorsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>destructorsynopsis | 
db:destructorsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link><
 /p></td>
 <td><p><code>fieldsynopsis | db:fieldsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>methodparam | 
db:methodparam</code></p></td></tr><tr><td><p><link 
xref="db2html.class.cpp.mode">db2html.class.cpp.mode</link></p></td><td><p><code>methodsynopsis | 
db:methodsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>classsynopsis | 
db:classsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>constructorsynopsis | 
db:constructorsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>destructorsynopsis | 
db:destructorsynopsis</code></p></td></tr><tr>
 <td><p><
 link xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>fieldsynopsis | 
db:fieldsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>methodparam | 
db:methodparam</code></p></td></tr><tr><td><p><link 
xref="db2html.class.python.mode">db2html.class.python.mode</link></p></td><td><p><code>methodsynopsis | 
db:methodsynopsis</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-classsynopsis">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>DocBook to HTML - Class Synopses</title>
+ <p>This module handles the DocBook <sys>classsynopsis</sys> and related elements. The
+ contents of the class-modeling elements are processed in a mode depending on
+ the programming language to format the synopsis correctly.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db2html.classsynopsis.language"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.class.cpp.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.class.python.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>               classsynopsis     | constructorsynopsis    | fieldsynopsis |               
methodsynopsis    | destructorsynopsis     |               db:classsynopsis  | db:constructorsynopsis | 
db:fieldsynopsis |               db:methodsynopsis | db:destructorsynopsis  </code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>classsynopsisinfo | db:classsynopsisinfo</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>methodparam | db:methodparam</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>classsynopsis | db:classsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>constructorsynopsis | db:constructorsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>destructorsynopsis | db:destructorsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>fieldsynopsis | db:fieldsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>methodparam | db:methodparam</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.cpp.mode">db2html.class.cpp.mode</code></p>
+    </td>
+    <td>
+     <p><code>methodsynopsis | db:methodsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>classsynopsis | db:classsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>constructorsynopsis | db:constructorsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>destructorsynopsis | db:destructorsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>fieldsynopsis | db:fieldsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>methodparam | db:methodparam</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.class.python.mode">db2html.class.python.mode</code></p>
+    </td>
+    <td>
+     <p><code>methodsynopsis | db:methodsynopsis</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-cmdsynopsis.page b/doc/yelp-xsl/C/db2html-cmdsynopsis.page
index 2791ec20..da359206 100644
--- a/doc/yelp-xsl/C/db2html-cmdsynopsis.page
+++ b/doc/yelp-xsl/C/db2html-cmdsynopsis.page
@@ -1,2 +1,147 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-cmdsynopsis" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="1.0" 
date="2011-05-16" status="final"/><link type="xslt-requires" xref="db2html-xref"/><link type="xslt-requires" 
xref="html"/><link type="xslt-implements-mode" 
xref="db2html.cmdsynopsis.sbr.padding.mode"/></info><title>DocBook to HTML - Command Synopses</title><p>This 
module contains templates to process DocBook command synopsis elements.</p><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>
 Requires
  Stylesheets</title><item><p><link xref="db2html-xref"/></p></item><item><p><link 
xref="html"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db.profile.test"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>arg
 | db:arg</code></p></td></tr><tr><td><p/></td><td><p><code>cmdsynopsis | 
db:cmdsynopsis</code></p></td></tr><tr><td><p/></td><td><p><code>group | 
db:group</code></p></td></tr><tr><td><p/></td><td><p><code>synopfragment | 
db:synopfragment</code></p></td></tr><tr><td><p/></td><td><p><code>synopfragmentref | 
db:synopfragmentref</code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><cod
 e>node()
 </code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><code>cmdsynopsis
 | db:cmdsynopsis</code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><code>arg
 | db:arg</code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><code>group
 |                                                                  
db:group</code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><code>synopfragment
 | db:synopfragment</code></p></td></tr><tr><td><p><link 
xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</link></p></td><td><p><code>synopfragmentref
 | db:synopfragmentref</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-cmdsynopsis">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>DocBook to HTML - Command Synopses</title>
+ <p>This module contains templates to process DocBook command synopsis elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.cmdsynopsis.sbr.padding.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>arg | db:arg</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>cmdsynopsis | db:cmdsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>group | db:group</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>synopfragment | db:synopfragment</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>synopfragmentref | db:synopfragmentref</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>node()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>cmdsynopsis | db:cmdsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>arg | db:arg</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>group |                                                                  db:group</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>synopfragment | db:synopfragment</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.cmdsynopsis.sbr.padding.mode">db2html.cmdsynopsis.sbr.padding.mode</code></p>
+    </td>
+    <td>
+     <p><code>synopfragmentref | db:synopfragmentref</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-css.page b/doc/yelp-xsl/C/db2html-css.page
index 3b08719a..59977741 100644
--- a/doc/yelp-xsl/C/db2html-css.page
+++ b/doc/yelp-xsl/C/db2html-css.page
@@ -1,2 +1,88 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-css" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-requires" xref="color"/><link type="xslt-requires" 
xref="html"/><link type="xslt-requires" xref="l10n"/><link type="xslt-implements-mode" 
xref="html.css.mode"/></info><title>DocBook to HTML - CSS</title><comment><p>Describe this 
module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="
 color"/>
 </p></item><item><p><link xref="html"/></p></item><item><p><link xref="l10n"/></p></item></list><list 
style="compact"><title>Calls Templates</title><item><p><link xref="l10n.direction"/></p></item><item><p><link 
xref="l10n.align.start"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="color.bg.blue"/></p></item><item><p><link 
xref="color.bg.gray"/></p></item><item><p><link xref="color.bg.yellow"/></p></item><item><p><link 
xref="color.blue"/></p></item><item><p><link xref="color.fg.dark"/></p></item><item><p><link 
xref="color.fg.gray"/></p></item><item><p><link xref="color.gray"/></p></item><item><p><link 
xref="color.yellow"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="html.css.mode">html.css.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-css">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - CSS</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="html.css.mode">html.css.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-division.page b/doc/yelp-xsl/C/db2html-division.page
index 709708ae..6a133b45 100644
--- a/doc/yelp-xsl/C/db2html-division.page
+++ b/doc/yelp-xsl/C/db2html-division.page
@@ -1,2 +1,292 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-division" type="guide" 
style="xslt-stylesheet"><?xslt-private _db2html.division.div.inner?><?xslt-private 
_db2html.division.about.credits?><info><link type="guide" xref="stylesheets" group="db2html"/><revision 
version="3.8" date="2012-11-05" status="final"/><link type="xslt-defines-template" 
xref="db2html.division.div"/><link type="xslt-defines-template" xref="db2html.hgroup"/><link 
type="xslt-defines-template" xref="db2html.division.about"/><link type="xslt-implements-mode" 
xref="html.title.mode"/><link type="xslt-implements-mode" xref="html.header.mode"/><link 
type="xslt-implements-mode" xref="html.footer.mode"/><link type="xslt-implements-mode" 
xref="html.sidebar.contents.mode"/><link type="xslt-implements-mode" xref="html.sidebar.sections.mode"/><link 
type="xslt-implements-mode" xref="html.body.mode"/><link type="xslt-implements-mode" 
xref="html.output.after.mode"/><link type="xslt-implements-mode" xref="db2html.di
 vision.d
 iv.content.mode"/></info><title>DocBook to HTML - Divisions</title><p>Handle division-level DocBook 
elements.</p><p>This stylesheet contains templates to process top-level and sectioning elements in DocBook. 
It handles chunking and implements the interfaces provided by the common <file xref="html">html</file> 
stylesheet.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="db.title"/></p></item><item><p><link 
xref="db2html.links.linktrail"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="db2html.xref"/
</p></i
 tem><item><p><link xref="html.output"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="db2html.footnote.footer"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="db.chunk.max_depth"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>appendix
 | db:appendix</code></p></td></tr><tr><td><p/></td><td><p><code>article | 
db:article</code></p></td></tr><tr><td><p/></td><td><p><code>book | 
db:book</code></p></td></tr><tr><td><p/></td><td><p><code>chapter | 
db:chapter</code></p></td></tr><tr><td><p/></td><td><p><code>colophon | 
db:colophon</code></p></td></tr><tr><td><p/></td><td><p><code>dedication | 
db:dedication</code></p></td></tr><tr><td><p/></td><td><p><code>glossary | 
db:glossary</code></p></td></tr><tr><td><p/></td><td><p><code>glossdiv | db:
 glossdiv
 </code></p></td></tr><tr><td><p/></td><td><p><code>part | 
db:part</code></p></td></tr><tr><td><p/></td><td><p><code>preface | 
db:preface</code></p></td></tr><tr><td><p/></td><td><p><code>qandadiv | 
db:qandadiv</code></p></td></tr><tr><td><p/></td><td><p><code>qandaset | 
db:qandaset</code></p></td></tr><tr><td><p/></td><td><p><code>reference | 
db:reference</code></p></td></tr><tr><td><p/></td><td><p><code>sect1 | 
db:sect1</code></p></td></tr><tr><td><p/></td><td><p><code>sect2 | 
db:sect2</code></p></td></tr><tr><td><p/></td><td><p><code>sect3 | 
db:sect3</code></p></td></tr><tr><td><p/></td><td><p><code>sect4 | 
db:sect4</code></p></td></tr><tr><td><p/></td><td><p><code>sect5 | 
db:sect5</code></p></td></tr><tr><td><p/></td><td><p><code>section | 
db:section</code></p></td></tr><tr><td><p/></td><td><p><code>simplesect | 
db:simplesect</code></p></td></tr><tr><td><p><link 
xref="db2html.division.div.content.mode">db2html.division.div.content.mode</link></p></td><td><p><code>*</code>
 </p></td
</tr><tr><td><p><link 
xref="html.body.mode">html.body.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.footer.mode">html.footer.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.header.mode">html.header.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.output.after.mode">html.output.after.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="html.sidebar.contents.mode">html.sidebar.contents.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="html.sidebar.sections.mode">html.sidebar.sections.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="html.title.mode">html.title.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-division">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <desc>Handle division-level DocBook elements.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>DocBook to HTML - Divisions</title>
+ <p>This stylesheet contains templates to process top-level and sectioning elements
+ in DocBook. It handles chunking and implements the interfaces provided by the
+ common <code xref="html">html</code> stylesheet.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.copyright"/></p>
+  </item>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.footnote.footer"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.links.linktrail"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.links.next"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.links.section"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xref"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.post"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.pre"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.output"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.division.div.content.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>appendix | db:appendix</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>article | db:article</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>book | db:book</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>chapter | db:chapter</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>colophon | db:colophon</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>dedication | db:dedication</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glossary | db:glossary</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glossdiv | db:glossdiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>part | db:part</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>preface | db:preface</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>qandadiv | db:qandadiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>qandaset | db:qandaset</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>reference | db:reference</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sect1 | db:sect1</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sect2 | db:sect2</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sect3 | db:sect3</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sect4 | db:sect4</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sect5 | db:sect5</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>section | db:section</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>simplesect | db:simplesect</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.division.div.content.mode">db2html.division.div.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.body.mode">html.body.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.footer.mode">html.footer.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.header.mode">html.header.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.output.after.mode">html.output.after.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.title.mode">html.title.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-ebnf.page b/doc/yelp-xsl/C/db2html-ebnf.page
index 6f4a317b..dd841ccf 100644
--- a/doc/yelp-xsl/C/db2html-ebnf.page
+++ b/doc/yelp-xsl/C/db2html-ebnf.page
@@ -1,2 +1,56 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-ebnf" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-requires" xref="db2html-xref"/></info><title>DocBook to 
HTML - EBNF Elements</title><comment><p>Describe this module</p></comment><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db2html-xref"/></p></item></list><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.class.a
 ttr"/></
 p></item><item><p><link xref="db2html.anchor"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>productionset
 | db:productionset</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-ebnf">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - EBNF Elements</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>productionset | db:productionset</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-footnote.page b/doc/yelp-xsl/C/db2html-footnote.page
index 126707ba..4fb4fca6 100644
--- a/doc/yelp-xsl/C/db2html-footnote.page
+++ b/doc/yelp-xsl/C/db2html-footnote.page
@@ -1,2 +1,56 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-footnote" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-defines-template" xref="db2html.footnote.link"/><link 
type="xslt-defines-template" xref="db2html.footnote.note"/><link type="xslt-defines-template" 
xref="db2html.footnote.footer"/></info><title>DocBook to HTML - Footnotes</title><p>FIXME: Describe this 
module</p><links type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links 
type="topic" groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" 
groups="modes" style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls Templates</title><item><
 p><link 
 xref="html.class.attr"/></p></item><item><p><link 
xref="db.chunk.depth-of-chunk"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>footnote
 | db:footnote</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-footnote">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Footnotes</title>
+ <p>FIXME: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>footnote | db:footnote</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-funcsynopsis.page b/doc/yelp-xsl/C/db2html-funcsynopsis.page
index 972e01b0..861b20b0 100644
--- a/doc/yelp-xsl/C/db2html-funcsynopsis.page
+++ b/doc/yelp-xsl/C/db2html-funcsynopsis.page
@@ -1,2 +1,116 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-funcsynopsis" type="guide" 
style="xslt-stylesheet"><?xslt-private _db2html.funcsynopsis.pad?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-requires" 
xref="db2html-block"/><link type="xslt-requires" xref="db2html-inline"/><link type="xslt-defines-param" 
xref="db2html.funcsynopsis.style"/></info><title>DocBook to HTML - Function 
Synopses</title><comment><p>Describe this module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><t
 itle>Req
 uires Stylesheets</title><item><p><link xref="db2html-block"/></p></item><item><p><link 
xref="db2html-inline"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.inline"/></p></item><item><p><link xref="db2html.pre"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="db2html.funcsynopsis.style"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>funcdef
 | db:funcdef</code></p></td></tr><tr><td><p/></td><td><p><code>funcparams | 
db:funcparams</code></p></td></tr><tr><td><p/></td><td><p><code>funcprototype | 
db:funcprototype</code></p></td></tr><tr><td><p/></td><td><p><code>funcsynopsis | 
db:funcsynopsis</code></p></td></tr><tr><td><p/></td><td><p><code>funcsynopsisinfo | 
db:funcsynopsisinfo</code></p></td></tr><tr><td><p/></td><td><p><code>initializer | db:initializer</code></p><
 /td></tr
<tr><td><p/></td><td><p><code>modifier | 
db:modifier</code></p></td></tr><tr><td><p/></td><td><p><code>paramdef | 
db:paramdef</code></p></td></tr><tr><td><p/></td><td><p><code>varargs | 
db:varargs</code></p></td></tr><tr><td><p/></td><td><p><code>void | 
db:void</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-funcsynopsis">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Function Synopses</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db2html.funcsynopsis.style"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.inline"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.pre"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>funcdef | db:funcdef</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>funcparams | db:funcparams</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>funcprototype | db:funcprototype</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>funcsynopsis | db:funcsynopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>funcsynopsisinfo | db:funcsynopsisinfo</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>initializer | db:initializer</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>modifier | db:modifier</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>paramdef | db:paramdef</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>varargs | db:varargs</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>void | db:void</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-index.page b/doc/yelp-xsl/C/db2html-index.page
index d1bb7fb9..6485de08 100644
--- a/doc/yelp-xsl/C/db2html-index.page
+++ b/doc/yelp-xsl/C/db2html-index.page
@@ -1,2 +1,135 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-index" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.format.mode?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-requires" 
xref="db-chunk"/><link type="xslt-requires" xref="db2html-division"/><link type="xslt-requires" 
xref="l10n"/><link type="xslt-implements-mode" 
xref="db2html.division.div.content.mode"/></info><title>DocBook to HTML - Indexes</title><p>This module 
provides templates to process DocBook indexes.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys<
 /title><
 /links><list style="compact"><title>Requires Stylesheets</title><item><p><link 
xref="db-chunk"/></p></item><item><p><link xref="db2html-division"/></p></item><item><p><link 
xref="l10n"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="db2html.division.div"/></p></item><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item><item><p><link xref="db2html.xref"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.index.all.key"/></p></item><item><p><link 
xref="db.index.primary.key"/></p></item><item><p><link 
xref="db.index.secondary.key"/></p></item><item><p><link 
xref="db.index.tertiary.key"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>primaryie
 | db:primaryie</code></p></td></tr><tr><td
<p/></t
 d><td><p><code>secondaryie | db:secondaryie</code></p></td></tr><tr><td><p/></td><td><p><code>tertiaryie | 
db:tertiaryie</code></p></td></tr><tr><td><p/></td><td><p><code>indexentry | 
db:indexentry</code></p></td></tr><tr><td><p/></td><td><p><code>index | 
db:index</code></p></td></tr><tr><td><p/></td><td><p><code>indexdiv | 
db:indexdiv</code></p></td></tr><tr><td><p/></td><td><p><code>setindex | 
db:setindex</code></p></td></tr><tr><td><p><link 
xref="db2html.division.div.content.mode">db2html.division.div.content.mode</link></p></td><td><p><code>index[count(indexentry
 | indexdiv) = 0] |                      db:index[count(db:indexentry | db:indexdiv) = 
0]</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-index">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Indexes</title>
+ <p>This module provides templates to process DocBook indexes.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.index.all.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.index.primary.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.index.secondary.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.index.tertiary.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.division.div"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xref"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>primaryie | db:primaryie</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>secondaryie | db:secondaryie</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tertiaryie | db:tertiaryie</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>indexentry | db:indexentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>index | db:index</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>indexdiv | db:indexdiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>setindex | db:setindex</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.division.div.content.mode">db2html.division.div.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>index[count(indexentry | indexdiv) = 0] |                      db:index[count(db:indexentry | 
db:indexdiv) = 0]</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:seeie</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-inline.page b/doc/yelp-xsl/C/db2html-inline.page
index 16c76371..113c4067 100644
--- a/doc/yelp-xsl/C/db2html-inline.page
+++ b/doc/yelp-xsl/C/db2html-inline.page
@@ -1,2 +1,990 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-inline" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.format.mode?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-requires" 
xref="db-common"/><link type="xslt-requires" xref="db2html-xref"/><link type="xslt-requires" 
xref="l10n"/><link type="xslt-defines-template" xref="db2html.inline.children"/><link 
type="xslt-defines-template" xref="db2html.inline"/><link type="xslt-implements-mode" 
xref="db2html.inline.content.mode"/></info><title>DocBook to HTML - Inline 
Elements</title><comment><p>Describe this module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" style=
 "linklis
 t"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db-common"/></p></item><item><p><link 
xref="db2html-xref"/></p></item><item><p><link xref="l10n"/></p></item></list><list 
style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="db2html.xlink"/></p></item><item><p><link xref="db.personname"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="db2html.xref"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link 
xref="db.biblio.abbrev.key"/></p></item><item><p><link xref="db.biblio.id.key"/></p></item><item><p><link 
xref="db.biblio.label.key"/></p></item><item><p><link 
xref="db.glossentry.key"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p
</th><t
 h><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>abbrev | 
db:abbrev</code></p></td></tr><tr><td><p/></td><td><p><code>accel | 
db:accel</code></p></td></tr><tr><td><p/></td><td><p><code>acronym | 
db:acronym</code></p></td></tr><tr><td><p/></td><td><p><code>action</code></p></td></tr><tr><td><p/></td><td><p><code>artpagenums
 | db:artpagenums</code></p></td></tr><tr><td><p/></td><td><p><code>application | 
db:application</code></p></td></tr><tr><td><p/></td><td><p><code>author | 
db:author</code></p></td></tr><tr><td><p/></td><td><p><code>authorinitials | 
db:authorinitials</code></p></td></tr><tr><td><p/></td><td><p><code>db:biblioid</code></p></td></tr><tr><td><p/></td><td><p><code>citation
 | db:citation</code></p></td></tr><tr><td><p/></td><td><p><code>citetitle | 
db:citetitle</code></p></td></tr><tr><td><p/></td><td><p><code>city | 
db:city</code></p></td></tr><tr><td><p/></td><td><p><code>classname | 
db:classname</code></p></td></tr><tr><td><p/></td><td><p>
 <code>co
 de | db:code</code></p></td></tr><tr><td><p/></td><td><p><code>collab | 
db:collab</code></p></td></tr><tr><td><p/></td><td><p><code>collabname</code></p></td></tr><tr><td><p/></td><td><p><code>command
 | db:command</code></p></td></tr><tr><td><p/></td><td><p><code>computeroutput | 
db:computeroutput</code></p></td></tr><tr><td><p/></td><td><p><code>constant | 
db:constant</code></p></td></tr><tr><td><p/></td><td><p><code>corpauthor</code></p></td></tr><tr><td><p/></td><td><p><code>corpcredit</code></p></td></tr><tr><td><p/></td><td><p><code>country
 | db:country</code></p></td></tr><tr><td><p/></td><td><p><code>database | 
db:database</code></p></td></tr><tr><td><p/></td><td><p><code>date | 
db:date</code></p></td></tr><tr><td><p/></td><td><p><code>edition | 
db:edition</code></p></td></tr><tr><td><p/></td><td><p><code>editor | 
db:editor</code></p></td></tr><tr><td><p/></td><td><p><code>email | 
db:email</code></p></td></tr><tr><td><p/></td><td><p><code>emphasis | db:emphasis</code>
 </p></td
</tr><tr><td><p/></td><td><p><code>envar | 
db:envar</code></p></td></tr><tr><td><p/></td><td><p><code>errorcode | 
db:errorcode</code></p></td></tr><tr><td><p/></td><td><p><code>errorname | 
db:errorname</code></p></td></tr><tr><td><p/></td><td><p><code>errortext | 
db:errortext</code></p></td></tr><tr><td><p/></td><td><p><code>errortype | 
db:errortype</code></p></td></tr><tr><td><p/></td><td><p><code>exceptionname | 
db:exceptionname</code></p></td></tr><tr><td><p/></td><td><p><code>fax | 
db:fax</code></p></td></tr><tr><td><p/></td><td><p><code>filename | 
db:filename</code></p></td></tr><tr><td><p/></td><td><p><code>firstname | 
db:firstname</code></p></td></tr><tr><td><p/></td><td><p><code>firstterm | 
db:firstterm</code></p></td></tr><tr><td><p/></td><td><p><code>foreignphrase | 
db:foreignphrase</code></p></td></tr><tr><td><p/></td><td><p><code>function | 
db:function</code></p></td></tr><tr><td><p/></td><td><p><code>glossterm | 
db:glossterm</code></p></td></tr><tr><td><p/></td
<td><p>
 <code>guibutton | db:guibutton</code></p></td></tr><tr><td><p/></td><td><p><code>guiicon | 
db:guiicon</code></p></td></tr><tr><td><p/></td><td><p><code>guilabel | 
db:guilabel</code></p></td></tr><tr><td><p/></td><td><p><code>guimenu | 
db:guimenu</code></p></td></tr><tr><td><p/></td><td><p><code>guimenuitem | 
db:guimenuitem</code></p></td></tr><tr><td><p/></td><td><p><code>guisubmenu | 
db:guisubmenu</code></p></td></tr><tr><td><p/></td><td><p><code>hardware | 
db:hardware</code></p></td></tr><tr><td><p/></td><td><p><code>holder | 
db:holder</code></p></td></tr><tr><td><p/></td><td><p><code>honorific | 
db:honorific</code></p></td></tr><tr><td><p/></td><td><p><code>inlineequation | 
db:inlineequation</code></p></td></tr><tr><td><p/></td><td><p><code>interface | 
db:interface</code></p></td></tr><tr><td><p/></td><td><p><code>interfacename | 
db:interfacename</code></p></td></tr><tr><td><p/></td><td><p><code>isbn | db:biblioid[@class = 
'isbn']</code></p></td></tr><tr><td><p/></td><td>
 <p><code
issn | db:biblioid[@class = 'issn']</code></p></td></tr><tr><td><p/></td><td><p><code>issuenum | 
db:issuenum</code></p></td></tr><tr><td><p/></td><td><p><code>jobtitle | 
db:jobtitle</code></p></td></tr><tr><td><p/></td><td><p><code>keycap | 
db:keycap</code></p></td></tr><tr><td><p/></td><td><p><code>keycode | 
db:keycode</code></p></td></tr><tr><td><p/></td><td><p><code>keycombo | 
db:keycombo</code></p></td></tr><tr><td><p/></td><td><p><code>keysym | 
db:keysym</code></p></td></tr><tr><td><p/></td><td><p><code>lineage | 
db:lineage</code></p></td></tr><tr><td><p/></td><td><p><code>lineannotation | 
db:lineannotation</code></p></td></tr><tr><td><p/></td><td><p><code>literal | 
db:literal</code></p></td></tr><tr><td><p/></td><td><p><code>markup | 
db:markup</code></p></td></tr><tr><td><p/></td><td><p><code>mathphrase | 
db:mathphrase</code></p></td></tr><tr><td><p/></td><td><p><code>medialabel</code></p></td></tr><tr><td><p/></td><td><p><code>menuchoice
| db:menuchoice</code></p></t
 d></tr><
 tr><td><p/></td><td><p><code>methodname | 
db:methodname</code></p></td></tr><tr><td><p/></td><td><p><code>mousebutton | 
db:mousebutton</code></p></td></tr><tr><td><p/></td><td><p><code>option | 
db:option</code></p></td></tr><tr><td><p/></td><td><p><code>optional | 
db:optional</code></p></td></tr><tr><td><p/></td><td><p><code>db:org</code></p></td></tr><tr><td><p/></td><td><p><code>orgdiv
 | db:orgdiv</code></p></td></tr><tr><td><p/></td><td><p><code>orgname | 
db:orgname</code></p></td></tr><tr><td><p/></td><td><p><code>othercredit | 
db:othercredit</code></p></td></tr><tr><td><p/></td><td><p><code>othername | 
db:othername</code></p></td></tr><tr><td><p/></td><td><p><code>package | 
db:package</code></p></td></tr><tr><td><p/></td><td><p><code>pagenums | 
db:pagenums</code></p></td></tr><tr><td><p/></td><td><p><code>parameter | 
db:parameter</code></p></td></tr><tr><td><p/></td><td><p><code>db:person</code></p></td></tr><tr><td><p/></td><td><p><code>personname
 | db:personname</code
</p></t
 d></tr><tr><td><p/></td><td><p><code>phone | 
db:phone</code></p></td></tr><tr><td><p/></td><td><p><code>phrase | 
db:phrase</code></p></td></tr><tr><td><p/></td><td><p><code>pob | 
db:pob</code></p></td></tr><tr><td><p/></td><td><p><code>postcode | 
db:postcode</code></p></td></tr><tr><td><p/></td><td><p><code>productname | 
db:productname</code></p></td></tr><tr><td><p/></td><td><p><code>productnumber | 
db:productnumber</code></p></td></tr><tr><td><p/></td><td><p><code>prompt | 
db:prompt</code></p></td></tr><tr><td><p/></td><td><p><code>property | 
db:property</code></p></td></tr><tr><td><p/></td><td><p><code>pubdate | 
db:pubdate</code></p></td></tr><tr><td><p/></td><td><p><code>publisher | 
db:publisher</code></p></td></tr><tr><td><p/></td><td><p><code>publishername | 
db:publishername</code></p></td></tr><tr><td><p/></td><td><p><code>ooclass | 
db:ooclass</code></p></td></tr><tr><td><p/></td><td><p><code>ooexception | 
db:ooexception</code></p></td></tr><tr><td><p/></td><td><p><co
 de>ooint
 erface | db:oointerface</code></p></td></tr><tr><td><p/></td><td><p><code>quote | 
db:quote</code></p></td></tr><tr><td><p/></td><td><p><code>replaceable | 
db:replaceable</code></p></td></tr><tr><td><p/></td><td><p><code>returnvalue | 
db:returnvalue</code></p></td></tr><tr><td><p/></td><td><p><code>sgmltag | 
db:tag</code></p></td></tr><tr><td><p/></td><td><p><code>shortcut | 
db:shortcut</code></p></td></tr><tr><td><p/></td><td><p><code>state | 
db:state</code></p></td></tr><tr><td><p/></td><td><p><code>street | 
db:street</code></p></td></tr><tr><td><p/></td><td><p><code>structfield</code></p></td></tr><tr><td><p/></td><td><p><code>structname</code></p></td></tr><tr><td><p/></td><td><p><code>subscript
 | db:subscript</code></p></td></tr><tr><td><p/></td><td><p><code>superscript | 
db:superscript</code></p></td></tr><tr><td><p/></td><td><p><code>surname | 
db:surname</code></p></td></tr><tr><td><p/></td><td><p><code>symbol | 
db:symbol</code></p></td></tr><tr><td><p/></td><td><p><co
 de>syste
 mitem | db:systemitem</code></p></td></tr><tr><td><p/></td><td><p><code>token | 
db:token</code></p></td></tr><tr><td><p/></td><td><p><code>trademark | 
db:trademark</code></p></td></tr><tr><td><p/></td><td><p><code>type | 
db:type</code></p></td></tr><tr><td><p/></td><td><p><code>uri | 
db:uri</code></p></td></tr><tr><td><p/></td><td><p><code>userinput | 
db:userinput</code></p></td></tr><tr><td><p/></td><td><p><code>varname | 
db:varname</code></p></td></tr><tr><td><p/></td><td><p><code>volumenum | 
db:volumenum</code></p></td></tr><tr><td><p/></td><td><p><code>wordasword | 
db:wordasword</code></p></td></tr><tr><td><p/></td><td><p><code>year | 
db:year</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>author | 
db:author</code></p></td></tr><tr><td><p><link xref="db2html.inline
 .content
 .mode">db2html.inline.content.mode</link></p></td><td><p><code>citation | 
db:citation</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>editor | 
db:editor</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>email | 
db:email</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>firstterm | 
db:firstterm</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>glossterm | 
db:glossterm</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>keycap | 
db:keycap</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>keycombo | 
db:keycombo</code><
 /p></td>
 </tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>menuchoice | 
db:menuchoice</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>optional | 
db:optional</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>othercredit | 
db:othercredit</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>db:person</code></p></td></tr><tr><td><p><link
 xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>personname | 
db:personname</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>productname | 
db:productname</code></p></td></tr><tr><td><p><link xref="db2html.inline.content.mode">db2html.inline.cont
 ent.mode
 </link></p></td><td><p><code>ooclass | db:ooclass</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>ooexception | 
db:ooexception</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>oointerface | 
db:oointerface</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>quote | 
db:quote</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>sgmltag | 
db:tag</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>shortcut | 
db:shortcut</code></p></td></tr><tr><td><p><link 
xref="db2html.inline.content.mode">db2html.inline.content.mode</link></p></td><td><p><code>trademark | 
db:trademark</code></p></td></tr></tbody></t
 able></p
 age>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-inline">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Inline Elements</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.biblio.abbrev.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.biblio.id.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.biblio.label.key"/></p>
+  </item>
+  <item>
+   <p><link xref="db.glossentry.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.personname"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xlink"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xref"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.inline.content.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>abbrev | db:abbrev</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>accel | db:accel</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>acronym | db:acronym</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>action</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>artpagenums | db:artpagenums</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>application | db:application</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>author | db:author</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>authorinitials | db:authorinitials</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:biblioid</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>citation | db:citation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>citetitle | db:citetitle</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>city | db:city</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>classname | db:classname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>code | db:code</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>collab | db:collab</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>collabname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>command | db:command</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>computeroutput | db:computeroutput</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>constant | db:constant</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>corpauthor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>corpcredit</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>country | db:country</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>database | db:database</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>date | db:date</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>edition | db:edition</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>editor | db:editor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>email | db:email</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>emphasis | db:emphasis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>envar | db:envar</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>errorcode | db:errorcode</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>errorname | db:errorname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>errortext | db:errortext</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>errortype | db:errortype</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>exceptionname | db:exceptionname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>fax | db:fax</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>filename | db:filename</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>firstname | db:firstname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>firstterm | db:firstterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>foreignphrase | db:foreignphrase</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>function | db:function</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glossterm | db:glossterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guibutton | db:guibutton</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guiicon | db:guiicon</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guilabel | db:guilabel</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guimenu | db:guimenu</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guimenuitem | db:guimenuitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>guisubmenu | db:guisubmenu</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>hardware | db:hardware</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>holder | db:holder</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>honorific | db:honorific</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlineequation | db:inlineequation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>interface | db:interface</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>interfacename | db:interfacename</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>isbn | db:biblioid[@class = 'isbn']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>issn | db:biblioid[@class = 'issn']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>issuenum | db:issuenum</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>jobtitle | db:jobtitle</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>keycap | db:keycap</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>keycode | db:keycode</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>keycombo | db:keycombo</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>keysym | db:keysym</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>lineage | db:lineage</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>lineannotation | db:lineannotation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>literal | db:literal</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>markup | db:markup</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mathphrase | db:mathphrase</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>medialabel</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>menuchoice | db:menuchoice</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>methodname | db:methodname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mousebutton | db:mousebutton</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>option | db:option</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>optional | db:optional</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:org</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>orgdiv | db:orgdiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>orgname | db:orgname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>othercredit | db:othercredit</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>othername | db:othername</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>package | db:package</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>pagenums | db:pagenums</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>parameter | db:parameter</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:person</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>personname | db:personname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>phone | db:phone</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>phrase | db:phrase</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>pob | db:pob</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>postcode | db:postcode</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>productname | db:productname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>productnumber | db:productnumber</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>prompt | db:prompt</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>property | db:property</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>pubdate | db:pubdate</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>publisher | db:publisher</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>publishername | db:publishername</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>ooclass | db:ooclass</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>ooexception | db:ooexception</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>oointerface | db:oointerface</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>quote | db:quote</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>replaceable | db:replaceable</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>returnvalue | db:returnvalue</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>sgmltag | db:tag</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>shortcut | db:shortcut</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>state | db:state</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>street | db:street</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>structfield</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>structname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>subscript | db:subscript</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>superscript | db:superscript</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>surname | db:surname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>symbol | db:symbol</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>systemitem | db:systemitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>token | db:token</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>trademark | db:trademark</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>type | db:type</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>uri | db:uri</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>userinput | db:userinput</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>varname | db:varname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>volumenum | db:volumenum</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>wordasword | db:wordasword</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>year | db:year</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>author | db:author</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>citation | db:citation</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>editor | db:editor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>email | db:email</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>firstterm | db:firstterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>glossterm | db:glossterm</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>keycap | db:keycap</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>keycombo | db:keycombo</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>menuchoice | db:menuchoice</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>optional | db:optional</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>othercredit | db:othercredit</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>db:person</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>personname | db:personname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>productname | db:productname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>ooclass | db:ooclass</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>ooexception | db:ooexception</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>oointerface | db:oointerface</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>quote | db:quote</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>sgmltag | db:tag</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>shortcut | db:shortcut</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.inline.content.mode">db2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>trademark | db:trademark</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:citation.label</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-links.page b/doc/yelp-xsl/C/db2html-links.page
index 0738e633..c15bf52d 100644
--- a/doc/yelp-xsl/C/db2html-links.page
+++ b/doc/yelp-xsl/C/db2html-links.page
@@ -1,2 +1,66 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-links" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="3.4" 
date="2011-11-08" status="final"/><link type="xslt-defines-template" xref="db2html.links.linktrail"/><link 
type="xslt-defines-template" xref="db2html.links.next"/><link type="xslt-defines-template" 
xref="db2html.links.section"/></info><title>DocBook to HTML - Links</title><p>This stylesheet contains 
templates to handle implicit automatic links.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><ti
 tle>Call
 s Templates</title><item><p><link xref="l10n.direction"/></p></item><item><p><link 
xref="html.linktrails.prefix"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.tooltip"/></p></item><item><p><link xref="db.titleabbrev"/></p></item><item><p><link 
xref="html.linktrails.empty"/></p></item><item><p><link 
xref="db.chunk.depth-of-chunk"/></p></item><item><p><link 
xref="db.chunk.chunk-id.axis"/></p></item><item><p><link xref="db2html.xref"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-links">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="3.4" date="2011-11-08" status="final"/>
+ </info>
+ <title>DocBook to HTML - Links</title>
+ <p>This stylesheet contains templates to handle implicit automatic links.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id.axis"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.titleabbrev"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xref"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.empty"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.prefix"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-list.page b/doc/yelp-xsl/C/db2html-list.page
index 4a524412..05d792f9 100644
--- a/doc/yelp-xsl/C/db2html-list.page
+++ b/doc/yelp-xsl/C/db2html-list.page
@@ -1,2 +1,240 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-list" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.format.mode?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="3.28" date="2016-10-27" status="review"/></info><title>DocBook to HTML - 
Lists</title><p>This stylesheet handles most list-like elements in DocBook, turning them into appropriate 
HTML tags.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="db.profile.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><it
 em><p><l
 ink xref="l10n.gettext"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.content"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>glosslist
 | db:glosslist</code></p></td></tr><tr><td><p/></td><td><p><code>glossdef | 
db:glossdef</code></p></td></tr><tr><td><p/></td><td><p><code>glossentry | 
db:glossentry</code></p></td></tr><tr><td><p/></td><td><p><code>glosssee | glossseealso | db:glosssee | 
db:glossseealso</code></p></td></tr><tr><td><p/></td><td><p><code>itemizedlist | 
db:itemizedlist</code></p></td></tr><tr><td><p/></td><td><p><code>itemizedlist/listitem | 
db:itemizedlist/db:listitem</code></p></td></tr><tr><td><p/></td><td><p><code>member | 
db:member</code></p></td></tr><tr><td><p/></td><td><p><code>orderedlist | 
db:orderedlist</code></p></td></tr><tr><td><p/></td><td><p><code>orderedlist/listitem | db:orderedlist/db:
 listitem
 </code></p></td></tr><tr><td><p/></td><td><p><code>procedure | 
db:procedure</code></p></td></tr><tr><td><p/></td><td><p><code>answer | 
db:answer</code></p></td></tr><tr><td><p/></td><td><p><code>qandaentry | 
db:qandaentry</code></p></td></tr><tr><td><p/></td><td><p><code>question | 
db:question</code></p></td></tr><tr><td><p/></td><td><p><code>seg | 
db:seg</code></p></td></tr><tr><td><p/></td><td><p><code>seglistitem | 
db:seglistitem</code></p></td></tr><tr><td><p/></td><td><p><code>segmentedlist | 
db:segmentedlist</code></p></td></tr><tr><td><p/></td><td><p><code>segtitle | 
db:segtitle</code></p></td></tr><tr><td><p/></td><td><p><code>simplelist | 
db:simplelist</code></p></td></tr><tr><td><p/></td><td><p><code>result | 
db:result</code></p></td></tr><tr><td><p/></td><td><p><code>step | 
db:step</code></p></td></tr><tr><td><p/></td><td><p><code>stepalternatives | 
db:stepalternatives</code></p></td></tr><tr><td><p/></td><td><p><code>substeps | 
db:substeps</code></p></td></tr><tr
<td><p/
</td><td><p><code>term | db:term</code></p></td></tr><tr><td><p/></td><td><p><code>variablelist | 
db:variablelist</code></p></td></tr><tr><td><p/></td><td><p><code>varlistentry | 
db:varlistentry</code></p></td></tr><tr><td><p/></td><td><p><code>varlistentry/listitem | 
db:varlistentry/db:listitem</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-list">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <revision version="3.28" date="2016-10-27" status="review"/>
+ </info>
+ <title>DocBook to HTML - Lists</title>
+ <p>This stylesheet handles most list-like elements in DocBook, turning them into
+ appropriate HTML tags.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.orderedlist.start"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.content"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.inline"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glosslist | db:glosslist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glossdef | db:glossdef</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glossentry | db:glossentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>glosssee | glossseealso | db:glosssee | db:glossseealso</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>itemizedlist | db:itemizedlist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>itemizedlist/listitem | db:itemizedlist/db:listitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>member | db:member</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>orderedlist | db:orderedlist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>orderedlist/listitem | db:orderedlist/db:listitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>procedure | db:procedure</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>answer | db:answer</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>qandaentry | db:qandaentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>question | db:question</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>seg | db:seg</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>seglistitem | db:seglistitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>segmentedlist | db:segmentedlist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>segtitle | db:segtitle</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>simplelist | db:simplelist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>result | db:result</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>step | db:step</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>stepalternatives | db:stepalternatives</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>substeps | db:substeps</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>term | db:term</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>variablelist | db:variablelist</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>varlistentry | db:varlistentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>varlistentry/listitem | db:varlistentry/db:listitem</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:glosssee</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-math.page b/doc/yelp-xsl/C/db2html-math.page
index 0155532f..79a2719b 100644
--- a/doc/yelp-xsl/C/db2html-math.page
+++ b/doc/yelp-xsl/C/db2html-math.page
@@ -1,2 +1,102 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-math" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="3.8" 
date="2012-11-13" status="final"/><link type="xslt-defines-template" xref="db2html.math.div"/><link 
type="xslt-defines-template" xref="db2html.math.span"/><link type="xslt-implements-mode" 
xref="db2html.math.mode"/></info><title>DocBook to HTML - MathML</title><p>Handle MathML in DocBook 
documents.</p><p>This stylesheet matches embedded MathML and processes it in <code style="xslt-mode" 
xref="db2html.math.mode">db2html.math.mode</code>. The matched templates for the <code>mml:math</code> 
element automatically set the <code>display</code> attribute based on whether the element is in block or 
inline context.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><link
 s type="
 topic" groups="modes" style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>equation/mml:math
 | informalequation/mml:math |                      db:equation/mml:math | 
db:informalequation/mml:math</code></p></td></tr><tr><td><p/></td><td><p><code>inlineequation/mml:math | 
db:inlineequation/mml:math</code></p></td></tr><tr><td><p/></td><td><p><code>db:imagedata[@format='mathml']/mml:math</code></p></td></tr><tr><td><p><link
 xref="db2html.math.mode">db2html.math.mode</link></p></td><td><p><code>mml:*</code></p></td></tr><tr><
 td><p><l
 ink 
xref="db2html.math.mode">db2html.math.mode</link></p></td><td><p><code>text()</code></p></td></tr><tr><td><p><link
 
xref="db2html.math.mode">db2html.math.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-math">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <desc>Handle MathML in DocBook documents.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>DocBook to HTML - MathML</title>
+ <p>This stylesheet matches embedded MathML and processes it in <code 
xref="db2html.math.mode">db2html.math.mode</code>.
+ The matched templates for the <sys>mml:math</sys> element automatically set the <sys>display</sys>
+ attribute based on whether the element is in block or inline context.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.math.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>equation/mml:math | informalequation/mml:math |                      db:equation/mml:math | 
db:informalequation/mml:math</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlineequation/mml:math | db:inlineequation/mml:math</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:imagedata[@format='mathml']/mml:math</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.math.mode">db2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>mml:*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.math.mode">db2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.math.mode">db2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-media.page b/doc/yelp-xsl/C/db2html-media.page
index 367b52a1..9fb229e5 100644
--- a/doc/yelp-xsl/C/db2html-media.page
+++ b/doc/yelp-xsl/C/db2html-media.page
@@ -1,2 +1,133 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-media" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="3.8" 
date="2012-11-13" status="final"/><link type="xslt-defines-template" xref="db2html.audiodata"/><link 
type="xslt-defines-template" xref="db2html.imagedata"/><link type="xslt-defines-template" 
xref="db2html.videodata"/><link type="xslt-defines-template" xref="db2html.mediaobject"/><link 
type="xslt-defines-template" xref="db2html.mediaobject.fallback"/></info><title>DocBook to HTML - Images and 
Media</title><p>Handle DocBook media elements.</p><p>This stylesheet contains templates for handling DocBook 
<code>mediaobject</code> and <code>inlinemediaobject</code> elements, as well as the various 
<code>object</code> and <code>data</code> elements found in these elements. This stylesheet also handles the 
deprecated DocBook 4 <code>graphic</code> and <code>inlinegraphic</code> elements.</p><links type
 ="topic"
  groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.media.controls"/></p></item><item><p><link 
xref="db.profile.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>mediaobject/audioobject/audiodata
 |                      
db:mediaobject/db:audioobject/db:audiodata</code></p></td></tr><tr><td><p/></td><td><p><code>inlinemediaobject/audioobject/audiodata
 |                      db:inlinem
 ediaobje
 ct/db:audioobject/db:audiodata</code></p></td></tr><tr><td><p/></td><td><p><code>audioobject | 
db:audioobject</code></p></td></tr><tr><td><p/></td><td><p><code>graphic</code></p></td></tr><tr><td><p/></td><td><p><code>imagedata
 | db:imagedata</code></p></td></tr><tr><td><p/></td><td><p><code>imageobject | 
db:imageobject</code></p></td></tr><tr><td><p/></td><td><p><code>inlinegraphic</code></p></td></tr><tr><td><p/></td><td><p><code>inlinemediaobject
 | db:inlinemediaobject</code></p></td></tr><tr><td><p/></td><td><p><code>mediaobject | 
db:mediaobject</code></p></td></tr><tr><td><p/></td><td><p><code>mediaobject/videoobject/videodata |          
            
db:mediaobject/db:videoobject/db:videodata</code></p></td></tr><tr><td><p/></td><td><p><code>inlinemediaobject/videoobject/videodata
 |                      
db:inlinemediaobject/db:videoobject/db:videodata</code></p></td></tr><tr><td><p/></td><td><p><code>videoobject
 | db:videoobject</code></p></td></tr></tbody></table></page

+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-media">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <desc>Handle DocBook media elements.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>DocBook to HTML - Images and Media</title>
+ <p>This stylesheet contains templates for handling DocBook <sys>mediaobject</sys> and
+ <sys>inlinemediaobject</sys> elements, as well as the various <sys>object</sys> and <sys>data</sys>
+ elements found in these elements. This stylesheet also handles the deprecated
+ DocBook 4 <sys>graphic</sys> and <sys>inlinegraphic</sys> elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mediaobject/audioobject/audiodata |                      
db:mediaobject/db:audioobject/db:audiodata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlinemediaobject/audioobject/audiodata |                      
db:inlinemediaobject/db:audioobject/db:audiodata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>audioobject | db:audioobject</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>graphic</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>imagedata | db:imagedata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>imageobject | db:imageobject</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlinegraphic</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlinemediaobject | db:inlinemediaobject</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mediaobject | db:mediaobject</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mediaobject/videoobject/videodata |                      
db:mediaobject/db:videoobject/db:videodata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>inlinemediaobject/videoobject/videodata |                      
db:inlinemediaobject/db:videoobject/db:videodata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>videoobject | db:videoobject</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-refentry.page b/doc/yelp-xsl/C/db2html-refentry.page
index fd95d243..9c321513 100644
--- a/doc/yelp-xsl/C/db2html-refentry.page
+++ b/doc/yelp-xsl/C/db2html-refentry.page
@@ -1,2 +1,154 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-refentry" type="guide" 
style="xslt-stylesheet"><?xslt-private db2html.division.div.content.mode?><info><link type="guide" 
xref="stylesheets" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link 
type="xslt-requires" xref="db-chunk"/><link type="xslt-requires" xref="db-title"/><link type="xslt-requires" 
xref="db2html-inline"/><link type="xslt-requires" xref="db2html-division"/><link type="xslt-requires" 
xref="db2html-xref"/><link type="xslt-requires" xref="l10n"/></info><title>DocBook to HTML - Reference 
Pages</title><comment><p>Describe this module. Talk about refenty and friends</p></comment><links 
type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" style
 ="linkli
 st"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db-chunk"/></p></item><item><p><link 
xref="db-title"/></p></item><item><p><link xref="db2html-division"/></p></item><item><p><link 
xref="db2html-inline"/></p></item><item><p><link xref="db2html-xref"/></p></item><item><p><link 
xref="l10n"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.inline"/></p></item><item><p><link xref="db2html.division.div"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>citerefentry
 | db:citerefentry</code></p></td></tr><tr><td><p/></td><td><p><code>citerefentry/refentrytitle | 
db:citerefentry/db:refent
 rytitle<
 /code></p></td></tr><tr><td><p/></td><td><p><code>manvolnum | 
db:manvolnum</code></p></td></tr><tr><td><p/></td><td><p><code>refentry | 
db:refentry</code></p></td></tr><tr><td><p/></td><td><p><code>refdescriptor | 
db:refdescriptor</code></p></td></tr><tr><td><p/></td><td><p><code>refname | 
db:refname</code></p></td></tr><tr><td><p/></td><td><p><code>refnamediv | 
db:refnamediv</code></p></td></tr><tr><td><p/></td><td><p><code>refpurpose | 
db:refpurpose</code></p></td></tr><tr><td><p/></td><td><p><code>refsect1 | 
db:refsect1</code></p></td></tr><tr><td><p/></td><td><p><code>refsect2 | 
db:refsect2</code></p></td></tr><tr><td><p/></td><td><p><code>refsect3 | 
db:refsect3</code></p></td></tr><tr><td><p/></td><td><p><code>refsection | 
db:refsection</code></p></td></tr><tr><td><p/></td><td><p><code>refsynopsisdiv | 
db:refsynopsisdiv</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-refentry">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Reference Pages</title>
+ <p>REMARK: Describe this module. Talk about refenty and friends</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.division.div"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.inline"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>citerefentry | db:citerefentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>citerefentry/refentrytitle | db:citerefentry/db:refentrytitle</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>manvolnum | db:manvolnum</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refentry | db:refentry</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refdescriptor | db:refdescriptor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refname | db:refname</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refnamediv | db:refnamediv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refpurpose | db:refpurpose</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refsect1 | db:refsect1</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refsect2 | db:refsect2</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refsect3 | db:refsect3</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refsection | db:refsection</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>refsynopsisdiv | db:refsynopsisdiv</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="db2html.division.div.content.mode">db2html.division.div.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>refentry |                                                               db:refentry</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-table.page b/doc/yelp-xsl/C/db2html-table.page
index c091f7e0..d585fa68 100644
--- a/doc/yelp-xsl/C/db2html-table.page
+++ b/doc/yelp-xsl/C/db2html-table.page
@@ -1,2 +1,95 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-table" type="guide" 
style="xslt-stylesheet"><?xslt-private db2html.spanstr.decrement?><info><link type="guide" xref="stylesheets" 
group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-requires" 
xref="db2html-block"/><link type="xslt-requires" xref="db2html-inline"/><link type="xslt-requires" 
xref="db2html-xref"/><link type="xslt-requires" xref="l10n"/><link type="xslt-defines-template" 
xref="db2html.row"/><link type="xslt-defines-template" xref="db2html.entry"/><link 
type="xslt-defines-template" xref="db2html.entry.implicit"/><link type="xslt-defines-template" 
xref="db2html.entry.colnum"/><link type="xslt-defines-template" xref="db2html.colspec.colnum"/><link 
type="xslt-defines-template" xref="db2html.entry.colspan"/><link type="xslt-defines-template" 
xref="db2html.spanstr"/><link type="xslt-defines-template" xref="db2html.spanstr.pop"/><link 
type="xslt-defines-template" xref="db2ht
 ml.table
 .table"/></info><title>DocBook to HTML - Tables</title><comment><p>This needs lots of talk about 
CALS</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="db2html-block"/></p></item><item><p><link 
xref="db2html-inline"/></p></item><item><p><link xref="db2html-xref"/></p></item><item><p><link 
xref="l10n"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="html.lang.attrs"/></p></item><item><p><link 
xref="utils.repeat_string"/></p>
 </item><
 /list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>entrytbl
 | db:entrytbl</code></p></td></tr><tr><td><p/></td><td><p><code>table | informaltable | db:table | 
db:informaltable</code></p></td></tr><tr><td><p/></td><td><p><code>tgroup | 
db:tgroup</code></p></td></tr><tr><td><p/></td><td><p><code>tbody | tfoot | thead | db:tbody | db:tfoot | 
db:thead</code></p></td></tr><tr><td><p/></td><td><p><code>tr | 
db:tr</code></p></td></tr><tr><td><p/></td><td><p><code>td | th | db:td | 
db:th</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-table">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Tables</title>
+ <p>REMARK: This needs lots of talk about CALS</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>entrytbl | db:entrytbl</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>table | informaltable | db:table | db:informaltable</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tgroup | db:tgroup</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tbody | tfoot | thead | db:tbody | db:tfoot | db:thead</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>tr | db:tr</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>td | th | db:td | db:th</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html-xref.page b/doc/yelp-xsl/C/db2html-xref.page
index 3bf63d3f..7d3ee1f4 100644
--- a/doc/yelp-xsl/C/db2html-xref.page
+++ b/doc/yelp-xsl/C/db2html-xref.page
@@ -1,2 +1,95 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html-xref" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="db2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-requires" xref="db-xref"/><link 
type="xslt-defines-template" xref="db2html.anchor"/><link type="xslt-defines-template" 
xref="db2html.link"/><link type="xslt-defines-template" xref="db2html.ulink"/><link 
type="xslt-defines-template" xref="db2html.xlink"/><link type="xslt-defines-template" 
xref="db2html.xref"/></info><title>DocBook to HTML - Links and Cross References</title><comment><p>Describe 
this module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templat
 es</titl
 e></links><links type="topic" groups="keys" style="linklist"><title>Keys</title></links><list 
style="compact"><title>Requires Stylesheets</title><item><p><link xref="db-xref"/></p></item></list><list 
style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.tooltip"/></p></item><item><p><link xref="db.ulink.tooltip"/></p></item><item><p><link 
xref="db.xref.content"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>anchor
 | 
db:anchor</code></p></td></tr><tr><td><p/></td><td><p><code>link</code></p></td></tr><tr><td><p/></td><td><p><code>ulink</code></p></td></tr><tr><td><p/></td><td><p><code>db:link</code></p></td></tr><tr><td><p/></td><td><p><code>xref
 |
  db:xref
 </code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html-xref">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+ </info>
+ <title>DocBook to HTML - Links and Cross References</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.ulink.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.content"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>anchor | db:anchor</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>link</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>ulink</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>db:link</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>xref | db:xref</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.anchor.page b/doc/yelp-xsl/C/db2html.anchor.page
index 3d136b65..8479241e 100644
--- a/doc/yelp-xsl/C/db2html.anchor.page
+++ b/doc/yelp-xsl/C/db2html.anchor.page
@@ -1,16 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.anchor" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-xref" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates an 
anchor point for an element</desc></info><title>db2html.anchor</title><p>Generates an anchor point for an 
element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to generate an anchor for</p>
-    </item>
-    <item>
-      <title><code>name</code></title>
-      <p>The text to use for the <code>name</code> attribute</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Describe this template</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.anchor">
+ <info>
+  <link type="guide" xref="db2html-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates an anchor point for an element</desc>
+ </info>
+ <title>db2html.anchor</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to generate an anchor for</p>
+   </item>
+   <item>
+    <title><code>$name</code></title>
+    <p>The text to use for the <sys>name</sys> attribute</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Describe this template</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.audiodata.page b/doc/yelp-xsl/C/db2html.audiodata.page
index 5b9ee595..bb3e9080 100644
--- a/doc/yelp-xsl/C/db2html.audiodata.page
+++ b/doc/yelp-xsl/C/db2html.audiodata.page
@@ -1,12 +1,30 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.audiodata" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-media" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.8" date="2012-11-12" status="final"/><desc>Output an 
HTML <code>audio</code> element for a <code>audiodata</code> 
element.</desc></info><title>db2html.audiodata</title><p>Output an HTML <code>audio</code> element for a 
<code>audiodata</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>audiodata</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an <code>audio</code> element in the HTML output. This template calls <code 
style="xslt-template" xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code> for the 
contents of the <code>audio</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.mediaobject.fallback"/></p></item><item><p><link 
xref="html.media.controls"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.audiodata">
+ <info>
+  <link type="guide" xref="db2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>audio</sys> element for a <sys>audiodata</sys> element.</desc>
+  <revision version="3.8" date="2012-11-12" status="final"/>
+ </info>
+ <title>db2html.audiodata</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>audiodata</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an <sys>audio</sys> element in the HTML output. This template
+ calls <code xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code> for the contents of the 
<sys>audio</sys> element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.mediaobject.fallback"/></p>
+  </item>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.biblioentry.data.page b/doc/yelp-xsl/C/db2html.biblioentry.data.page
index a14098e9..248c3e8f 100644
--- a/doc/yelp-xsl/C/db2html.biblioentry.data.page
+++ b/doc/yelp-xsl/C/db2html.biblioentry.data.page
@@ -1,12 +1,39 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.biblioentry.data" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-bibliography" group="templates"/><link 
type="guide" xref="templates" group="db2html"/><revision version="3.4" date="2011-11-14" 
status="final"/><desc>Output structured data for a bibliography 
entry.</desc></info><title>db2html.biblioentry.data</title><p>Output structured data for a bibliography 
entry.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>biblioentry</code> or <code>biblioset</code> element to output data for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a bibliography entry, or part of a bibliography entry, based on structured data 
found in a <code>biblioentry</code> or <code>biblioset</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.personname.list"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="db2html.biblioentry.data"/></p></item></list><list style="compact"><title>Calls 
Modes</title><item><p><link xref="db2html.biblioentry.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.biblioentry.data">
+ <info>
+  <link type="guide" xref="db2html-bibliography" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output structured data for a bibliography entry.</desc>
+  <revision version="3.4" date="2011-11-14" status="final"/>
+ </info>
+ <title>db2html.biblioentry.data</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>biblioentry</sys> or <sys>biblioset</sys> element to output data for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a bibliography entry, or part of a bibliography entry,
+ based on structured data found in a <sys>biblioentry</sys> or <sys>biblioset</sys> element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.personname.list"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.biblioentry.data"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.biblioentry.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.biblioentry.label.page b/doc/yelp-xsl/C/db2html.biblioentry.label.page
index f2fefcde..4870b1c2 100644
--- a/doc/yelp-xsl/C/db2html.biblioentry.label.page
+++ b/doc/yelp-xsl/C/db2html.biblioentry.label.page
@@ -1,12 +1,31 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.biblioentry.label" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-bibliography" group="templates"/><link 
type="guide" xref="templates" group="db2html"/><revision version="3.4" date="2011-11-14" 
status="final"/><desc>Output the label for a bibliography 
entry.</desc></info><title>db2html.biblioentry.label</title><p>Output the label for a bibliography entry.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>biblioentry</code> or <code>bibliomixed</code> element to generate a label for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a label to be placed inline at the beginning of a bibliography entry. Labels are 
created for both <code>biblioentry</code> and <code>bibliomixed</code> elements. The label is typically an 
abbreviation of the authors' names and the year of publication. In DocBook, it is usually provided with a 
leading <code>abbrev</code> element. Without a leading <code>abbrev</code> element, this template will 
instead use the <code>xreflabel</code> or <code>id</code> attribute.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.biblioentry.label">
+ <info>
+  <link type="guide" xref="db2html-bibliography" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output the label for a bibliography entry.</desc>
+  <revision version="3.4" date="2011-11-14" status="final"/>
+ </info>
+ <title>db2html.biblioentry.label</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>biblioentry</sys> or <sys>bibliomixed</sys> element to generate a label for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a label to be placed inline at the beginning of a bibliography
+ entry. Labels are created for both <sys>biblioentry</sys> and <sys>bibliomixed</sys> elements.
+ The label is typically an abbreviation of the authors' names and the year of
+ publication. In DocBook, it is usually provided with a leading <sys>abbrev</sys>
+ element. Without a leading <sys>abbrev</sys> element, this template will instead
+ use the <sys>xreflabel</sys> or <sys>id</sys> attribute.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.biblioentry.mode.page b/doc/yelp-xsl/C/db2html.biblioentry.mode.page
index fc12cfb4..9bdce2c6 100644
--- a/doc/yelp-xsl/C/db2html.biblioentry.mode.page
+++ b/doc/yelp-xsl/C/db2html.biblioentry.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.biblioentry.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-bibliography" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="3.4" date="2011-11-14" status="final"/><desc>Format elements 
inside a <code>biblioentry</code> or <code>bibliomixed</code> 
element.</desc></info><title>db2html.biblioentry.mode</title><p>Format elements inside a 
<code>biblioentry</code> or <code>bibliomixed</code> element.</p>
-  
-  
-  <p>This mode is used when processing the child elements of a <code>biblioentry</code> or a 
<code>bibliomixed</code> element. Some elements are treated differently when they appear inside a 
bibliography entry.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="db2html.biblioentry.mode">
+ <info>
+  <link type="guide" xref="db2html-bibliography" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Format elements inside a <sys>biblioentry</sys> or <sys>bibliomixed</sys> element.</desc>
+  <revision version="3.4" date="2011-11-14" status="final"/>
+ </info>
+ <title>db2html.biblioentry.mode</title>
+ <p>This mode is used when processing the child elements of a <sys>biblioentry</sys> or a
+ <sys>bibliomixed</sys> element. Some elements are treated differently when they appear
+ inside a bibliography entry.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.block.formal.page b/doc/yelp-xsl/C/db2html.block.formal.page
index 1b4a0a54..2d80770e 100644
--- a/doc/yelp-xsl/C/db2html.block.formal.page
+++ b/doc/yelp-xsl/C/db2html.block.formal.page
@@ -1,33 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.block.formal" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-block" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-09" status="final"/><desc>Output 
HTML for a block-level element with an optional title and 
caption.</desc></info><title>db2html.block.formal</title><p>Output HTML for a block-level element with an 
optional title and caption.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The block-level element to render.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the HTML <code>class</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>title</code></title>
-      <p>An element to use for the title.</p>
-    </item>
-    <item>
-      <title><code>caption</code></title>
-      <p>An element to use for the caption.</p>
-    </item>
-    <item>
-      <title><code>titleattr</code></title>
-      <p>An optional value for the HTML <code>title</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>icon</code></title>
-      <p>An icon for the block, as a copyable node set.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs HTML for a formal DocBook element, one that can have a title or caption. It 
passes the <code style="xslt-param">class</code> parameter to <code style="xslt-template" 
xref="html.class.attr">html.class.attr</code>. If the <code style="xslt-param">class</code> parameter is not 
provided, it uses the local name of <code style="xslt-param">node</code>. Even if <code 
style="xslt-param">title</code> and <code style="xslt-param">caption</code> are both empty, this template 
still outputs the extra wrapper elements for formal elements. If <code style="xslt-param">titleattr</code> is 
provided, it is used for the value of the HTML <code>title</code> attribute on the outermost <code>div</code> 
element.</p>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="icons.svg.figure.zoom.in"/></p></item><item><p><link 
xref="db2html.block.title"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.block.formal">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output HTML for a block-level element with an optional title and caption.</desc>
+  <revision version="3.10" date="2013-08-09" status="final"/>
+ </info>
+ <title>db2html.block.formal</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The block-level element to render.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the HTML <sys>class</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$title</code></title>
+    <p>An element to use for the title.</p>
+   </item>
+   <item>
+    <title><code>$caption</code></title>
+    <p>An element to use for the caption.</p>
+   </item>
+   <item>
+    <title><code>$titleattr</code></title>
+    <p>An optional value for the HTML <sys>title</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$icon</code></title>
+    <p>An icon for the block, as a copyable node set.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs HTML for a formal DocBook element, one that can have
+ a title or caption. It passes the <code>$class</code> parameter to <code 
xref="html.class.attr">html.class.attr</code>.
+ If the <code>$class</code> parameter is not provided, it uses the local name of <code>$node</code>.
+ Even if <code>$title</code> and <code>$caption</code> are both empty, this template still outputs
+ the extra wrapper elements for formal elements. If <code>$titleattr</code> is provided,
+ it is used for the value of the HTML <sys>title</sys> attribute on the outermost
+ <sys>div</sys> element.</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.block.title"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.in"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.out"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.block.page b/doc/yelp-xsl/C/db2html.block.page
index f52dc4fd..240ebc4c 100644
--- a/doc/yelp-xsl/C/db2html.block.page
+++ b/doc/yelp-xsl/C/db2html.block.page
@@ -1,17 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.block" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-block" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-09" status="final"/><desc>Output an 
HTML <code>div</code> element for a block-level element.</desc></info><title>db2html.block</title><p>Output 
an HTML <code>div</code> element for a block-level element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The block-level element to render.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the HTML <code>class</code> attribute.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>div</code> element for the given DocBook element. It passes the 
<code style="xslt-param">class</code> parameter to <code style="xslt-template" 
xref="html.class.attr">html.class.attr</code>. If the <code style="xslt-param">class</code> parameter is not 
provided, it uses the local name of <code style="xslt-param">node</code>.</p>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.block">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>div</sys> element for a block-level element.</desc>
+  <revision version="3.10" date="2013-08-09" status="final"/>
+ </info>
+ <title>db2html.block</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The block-level element to render.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the HTML <sys>class</sys> attribute.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>div</sys> element for the given DocBook element.
+ It passes the <code>$class</code> parameter to <code xref="html.class.attr">html.class.attr</code>.
+ If the <code>$class</code> parameter is not provided, it uses the local name of <code>$node</code>.</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.block.title.page b/doc/yelp-xsl/C/db2html.block.title.page
index 2592e831..9e48c397 100644
--- a/doc/yelp-xsl/C/db2html.block.title.page
+++ b/doc/yelp-xsl/C/db2html.block.title.page
@@ -1,16 +1,46 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.block.title" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-block" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-12" status="final"/><desc>Output a 
formal title for a block-level element.</desc></info><title>db2html.block.title</title><p>Output a formal 
title for a block-level element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The block-level element being processed.</p>
-    </item>
-    <item>
-      <title><code>title</code></title>
-      <p>The element containing the title.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template formats the contents of <code style="xslt-param">title</code> as a title for a 
block-level element.  It is called by <code style="xslt-template" 
xref="db2html.block.formal">db2html.block.formal</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item><item><p><link xref="html.class.attr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.block.title">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output a formal title for a block-level element.</desc>
+  <revision version="3.4" date="2011-11-12" status="final"/>
+ </info>
+ <title>db2html.block.title</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The block-level element being processed.</p>
+   </item>
+   <item>
+    <title><code>$title</code></title>
+    <p>The element containing the title.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template formats the contents of <code>$title</code> as a title for a block-level
+ element. It is called by <code xref="db2html.block.formal">db2html.block.formal</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.blockquote.page b/doc/yelp-xsl/C/db2html.blockquote.page
index 33633514..0c222587 100644
--- a/doc/yelp-xsl/C/db2html.blockquote.page
+++ b/doc/yelp-xsl/C/db2html.blockquote.page
@@ -1,13 +1,43 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.blockquote" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-block" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-09" status="final"/><desc>Output an 
HTML <code>blockquote</code> element.</desc></info><title>db2html.blockquote</title><p>Output an HTML 
<code>blockquote</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The DocBook element ot render as a quote.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>blockquote</code> element for the given DocBook element. It's used 
for the DocBook <code>blockquote</code> and <code>epigraph</code> elements.</p>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.blockquote">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>blockquote</sys> element.</desc>
+  <revision version="3.10" date="2013-08-09" status="final"/>
+ </info>
+ <title>db2html.blockquote</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The DocBook element ot render as a quote.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>blockquote</sys> element for the given DocBook
+ element. It's used for the DocBook <sys>blockquote</sys> and <sys>epigraph</sys> elements.</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.callout.label.page b/doc/yelp-xsl/C/db2html.callout.label.page
index 07d7fad1..d520dcac 100644
--- a/doc/yelp-xsl/C/db2html.callout.label.page
+++ b/doc/yelp-xsl/C/db2html.callout.label.page
@@ -1,12 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.callout.label" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-callout" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="1.0" date="2011-05-16" status="final"/><desc>Create a 
callout label for a <code>co</code> element.</desc></info><title>db2html.callout.label</title><p>Create a 
callout label for a <code>co</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>co</code> element to create a callout label for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates a label for a callout, taking a <code>co</code> element as the <code 
style="xslt-param">node</code> parameter. The label is numbered according to the position of the 
<code>co</code> element in the document. To create the corresponding label for a <code>callout</code> 
element, locate the corresponding <code>co</code> element and call this template on it.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.callout.label">
+ <info>
+  <link type="guide" xref="db2html-callout" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Create a callout label for a <sys>co</sys> element.</desc>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>db2html.callout.label</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>co</sys> element to create a callout label for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates a label for a callout, taking a <sys>co</sys> element as the
+ <code>$node</code> parameter. The label is numbered according to the position of the <sys>co</sys>
+ element in the document. To create the corresponding label for a <sys>callout</sys>
+ element, locate the corresponding <sys>co</sys> element and call this template on it.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.class.cpp.mode.page b/doc/yelp-xsl/C/db2html.class.cpp.mode.page
index 2c0f23af..bc2683bb 100644
--- a/doc/yelp-xsl/C/db2html.class.cpp.mode.page
+++ b/doc/yelp-xsl/C/db2html.class.cpp.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.class.cpp.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-classsynopsis" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="1.0" date="2011-05-16" status="final"/><desc>Process a C++ 
synopsis.</desc></info><title>db2html.class.cpp.mode</title><p>Process a C++ synopsis.</p>
-  
-  
-  <p>This mode is applied to child elements for synopsis elements for the C++ programming language. In C++ 
synopses, the first <code>modifier</code> element for methods is expected to mark the visibility, such as 
<code>public</code> or <code>private</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="db2html.class.cpp.mode">
+ <info>
+  <link type="guide" xref="db2html-classsynopsis" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Process a C++ synopsis.</desc>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>db2html.class.cpp.mode</title>
+ <p>This mode is applied to child elements for synopsis elements for the C++
+ programming language. In C++ synopses, the first <sys>modifier</sys> element for
+ methods is expected to mark the visibility, such as <sys>public</sys> or <sys>private</sys>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.class.python.mode.page b/doc/yelp-xsl/C/db2html.class.python.mode.page
index c88c6b52..7ad74f0b 100644
--- a/doc/yelp-xsl/C/db2html.class.python.mode.page
+++ b/doc/yelp-xsl/C/db2html.class.python.mode.page
@@ -1,6 +1,12 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.class.python.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-classsynopsis" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="1.0" date="2011-05-16" status="final"/><desc>Process a 
Python synopsis.</desc></info><title>db2html.class.python.mode</title><p>Process a Python synopsis.</p>
-  
-  
-  <p>This mode is applied to child elements for synopsis elements for the Python programming language.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="db2html.class.python.mode">
+ <info>
+  <link type="guide" xref="db2html-classsynopsis" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Process a Python synopsis.</desc>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>db2html.class.python.mode</title>
+ <p>This mode is applied to child elements for synopsis elements for the Python
+ programming language.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.classsynopsis.language.page 
b/doc/yelp-xsl/C/db2html.classsynopsis.language.page
index c20c2597..cd7452df 100644
--- a/doc/yelp-xsl/C/db2html.classsynopsis.language.page
+++ b/doc/yelp-xsl/C/db2html.classsynopsis.language.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.classsynopsis.language" type="topic" 
style="xslt-param"><info><link type="guide" xref="db2html-classsynopsis" group="parameters"/><link 
type="guide" xref="parameters" group="db2html"/><revision version="1.0" date="2011-05-16" 
status="final"/><desc>The default programming language used to format <code>classsynopsis</code> 
elements.</desc></info><title>db2html.classsynopsis.language</title><p>The default programming language used 
to format <code>classsynopsis</code> elements.</p>
-  
-  
-  <p>This parameter sets the default value for the <code>language</code> attribute of elements like 
<code>classsynopsis</code>. Templates in this module will always use the <code>language</code> attribute if 
present. Otherwise, they fall back to this value. This parameter can be set with the 
<code>db2html.classsynopsis.language</code> processing instruction at the root of a DocBook document.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" 
id="db2html.classsynopsis.language">
+ <info>
+  <link type="guide" xref="db2html-classsynopsis" group="params"/>
+  <link type="guide" xref="params" group="db2html"/>
+  <desc>The default programming language used to format <sys>classsynopsis</sys> elements.</desc>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>db2html.classsynopsis.language</title>
+ <p>This parameter sets the default value for the <sys>language</sys> attribute of elements
+ like <sys>classsynopsis</sys>. Templates in this module will always use the <sys>language</sys>
+ attribute if present. Otherwise, they fall back to this value. This parameter
+ can be set with the <sys>db2html.classsynopsis.language</sys> processing instruction
+ at the root of a DocBook document.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.cmdsynopsis.sbr.padding.mode.page 
b/doc/yelp-xsl/C/db2html.cmdsynopsis.sbr.padding.mode.page
index 0f3ad5ed..f7f86b53 100644
--- a/doc/yelp-xsl/C/db2html.cmdsynopsis.sbr.padding.mode.page
+++ b/doc/yelp-xsl/C/db2html.cmdsynopsis.sbr.padding.mode.page
@@ -1,17 +1,33 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.cmdsynopsis.sbr.padding.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-cmdsynopsis" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="1.0" date="2011-05-16" status="final"/><desc>Output padding 
for elements leading up to an <code>sbr</code> 
element.</desc></info><title>db2html.cmdsynopsis.sbr.padding.mode</title><p>Output padding for elements 
leading up to an <code>sbr</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>sbr</code></title>
-      <p>The <code>sbr</code> element to pad up to</p>
-    </item>
-    <item>
-      <title><code>sepchar</code></title>
-      <p>The value of the <code>sepchar</code> attribute on the enclosing <code>cmdsynopsis</code></p>
-    </item>
-  </terms></synopsis>
-  <p>When processed in this mode, elements output whitespace to the length of the textual output they would 
normally produce.  This allows options to be aligned when explicit line breaks are inserted with 
<code>sbr</code> elements.</p>
-  <p>To create the padding for a given <code>sbr</code> element, this mode is called on the enclosing 
<code>cmdsynopsis</code> element, passing the <code>sbr</code> element.  When processed in this mode, 
elements should only output padding for content the leads up to the <code>sbr</code> element passed in the 
<code style="xslt-param">sbr</code> parameter.  When processing children that don't contain the given 
<code>sbr</code> element, the <code style="xslt-param">sbr</code> parameter should be set to 
<code>false()</code> for those children.  This avoids additional descendant selectors, which are generally 
expensive to perform.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="db2html.cmdsynopsis.sbr.padding.mode">
+ <info>
+  <link type="guide" xref="db2html-cmdsynopsis" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Output padding for elements leading up to an <sys>sbr</sys> element.</desc>
+  <revision version="1.0" date="2011-05-16" status="final"/>
+ </info>
+ <title>db2html.cmdsynopsis.sbr.padding.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$sbr</code></title>
+    <p>The <sys>sbr</sys> element to pad up to</p>
+   </item>
+   <item>
+    <title><code>$sepchar</code></title>
+    <p>The value of the <sys>sepchar</sys> attribute on the enclosing <sys>cmdsynopsis</sys></p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>When processed in this mode, elements output whitespace to the length of the
+ textual output they would normally produce.  This allows options to be aligned
+ when explicit line breaks are inserted with <sys>sbr</sys> elements.</p>
+ <p>To create the padding for a given <sys>sbr</sys> element, this mode is called on the
+ enclosing <sys>cmdsynopsis</sys> element, passing the <sys>sbr</sys> element.  When processed
+ in this mode, elements should only output padding for content the leads up to
+ the <sys>sbr</sys> element passed in the <code>$sbr</code> parameter.  When processing children
+ that don't contain the given <sys>sbr</sys> element, the <code>$sbr</code> parameter should be
+ set to <sys>false()</sys> for those children.  This avoids additional descendant
+ selectors, which are generally expensive to perform.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.colspec.colnum.page b/doc/yelp-xsl/C/db2html.colspec.colnum.page
index 2b2cd1e9..476ce38d 100644
--- a/doc/yelp-xsl/C/db2html.colspec.colnum.page
+++ b/doc/yelp-xsl/C/db2html.colspec.colnum.page
@@ -1,20 +1,33 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.colspec.colnum" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Calculates 
the column number for a <code>colspec</code> 
element</desc></info><title>db2html.colspec.colnum</title><p>Calculates the column number for a 
<code>colspec</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>colspec</code></title>
-      <p>The <code>colspec</code> element to process</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-  </terms></synopsis>
-  <p>FIXME</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.colspec.colnum"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.colspec.colnum">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Calculates the column number for a <sys>colspec</sys> element</desc>
+ </info>
+ <title>db2html.colspec.colnum</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$colspec</code></title>
+    <p>The <sys>colspec</sys> element to process</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>FIXME</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.colspec.colnum"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.division.about.page b/doc/yelp-xsl/C/db2html.division.about.page
index b62a9b85..71187078 100644
--- a/doc/yelp-xsl/C/db2html.division.about.page
+++ b/doc/yelp-xsl/C/db2html.division.about.page
@@ -1,16 +1,40 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.division.about" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-division" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output the 
copyrights, credits, and license information at the bottom of a 
page.</desc></info><title>db2html.division.about</title><p>Output the copyrights, credits, and license 
information at the bottom of a page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A division-level element a page is being created for.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>The info child element of <code style="xslt-param">node</code></p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs copyright information, credits, and license information for the division. By 
default it is called by the <code style="xslt-mode" xref="html.footer.mode">html.footer.mode</code> 
implementation.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="db.copyright"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.division.about">
+ <info>
+  <link type="guide" xref="db2html-division" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output the copyrights, credits, and license information at the bottom of a page.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>db2html.division.about</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A division-level element a page is being created for.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>The info child element of <code>$node</code></p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs copyright information, credits, and license information for
+ the division. By default it is called by the <code xref="html.footer.mode">html.footer.mode</code> 
implementation.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.copyright"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.division.div.content.mode.page 
b/doc/yelp-xsl/C/db2html.division.div.content.mode.page
index 28fb6e6f..861d5dc9 100644
--- a/doc/yelp-xsl/C/db2html.division.div.content.mode.page
+++ b/doc/yelp-xsl/C/db2html.division.div.content.mode.page
@@ -1,16 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.division.div.content.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-division" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Renders the 
block-level content of a division 
element</desc></info><title>db2html.division.div.content.mode</title><p>Renders the block-level content of a 
division element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>depth_in_chunk</code></title>
-      <p>The depth of the context element in the containing chunk</p>
-    </item>
-    <item>
-      <title><code>depth_of_chunk</code></title>
-      <p>The depth of the containing chunk in the document</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about how this works with <code>callback</code></p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="db2html.division.div.content.mode">
+ <info>
+  <link type="guide" xref="db2html-division" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Renders the block-level content of a division element</desc>
+ </info>
+ <title>db2html.division.div.content.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$depth_in_chunk</code></title>
+    <p>The depth of the context element in the containing chunk</p>
+   </item>
+   <item>
+    <title><code>$depth_of_chunk</code></title>
+    <p>The depth of the containing chunk in the document</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about how this works with <sys>callback</sys></p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.division.div.page b/doc/yelp-xsl/C/db2html.division.div.page
index 68a36443..401162a7 100644
--- a/doc/yelp-xsl/C/db2html.division.div.page
+++ b/doc/yelp-xsl/C/db2html.division.div.page
@@ -1,36 +1,64 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.division.div" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-division" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Renders the 
content of a division element, chunking children if 
necessary</desc></info><title>db2html.division.div</title><p>Renders the content of a division element, 
chunking children if necessary</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to render the content of</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>The info child element of <code style="xslt-param">node</code></p>
-    </item>
-    <item>
-      <title><code>entries</code></title>
-      <p>The entry-style child elements</p>
-    </item>
-    <item>
-      <title><code>divisions</code></title>
-      <p>The division-level child elements</p>
-    </item>
-    <item>
-      <title><code>depth_in_chunk</code></title>
-      <p>The depth of <code style="xslt-param">node</code> in the containing chunk</p>
-    </item>
-    <item>
-      <title><code>depth_of_chunk</code></title>
-      <p>The depth of the containing chunk in the document</p>
-    </item>
-    <item>
-      <title><code>chunk_divisions</code></title>
-      <p>Whether to create new documents for <code style="xslt-param">divisions</code></p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about some of the parameters</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item><item><p><link xref="html.lang.attrs"/></p></item><item><p><link 
xref="html.class.attr"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="db.chunk.max_depth"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.division.div">
+ <info>
+  <link type="guide" xref="db2html-division" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Renders the content of a division element, chunking children if necessary</desc>
+ </info>
+ <title>db2html.division.div</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to render the content of</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>The info child element of <code>$node</code></p>
+   </item>
+   <item>
+    <title><code>$entries</code></title>
+    <p>The entry-style child elements</p>
+   </item>
+   <item>
+    <title><code>$divisions</code></title>
+    <p>The division-level child elements</p>
+   </item>
+   <item>
+    <title><code>$depth_in_chunk</code></title>
+    <p>The depth of <code>$node</code> in the containing chunk</p>
+   </item>
+   <item>
+    <title><code>$depth_of_chunk</code></title>
+    <p>The depth of the containing chunk in the document</p>
+   </item>
+   <item>
+    <title><code>$chunk_divisions</code></title>
+    <p>Whether to create new documents for <code>$divisions</code></p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about some of the parameters</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.entry.colnum.page b/doc/yelp-xsl/C/db2html.entry.colnum.page
index 3b961bb1..7e6494f5 100644
--- a/doc/yelp-xsl/C/db2html.entry.colnum.page
+++ b/doc/yelp-xsl/C/db2html.entry.colnum.page
@@ -1,24 +1,37 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.entry.colnum" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Calculates 
the actual column number for an <code>entry</code> 
element</desc></info><title>db2html.entry.colnum</title><p>Calculates the actual column number for an 
<code>entry</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>entry</code></title>
-      <p>The <code>entry</code> element to process</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>colpos</code></title>
-      <p>The column position, as passed by the preceding <code>entry</code></p>
-    </item>
-  </terms></synopsis>
-  <p>FIXME</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.colspec.colnum"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.entry.colnum">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Calculates the actual column number for an <sys>entry</sys> element</desc>
+ </info>
+ <title>db2html.entry.colnum</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$entry</code></title>
+    <p>The <sys>entry</sys> element to process</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$colpos</code></title>
+    <p>The column position, as passed by the preceding <sys>entry</sys></p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>FIXME</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.colspec.colnum"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.entry.colspan.page b/doc/yelp-xsl/C/db2html.entry.colspan.page
index a44cf71d..983484ba 100644
--- a/doc/yelp-xsl/C/db2html.entry.colspan.page
+++ b/doc/yelp-xsl/C/db2html.entry.colspan.page
@@ -1,20 +1,36 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.entry.colspan" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Calculates 
the <code>colspan</code> for an <code>entry</code> 
element</desc></info><title>db2html.entry.colspan</title><p>Calculates the <code>colspan</code> for an 
<code>entry</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>entry</code></title>
-      <p>The <code>entry</code> element to process</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-  </terms></synopsis>
-  <p>This template calculates how many columns an <code>entry</code> element should span. In CALS tables, 
column spanning is done by specifying starting and ending <code>colspec</code> elements, or by specifying a 
<code>spanspec</code> element which specifies starting and ending <code>colspec</code> elements.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.colspec.colnum"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.entry.colspan">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Calculates the <sys>colspan</sys> for an <sys>entry</sys> element</desc>
+ </info>
+ <title>db2html.entry.colspan</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$entry</code></title>
+    <p>The <sys>entry</sys> element to process</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template calculates how many columns an <sys>entry</sys> element should span.
+ In CALS tables, column spanning is done by specifying starting and ending
+ <sys>colspec</sys> elements, or by specifying a <sys>spanspec</sys> element which specifies
+ starting and ending <sys>colspec</sys> elements.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.colspec.colnum"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.entry.implicit.page b/doc/yelp-xsl/C/db2html.entry.implicit.page
index 871c2aeb..5a39044c 100644
--- a/doc/yelp-xsl/C/db2html.entry.implicit.page
+++ b/doc/yelp-xsl/C/db2html.entry.implicit.page
@@ -1,46 +1,75 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.entry.implicit" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Creates an 
implicit <code>td</code> element to fill up unoccupied 
columns</desc></info><title>db2html.entry.implicit</title><p>Creates an implicit <code>td</code> element to 
fill up unoccupied columns</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>entry</code></title>
-      <p>The <code>entry</code> element currently being processed</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>colsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>rowsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>colpos</code></title>
-      <p>The output column position currently being considered</p>
-    </item>
-    <item>
-      <title><code>colnum</code></title>
-      <p>The actual column number of <code style="xslt-param">entry</code></p>
-    </item>
-    <item>
-      <title><code>colspan</code></title>
-      <p>How many columns the implicit <code>td</code> currently spans</p>
-    </item>
-    <item>
-      <title><code>spanstr</code></title>
-      <p>The string representation of the row spans</p>
-    </item>
-  </terms></synopsis>
-  <p>CALS tables in DocBook don't need to have <code>entry</code> elements for each column in each row, even 
when the column is not covered by a row-spanning entry from a previous row.  An <code>entry</code> can 
explicitly specify which column it's in, and any previous unfilled columns are considered blank.  Since HTML 
tables don't have this mechanism, we have to insert blank <code>td</code> elements to fill the gaps.</p>
-  <p>When <code style="xslt-template" xref="db2html.entry">db2html.entry</code> detects a blank entry, it 
will call this template with the approprite parameters.  This template then calls itself recursively, each 
time adjusting the <code style="xslt-param">colpos</code>, <code style="xslt-param">colspan</code>, and <code 
style="xslt-param">spanstr</code> parameters, until it comes across the last column that needs to be filled.  
It then outputs a <code>td</code> element with an appropriate <code>colspan</code> attribute.</p>
-  <p>Finally, this template calls <code style="xslt-template" xref="db2html.entry">db2html.entry</code> 
again on <code style="xslt-param">entry</code>.  With the values of <code style="xslt-param">colpos</code> 
and <code style="xslt-param">spanstr</code> suitably adjusted, that template is then able to output the 
<code>td</code> for the <code>entry</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.entry.colnum"/></p></item><item><p><link xref="db2html.entry"/></p></item><item><p><link 
xref="db2html.entry.implicit"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.entry.implicit">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Creates an implicit <sys>td</sys> element to fill up unoccupied columns</desc>
+ </info>
+ <title>db2html.entry.implicit</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$entry</code></title>
+    <p>The <sys>entry</sys> element currently being processed</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$colsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$rowsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$colpos</code></title>
+    <p>The output column position currently being considered</p>
+   </item>
+   <item>
+    <title><code>$colnum</code></title>
+    <p>The actual column number of <code>$entry</code></p>
+   </item>
+   <item>
+    <title><code>$colspan</code></title>
+    <p>How many columns the implicit <sys>td</sys> currently spans</p>
+   </item>
+   <item>
+    <title><code>$spanstr</code></title>
+    <p>The string representation of the row spans</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>CALS tables in DocBook don't need to have <sys>entry</sys> elements for each column
+ in each row, even when the column is not covered by a row-spanning entry from
+ a previous row.  An <sys>entry</sys> can explicitly specify which column it's in, and
+ any previous unfilled columns are considered blank.  Since HTML tables don't
+ have this mechanism, we have to insert blank <sys>td</sys> elements to fill the gaps.</p>
+ <p>When <code xref="db2html.entry">db2html.entry</code> detects a blank entry, it will call this template 
with
+ the approprite parameters.  This template then calls itself recursively, each
+ time adjusting the <code>$colpos</code>, <code>$colspan</code>, and <code>$spanstr</code> parameters, until 
it
+ comes across the last column that needs to be filled.  It then outputs a <sys>td</sys>
+ element with an appropriate <sys>colspan</sys> attribute.</p>
+ <p>Finally, this template calls <code xref="db2html.entry">db2html.entry</code> again on 
<code>$entry</code>.  With the
+ values of <code>$colpos</code> and <code>$spanstr</code> suitably adjusted, that template is then
+ able to output the <sys>td</sys> for the <sys>entry</sys> element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.entry"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.colnum"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.implicit"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.entry.page b/doc/yelp-xsl/C/db2html.entry.page
index 87c4aa50..ddd30cb2 100644
--- a/doc/yelp-xsl/C/db2html.entry.page
+++ b/doc/yelp-xsl/C/db2html.entry.page
@@ -1,45 +1,104 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.entry" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Creates a 
<code>td</code> element for an <code>entry</code> element</desc></info><title>db2html.entry</title><p>Creates 
a <code>td</code> element for an <code>entry</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>entry</code></title>
-      <p>The <code>entry</code> element to process</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>colsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>rowsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>colpos</code></title>
-      <p>The output column position currently being considered</p>
-    </item>
-    <item>
-      <title><code>colnum</code></title>
-      <p>The actual column number of <code style="xslt-param">entry</code></p>
-    </item>
-    <item>
-      <title><code>spanstr</code></title>
-      <p>The string representation of the row spans</p>
-    </item>
-  </terms></synopsis>
-  <p>This template processes a single <code>entry</code> element and generates <code>td</code> elements as 
needed.  It then calls itself on the following <code>entry</code> element, adjusting parameters as necessary. 
 Under certain conditions, this template may not be able to output a <code>td</code> element immediately.  In 
these cases, it makes whatever adjustments are needed and calls itself or <code style="xslt-template" 
xref="db2html.entry.implicit">db2html.entry.implicit</code> (which, in turn, calls this template again when 
it's finished).</p>
-  <p>Three parameters are used to determine whether a <code>td</code> element can be output. The <code 
style="xslt-param">spanstr</code> parameter provides infomation about row spans in effect from entries in 
previous rows; the <code style="xslt-param">colpos</code> parameter specifies which column we would output to 
if we created a <code>td</code>; and the <code style="xslt-param">colnum</code> parameter specifies which 
column this <code>entry</code> should be in, according to any relevant <code>colspec</code> or 
<code>spanspec</code> elemets.</p>
-  <p>There are two conditions that cause this template not to output a <code>td</code> element immediately: 
if the <code style="xslt-param">spanstr</code> parameter does not start with <code>0:</code>, and if the 
<code style="xslt-param">colpos</code> parameter is less than the <code style="xslt-param">colnum</code> 
parameter.</p>
-  <p>The <code style="xslt-param">spanstr</code> parameter specifies the row spans in effect from entries in 
previous rows.  As this template iterates over the <code>entry</code> elements, it strips off parts of <code 
style="xslt-param">spanstr</code> so that only the parts relevant to the <code>entry</code> are present.  If 
<code style="xslt-param">spanstr</code> does not start with <code>0:</code>, then an entry in a previous row 
occupies this column position.  In this case, that value is removed from <code 
style="xslt-param">spanstr</code>, the <code style="xslt-param">colpos</code> parameter is incremented, and 
<code style="xslt-template" xref="db2html.entry">db2html.entry</code> is called again.  Additionally, since 
<code style="xslt-template" xref="db2html.entry.colnum">db2html.entry.colnum</code> doesn't consider row 
spans, the <code style="xslt-param">colnum</code> parameter may be incremented as well.</p>
-  <p>If the <code style="xslt-param">colpos</code> parameter is less than the <code 
style="xslt-param">colnum</code> parameter, then the document has skipped entries by explicitly referencing a 
column.  This is allowed in CALS tables, but not in HTML.  To fill the blank spaces, we call <code 
style="xslt-template" xref="db2html.entry.implicit">db2html.entry.implicit</code>, which outputs an empty 
<code>td</code> element spanning as many columns as necessary to fill in the blanks.  The <code 
style="xslt-template" xref="db2html.entry.implicit">db2html.entry.implicit</code> template then calls this 
template again with appropriate parameter values.</p>
-  <p>When this template is finally able to output a <code>td</code> element, it calculates appropriate 
values for the <code>style</code> and <code>class</code> attribute based on DocBook attributes on the 
<code>entry</code>, the relevant <code>colspec</code> or <code>spanspec</code>, and any relevant ancestor 
elements.  It then calls itself on the following <code>entry</code> element to output the next 
<code>td</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.entry.colnum"/></p></item><item><p><link 
xref="db2html.entry.colspan"/></p></item><item><p><link xref="db2html.entry"/></p></item><item><p><link 
xref="db2html.entry.implicit"/></p></item><item><p><link xref="html.lang.attrs"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db2html.spanstr.pop"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.entry">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Creates a <sys>td</sys> element for an <sys>entry</sys> element</desc>
+ </info>
+ <title>db2html.entry</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$entry</code></title>
+    <p>The <sys>entry</sys> element to process</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$colsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$rowsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$colpos</code></title>
+    <p>The output column position currently being considered</p>
+   </item>
+   <item>
+    <title><code>$colnum</code></title>
+    <p>The actual column number of <code>$entry</code></p>
+   </item>
+   <item>
+    <title><code>$spanstr</code></title>
+    <p>The string representation of the row spans</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template processes a single <sys>entry</sys> element and generates <sys>td</sys> elements
+ as needed.  It then calls itself on the following <sys>entry</sys> element, adjusting
+ parameters as necessary.  Under certain conditions, this template may not be
+ able to output a <sys>td</sys> element immediately.  In these cases, it makes whatever
+ adjustments are needed and calls itself or <code 
xref="db2html.entry.implicit">db2html.entry.implicit</code> (which,
+ in turn, calls this template again when it's finished).</p>
+ <p>Three parameters are used to determine whether a <sys>td</sys> element can be output.
+ The <code>$spanstr</code> parameter provides infomation about row spans in effect from
+ entries in previous rows; the <code>$colpos</code> parameter specifies which column we
+ would output to if we created a <sys>td</sys>; and the <code>$colnum</code> parameter specifies
+ which column this <sys>entry</sys> should be in, according to any relevant <sys>colspec</sys>
+ or <sys>spanspec</sys> elemets.</p>
+ <p>There are two conditions that cause this template not to output a <sys>td</sys> element
+ immediately: if the <code>$spanstr</code> parameter does not start with <sys>0:</sys>, and if the
+ <code>$colpos</code> parameter is less than the <code>$colnum</code> parameter.</p>
+ <p>The <code>$spanstr</code> parameter specifies the row spans in effect from entries in
+ previous rows.  As this template iterates over the <sys>entry</sys> elements, it strips
+ off parts of <code>$spanstr</code> so that only the parts relevant to the <sys>entry</sys> are
+ present.  If <code>$spanstr</code> does not start with <sys>0:</sys>, then an entry in a previous
+ row occupies this column position.  In this case, that value is removed from
+ <code>$spanstr</code>, the <code>$colpos</code> parameter is incremented, and <code 
xref="db2html.entry">db2html.entry</code> is
+ called again.  Additionally, since <code xref="db2html.entry.colnum">db2html.entry.colnum</code> doesn't 
consider
+ row spans, the <code>$colnum</code> parameter may be incremented as well.</p>
+ <p>If the <code>$colpos</code> parameter is less than the <code>$colnum</code> parameter, then the
+ document has skipped entries by explicitly referencing a column.  This is
+ allowed in CALS tables, but not in HTML.  To fill the blank spaces, we call
+ <code xref="db2html.entry.implicit">db2html.entry.implicit</code>, which outputs an empty <sys>td</sys> 
element spanning as
+ many columns as necessary to fill in the blanks.  The <code 
xref="db2html.entry.implicit">db2html.entry.implicit</code>
+ template then calls this template again with appropriate parameter values.</p>
+ <p>When this template is finally able to output a <sys>td</sys> element, it calculates
+ appropriate values for the <sys>style</sys> and <sys>class</sys> attribute based on DocBook
+ attributes on the <sys>entry</sys>, the relevant <sys>colspec</sys> or <sys>spanspec</sys>, and any
+ relevant ancestor elements.  It then calls itself on the following <sys>entry</sys>
+ element to output the next <sys>td</sys>.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.entry"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.colnum"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.colspan"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.implicit"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.spanstr.pop"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.footnote.footer.page b/doc/yelp-xsl/C/db2html.footnote.footer.page
index 7b7057ef..bc776775 100644
--- a/doc/yelp-xsl/C/db2html.footnote.footer.page
+++ b/doc/yelp-xsl/C/db2html.footnote.footer.page
@@ -1,16 +1,36 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.footnote.footer" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-footnote" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-10" status="final"/><desc>Output all 
footnotes for a page.</desc></info><title>db2html.footnote.footer</title><p>Output all footnotes for a 
page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The division-level element containing footnotes</p>
-    </item>
-    <item>
-      <title><code>depth_of_chunk</code></title>
-      <p>The depth of the containing chunk in the document.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template collects all <code>footnote</code> elements under <code style="xslt-param">node</code> 
and outputs them with <code style="xslt-template" xref="db2html.footnote.note">db2html.footnote.note</code>. 
It checks if each footnote would be displayed on a separate page by a child division-level element, and if 
so, it doesn't output that footnote.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-of-chunk"/></p></item><item><p><link 
xref="db2html.footnote.note"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.footnote.footer">
+ <info>
+  <link type="guide" xref="db2html-footnote" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output all footnotes for a page.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>db2html.footnote.footer</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The division-level element containing footnotes</p>
+   </item>
+   <item>
+    <title><code>$depth_of_chunk</code></title>
+    <p>The depth of the containing chunk in the document.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template collects all <sys>footnote</sys> elements under <code>$node</code> and outputs them
+ with <code xref="db2html.footnote.note">db2html.footnote.note</code>. It checks if each footnote would be 
displayed on
+ a separate page by a child division-level element, and if so, it doesn't output
+ that footnote.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.footnote.note"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.footnote.link.page b/doc/yelp-xsl/C/db2html.footnote.link.page
index b8585da0..dd2f193f 100644
--- a/doc/yelp-xsl/C/db2html.footnote.link.page
+++ b/doc/yelp-xsl/C/db2html.footnote.link.page
@@ -1,12 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.footnote.link" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-footnote" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-10" status="final"/><desc>Output a 
link to a footnote.</desc></info><title>db2html.footnote.link</title><p>Output a link to a footnote.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>footnote</code> element to process.</p>
-    </item>
-  </terms></synopsis>
-  <p>This templates outputs an inline link to the footnote displayed at the bottom of the page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.footnote.link">
+ <info>
+  <link type="guide" xref="db2html-footnote" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output a link to a footnote.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>db2html.footnote.link</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>footnote</sys> element to process.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This templates outputs an inline link to the footnote displayed at the bottom
+ of the page.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.footnote.note.page b/doc/yelp-xsl/C/db2html.footnote.note.page
index 5958ecf1..4acb92ab 100644
--- a/doc/yelp-xsl/C/db2html.footnote.note.page
+++ b/doc/yelp-xsl/C/db2html.footnote.note.page
@@ -1,12 +1,26 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.footnote.note" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-footnote" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-10" status="final"/><desc>Output a 
footnote.</desc></info><title>db2html.footnote.note</title><p>Output a footnote.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>footnote</code> element to process.</p>
-    </item>
-  </terms></synopsis>
-  <p>This templates outputs the actual text of a footnote as a block-level element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.footnote.note">
+ <info>
+  <link type="guide" xref="db2html-footnote" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output a footnote.</desc>
+  <revision version="3.4" date="2011-11-10" status="final"/>
+ </info>
+ <title>db2html.footnote.note</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>footnote</sys> element to process.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This templates outputs the actual text of a footnote as a block-level element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.funcsynopsis.style.page b/doc/yelp-xsl/C/db2html.funcsynopsis.style.page
index c4d82027..bac21aa0 100644
--- a/doc/yelp-xsl/C/db2html.funcsynopsis.style.page
+++ b/doc/yelp-xsl/C/db2html.funcsynopsis.style.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.funcsynopsis.style" type="topic" 
style="xslt-param"><info><link type="guide" xref="db2html-funcsynopsis" group="parameters"/><link 
type="guide" xref="parameters" group="db2html"/><revision version="0.0" date="1970-01-01" 
status="stub"/><desc>How to render <code>funcsynopsis</code> 
elements</desc></info><title>db2html.funcsynopsis.style</title><p>How to render <code>funcsynopsis</code> 
elements</p>
-  
-  
-  <p>This parameter controls the indentation style used to render <code>funcsynopsis</code> elements.  
Supported values are <code>'KR'</code> and <code>'ANSI'</code>.  This value can also be set with the 
<code>db2html.funcsynopsis.style</code> processing instruction at the top of the XML document.  The same 
processing instruction or inside a <code>funcsynopsis</code> element will override this setting for that 
synopsis.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" 
id="db2html.funcsynopsis.style">
+ <info>
+  <link type="guide" xref="db2html-funcsynopsis" group="params"/>
+  <link type="guide" xref="params" group="db2html"/>
+  <desc>How to render <sys>funcsynopsis</sys> elements</desc>
+ </info>
+ <title>db2html.funcsynopsis.style</title>
+ <p>This parameter controls the indentation style used to render <sys>funcsynopsis</sys>
+ elements.  Supported values are <sys>'KR'</sys> and <sys>'ANSI'</sys>.  This value can also
+ be set with the <sys>db2html.funcsynopsis.style</sys> processing instruction at the
+ top of the XML document.  The same processing instruction or inside a
+ <sys>funcsynopsis</sys> element will override this setting for that synopsis.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.hgroup.page b/doc/yelp-xsl/C/db2html.hgroup.page
index 6b946679..c9743911 100644
--- a/doc/yelp-xsl/C/db2html.hgroup.page
+++ b/doc/yelp-xsl/C/db2html.hgroup.page
@@ -1,20 +1,45 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.hgroup" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-division" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Output the 
title and subtitle for an element.</desc></info><title>db2html.hgroup</title><p>Output the title and subtitle 
for an element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element containing the title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>FIXME.</p>
-    </item>
-    <item>
-      <title><code>depth_in_chunk</code></title>
-      <p>The depth of <code style="xslt-param">node</code> in the containing chunk.</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about the different kinds of title blocks</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-in-chunk"/></p></item><item><p><link xref="db2html.anchor"/></p></item><item><p><link 
xref="db.title"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.hgroup">
+ <info>
+  <link type="guide" xref="db2html-division" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output the title and subtitle for an element.</desc>
+ </info>
+ <title>db2html.hgroup</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element containing the title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>FIXME.</p>
+   </item>
+   <item>
+    <title><code>$depth_in_chunk</code></title>
+    <p>The depth of <code>$node</code> in the containing chunk.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about the different kinds of title blocks</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="db.chunk.max_depth"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.depth-in-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.title"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.imagedata.page b/doc/yelp-xsl/C/db2html.imagedata.page
index cce69bf6..42e09ce6 100644
--- a/doc/yelp-xsl/C/db2html.imagedata.page
+++ b/doc/yelp-xsl/C/db2html.imagedata.page
@@ -1,13 +1,33 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.imagedata" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-media" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-11" status="final"/><desc>Output an 
HTML <code>img</code> element for a <code>imagedata</code> 
element.</desc></info><title>db2html.imagedata</title><p>Output an HTML <code>img</code> element for a 
<code>imagedata</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>imagedata</code> or other graphic element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an <code>img</code> element in the HTML output.  This template is called not only 
for <code>imagedata</code> elements, but also for <code>graphic</code> and <code>inlinegraphic</code> 
elements.  Note that <code>graphic</code> and <code>inlinegraphic</code> are deprecated and should not be 
used in any newly-written DocBook files.  Use <code>mediaobject</code> instead.</p>
-  <p>This template looks for a <code>textobject</code> with a <code>phrase</code> child in an ancestor 
<code>mediaobject</code> or <code>inlinemediaobject</code> element. It uses the first available, taking 
conditional processing into consideration.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.imagedata">
+ <info>
+  <link type="guide" xref="db2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>img</sys> element for a <sys>imagedata</sys> element.</desc>
+  <revision version="3.10" date="2013-08-11" status="final"/>
+ </info>
+ <title>db2html.imagedata</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>imagedata</sys> or other graphic element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an <sys>img</sys> element in the HTML output.  This template
+ is called not only for <sys>imagedata</sys> elements, but also for <sys>graphic</sys> and
+ <sys>inlinegraphic</sys> elements.  Note that <sys>graphic</sys> and <sys>inlinegraphic</sys> are
+ deprecated and should not be used in any newly-written DocBook files.  Use
+ <sys>mediaobject</sys> instead.</p>
+ <p>This template looks for a <sys>textobject</sys> with a <sys>phrase</sys> child in an ancestor
+ <sys>mediaobject</sys> or <sys>inlinemediaobject</sys> element. It uses the first available,
+ taking conditional processing into consideration.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.inline.children.page b/doc/yelp-xsl/C/db2html.inline.children.page
index 4373a886..38aa0a98 100644
--- a/doc/yelp-xsl/C/db2html.inline.children.page
+++ b/doc/yelp-xsl/C/db2html.inline.children.page
@@ -1,16 +1,29 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.inline.children" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-inline" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Renders the 
children of an inline element.</desc></info><title>db2html.inline.children</title><p>Renders the children of 
an inline element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to render</p>
-    </item>
-    <item>
-      <title><code>children</code></title>
-      <p>The child elements to process</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Document this template</p></comment>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="db2html.inline.content.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.inline.children">
+ <info>
+  <link type="guide" xref="db2html-inline" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Render the children of an inline element.</desc>
+ </info>
+ <title>db2html.inline.children</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to render</p>
+   </item>
+   <item>
+    <title><code>$children</code></title>
+    <p>The child elements to process</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Document this template</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.inline.content.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.inline.content.mode.page b/doc/yelp-xsl/C/db2html.inline.content.mode.page
index 3b196d1a..446405eb 100644
--- a/doc/yelp-xsl/C/db2html.inline.content.mode.page
+++ b/doc/yelp-xsl/C/db2html.inline.content.mode.page
@@ -1,6 +1,10 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.inline.content.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-inline" group="modes"/><link type="guide" 
xref="modes" group="db2html"/><revision version="0.0" date="1970-01-01" 
status="stub"/><desc>FIXME</desc></info><title>db2html.inline.content.mode</title><p>FIXME</p>
-  
-  
-  <p>FIXME</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="db2html.inline.content.mode">
+ <info>
+  <link type="guide" xref="db2html-inline" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>FIXME</desc>
+ </info>
+ <title>db2html.inline.content.mode</title>
+ <p>FIXME</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.inline.page b/doc/yelp-xsl/C/db2html.inline.page
index b1230cf5..dd99d065 100644
--- a/doc/yelp-xsl/C/db2html.inline.page
+++ b/doc/yelp-xsl/C/db2html.inline.page
@@ -1,29 +1,57 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.inline" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-inline" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Renders an 
inline element as an HTML <code>span</code> element</desc></info><title>db2html.inline</title><p>Renders an 
inline element as an HTML <code>span</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to render</p>
-    </item>
-    <item>
-      <title><code>children</code></title>
-      <p>The child elements to process</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the <code>class</code> attribute on the <code>span</code> tag</p>
-    </item>
-    <item>
-      <title><code>lang</code></title>
-      <p>The locale of the text in <code style="xslt-param">node</code></p>
-    </item>
-    <item>
-      <title><code>name-class</code></title>
-      <p>The class to use for the name of the element</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Document this template</p></comment>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="db2html.xlink"/></p></item><item><p><link xref="db2html.inline.children"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.inline">
+ <info>
+  <link type="guide" xref="db2html-inline" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Render an inline element as an HTML <sys>span</sys> element</desc>
+ </info>
+ <title>db2html.inline</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to render</p>
+   </item>
+   <item>
+    <title><code>$children</code></title>
+    <p>The child elements to process</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the <sys>class</sys> attribute on the <sys>span</sys> tag</p>
+   </item>
+   <item>
+    <title><code>$lang</code></title>
+    <p>The locale of the text in <code>$node</code></p>
+   </item>
+   <item>
+    <title><code>$name-class</code></title>
+    <p>The class to use for the name of the element</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Document this template</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.inline.children"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.xlink"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.link.page b/doc/yelp-xsl/C/db2html.link.page
index 98337872..4ed32946 100644
--- a/doc/yelp-xsl/C/db2html.link.page
+++ b/doc/yelp-xsl/C/db2html.link.page
@@ -1,16 +1,41 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.link" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-xref" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates a 
hyperlink from a <code>link</code> element</desc></info><title>db2html.link</title><p>Generates a hyperlink 
from a <code>link</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The id of the element being linked to</p>
-    </item>
-    <item>
-      <title><code>target</code></title>
-      <p>The element being linked to</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Describe this template</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.tooltip"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.link">
+ <info>
+  <link type="guide" xref="db2html-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates a hyperlink from a <sys>link</sys> element</desc>
+ </info>
+ <title>db2html.link</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The id of the element being linked to</p>
+   </item>
+   <item>
+    <title><code>$target</code></title>
+    <p>The element being linked to</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Describe this template</p>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.links.linktrail.page b/doc/yelp-xsl/C/db2html.links.linktrail.page
index 59d32c7a..1293cdd8 100644
--- a/doc/yelp-xsl/C/db2html.links.linktrail.page
+++ b/doc/yelp-xsl/C/db2html.links.linktrail.page
@@ -1,12 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.links.linktrail" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-links" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.20" date="2015-09-15" status="final"/><desc>Generate 
links to pages from ancestor elements.</desc></info><title>db2html.links.linktrail</title><p>Generate links 
to pages from ancestor elements.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to generate links for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a trail of links for the ancestor pages of <code style="xslt-param">node</code>. 
If <code style="xslt-param">node</code> has no ancestors, then it calls <code style="xslt-template" 
xref="html.linktrails.empty">html.linktrails.empty</code> instead. This template calls <code 
style="xslt-template" xref="html.linktrails.prefix">html.linktrails.prefix</code> before the first link, 
passing <code style="xslt-param">node</code> as that template's <code>node</code> parameter.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="html.linktrails.prefix"/></p></item><item><p><link 
xref="db.xref.target"/></p></item><item><p><link xref="db.xref.tooltip"/></p></item><item><p><link 
xref="db.titleabbrev"/></p></item><item><p><link xref="html.linktrails.empty"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.links.linktrail">
+ <info>
+  <link type="guide" xref="db2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generate links to pages from ancestor elements.</desc>
+  <revision version="3.20" date="2015-09-15" status="final"/>
+ </info>
+ <title>db2html.links.linktrail</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to generate links for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a trail of links for the ancestor pages of <code>$node</code>. If
+ <code>$node</code> has no ancestors, then it calls <code 
xref="html.linktrails.empty">html.linktrails.empty</code> instead. This
+ template calls <code xref="html.linktrails.prefix">html.linktrails.prefix</code> before the first link, 
passing <code>$node</code>
+ as that template's <sys>node</sys> parameter.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.titleabbrev"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.empty"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.prefix"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.links.next.page b/doc/yelp-xsl/C/db2html.links.next.page
index 82196baa..d3e5d720 100644
--- a/doc/yelp-xsl/C/db2html.links.next.page
+++ b/doc/yelp-xsl/C/db2html.links.next.page
@@ -1,16 +1,51 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.links.next" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-links" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-08" status="final"/><desc>Output 
links to the previous and next pages.</desc></info><title>db2html.links.next</title><p>Output links to the 
previous and next pages.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>depth_of_chunk</code></title>
-      <p>The depth of the containing chunk in the document.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links to the previous and next pages, if they exist. It calls <code 
style="xslt-template" xref="db.chunk.chunk-id.axis">db.chunk.chunk-id.axis</code> to find the previous and 
next pages. The block containing the links is end-floated by default. The links use the text "Previous" and 
"Next", although the actual page titles are used for tooltips.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.chunk.depth-of-chunk"/></p></item><item><p><link 
xref="db.chunk.chunk-id.axis"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.tooltip"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.links.next">
+ <info>
+  <link type="guide" xref="db2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output links to the previous and next pages.</desc>
+  <revision version="3.4" date="2011-11-08" status="final"/>
+ </info>
+ <title>db2html.links.next</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$depth_of_chunk</code></title>
+    <p>The depth of the containing chunk in the document.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links to the previous and next pages, if they exist. It
+ calls <code xref="db.chunk.chunk-id.axis">db.chunk.chunk-id.axis</code> to find the previous and next 
pages. The block
+ containing the links is end-floated by default. The links use the text "Previous"
+ and "Next", although the actual page titles are used for tooltips.</p>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.chunk.chunk-id.axis"/></p>
+  </item>
+  <item>
+   <p><link xref="db.chunk.depth-of-chunk"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.links.section.page b/doc/yelp-xsl/C/db2html.links.section.page
index 1bc33a1e..a6647e85 100644
--- a/doc/yelp-xsl/C/db2html.links.section.page
+++ b/doc/yelp-xsl/C/db2html.links.section.page
@@ -1,16 +1,31 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.links.section" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-links" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.4" date="2011-11-08" status="final"/><desc>Output 
links to subsections.</desc></info><title>db2html.links.section</title><p>Output links to subsections.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>divisions</code></title>
-      <p>The division-level child elements of <code style="xslt-param">node</code> to link to.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links to the child division-level elements of <code 
style="xslt-param">node</code>, whether or not they are chunked.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.xref"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.links.section">
+ <info>
+  <link type="guide" xref="db2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output links to subsections.</desc>
+  <revision version="3.4" date="2011-11-08" status="final"/>
+ </info>
+ <title>db2html.links.section</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$divisions</code></title>
+    <p>The division-level child elements of <code>$node</code> to link to.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links to the child division-level elements of <code>$node</code>,
+ whether or not they are chunked.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.xref"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.math.div.page b/doc/yelp-xsl/C/db2html.math.div.page
index 98f0aa1a..4e9631d6 100644
--- a/doc/yelp-xsl/C/db2html.math.div.page
+++ b/doc/yelp-xsl/C/db2html.math.div.page
@@ -1,12 +1,37 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.math.div" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-math" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.8" date="2012-11-13" status="final"/><desc>Output an 
HTML <code>div</code> element and block-level MathML.</desc></info><title>db2html.math.div</title><p>Output 
an HTML <code>div</code> element and block-level MathML.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>mml:math</code> element to render.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>div</code> element for a MathML <code>mml:math</code> element, then 
outputs MathML content. It sets the <code>display</code> attribute on the output to <code>"block"</code> and 
applies <code style="xslt-mode" xref="db2html.math.mode">db2html.math.mode</code> to the child content.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="html.lang.attrs"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link xref="db2html.math.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.math.div">
+ <info>
+  <link type="guide" xref="db2html-math" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>div</sys> element and block-level MathML.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>db2html.math.div</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>mml:math</sys> element to render.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>div</sys> element for a MathML <sys>mml:math</sys> element,
+ then outputs MathML content. It sets the <sys>display</sys> attribute on the output to
+ <sys>"block"</sys> and applies <code xref="db2html.math.mode">db2html.math.mode</code> to the child 
content.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.math.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.math.mode.page b/doc/yelp-xsl/C/db2html.math.mode.page
index 58d1384c..415141c5 100644
--- a/doc/yelp-xsl/C/db2html.math.mode.page
+++ b/doc/yelp-xsl/C/db2html.math.mode.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.math.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="db2html-math" group="modes"/><link type="guide" xref="modes" 
group="db2html"/><revision version="3.8" date="2012-11-13" status="final"/><desc>Output MathML and handle 
Mallard extension.</desc></info><title>db2html.math.mode</title><p>Output MathML and handle Mallard 
extension.</p>
-  
-  
-  <p>This mode is used for processing MathML embedded into DocBook documents. For most types of MathML 
content, it simply copies the input directly, except it outputs the MathML in a way that allows the namespace 
to stripped for non-XML output. It converts <code>xlink:href</code> attributes from MathML 2 to 
<code>href</code> attributes for MathML 3.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="db2html.math.mode">
+ <info>
+  <link type="guide" xref="db2html-math" group="modes"/>
+  <link type="guide" xref="modes" group="db2html"/>
+  <desc>Output MathML and handle Mallard extension.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>db2html.math.mode</title>
+ <p>This mode is used for processing MathML embedded into DocBook documents. For
+ most types of MathML content, it simply copies the input directly, except it
+ outputs the MathML in a way that allows the namespace to stripped for non-XML
+ output. It converts <sys>xlink:href</sys> attributes from MathML 2 to <sys>href</sys> attributes
+ for MathML 3.</p>
 </page>
diff --git a/doc/yelp-xsl/C/db2html.math.span.page b/doc/yelp-xsl/C/db2html.math.span.page
index f4514947..b961de4b 100644
--- a/doc/yelp-xsl/C/db2html.math.span.page
+++ b/doc/yelp-xsl/C/db2html.math.span.page
@@ -1,12 +1,34 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.math.span" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-math" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.8" date="2012-11-13" status="final"/><desc>Output an 
HTML <code>span</code> element and inline MathML.</desc></info><title>db2html.math.span</title><p>Output an 
HTML <code>span</code> element and inline MathML.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>mml:math</code> element to render.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>span</code> element for a MathML <code>mml:math</code> element, 
then outputs MathML content. It sets the <code>display</code> attribute on the output to 
<code>"inline"</code> and applies <code style="xslt-mode" xref="db2html.math.mode">db2html.math.mode</code> 
to the child content.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.lang.attrs"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="db2html.math.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.math.span">
+ <info>
+  <link type="guide" xref="db2html-math" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>span</sys> element and inline MathML.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>db2html.math.span</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>mml:math</sys> element to render.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>span</sys> element for a MathML <sys>mml:math</sys> element,
+ then outputs MathML content. It sets the <sys>display</sys> attribute on the output to
+ <sys>"inline"</sys> and applies <code xref="db2html.math.mode">db2html.math.mode</code> to the child 
content.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="db2html.math.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.mediaobject.fallback.page 
b/doc/yelp-xsl/C/db2html.mediaobject.fallback.page
index 6a435c33..633c7d9c 100644
--- a/doc/yelp-xsl/C/db2html.mediaobject.fallback.page
+++ b/doc/yelp-xsl/C/db2html.mediaobject.fallback.page
@@ -1,12 +1,30 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.mediaobject.fallback" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-media" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-11" status="final"/><desc>Outputs 
fallback HTML for a <code>mediaobject</code> 
element.</desc></info><title>db2html.mediaobject.fallback</title><p>Outputs fallback HTML for a 
<code>mediaobject</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>mediaobject</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs HTML for the first suitable <code>textobject</code> child element of <code 
style="xslt-param">node</code>. If <code style="xslt-param">node</code> is an <code>inlinemediaobject</code>, 
it looks for a <code>textobject</code> that contains a <code>phrase</code> element. Otherwise, it looks for a 
<code>textobject</code> with normal block content. It also handles conditional processing on the 
<code>textobject</code> elements.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.mediaobject.fallback">
+ <info>
+  <link type="guide" xref="db2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Outputs fallback HTML for a <sys>mediaobject</sys> element.</desc>
+  <revision version="3.10" date="2013-08-11" status="final"/>
+ </info>
+ <title>db2html.mediaobject.fallback</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>mediaobject</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs HTML for the first suitable <sys>textobject</sys> child element
+ of <code>$node</code>. If <code>$node</code> is an <sys>inlinemediaobject</sys>, it looks for a 
<sys>textobject</sys>
+ that contains a <sys>phrase</sys> element. Otherwise, it looks for a <sys>textobject</sys> with
+ normal block content. It also handles conditional processing on the <sys>textobject</sys>
+ elements.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.mediaobject.page b/doc/yelp-xsl/C/db2html.mediaobject.page
index 841d4ca4..6f64fead 100644
--- a/doc/yelp-xsl/C/db2html.mediaobject.page
+++ b/doc/yelp-xsl/C/db2html.mediaobject.page
@@ -1,13 +1,38 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.mediaobject" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-media" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-11" status="final"/><desc>Outputs 
HTML for a <code>mediaobject</code> element.</desc></info><title>db2html.mediaobject</title><p>Outputs HTML 
for a <code>mediaobject</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>mediaobject</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template processes a <code>mediaobject</code> element and outputs the appropriate HTML. DocBook 
allows multiple objects to be listed in a <code>mediaobject</code> element. Processing tools are expected to 
choose the earliest suitable object. This template will select the first audio, image, or video object it can 
handle, filtering out images in non-web formats, and taking conditional processing into consideration. If no 
suitable non-text objects are found, this template calls <code style="xslt-template" 
xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code>.</p>
-  <p>This template also detects MathML embedded in a DocBook 5 <code>imagedata</code> element with the 
<code>format</code> attribute <code>"mathml"</code>, and passes it to the templates in <file 
xref="db2html-math">db2html-math</file>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link 
xref="db2html.mediaobject.fallback"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.mediaobject">
+ <info>
+  <link type="guide" xref="db2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Outputs HTML for a <sys>mediaobject</sys> element.</desc>
+  <revision version="3.10" date="2013-08-11" status="final"/>
+ </info>
+ <title>db2html.mediaobject</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>mediaobject</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template processes a <sys>mediaobject</sys> element and outputs the appropriate
+ HTML. DocBook allows multiple objects to be listed in a <sys>mediaobject</sys> element.
+ Processing tools are expected to choose the earliest suitable object. This
+ template will select the first audio, image, or video object it can handle,
+ filtering out images in non-web formats, and taking conditional processing
+ into consideration. If no suitable non-text objects are found, this template
+ calls <code xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code>.</p>
+ <p>This template also detects MathML embedded in a DocBook 5 <sys>imagedata</sys> element
+ with the <sys>format</sys> attribute <sys>"mathml"</sys>, and passes it to the templates in
+ <code xref="db2html-math">db2html-math</code>.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.mediaobject.fallback"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.page b/doc/yelp-xsl/C/db2html.page
index 082341b7..bf39fa48 100644
--- a/doc/yelp-xsl/C/db2html.page
+++ b/doc/yelp-xsl/C/db2html.page
@@ -1,2 +1,67 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="db2html"/><revision version="3.8" date="2012-11-05" 
status="final"/><link type="xslt-defines-param" xref="html.xhtml"/><link type="xslt-defines-param" 
xref="db.profile.outputformat"/></info><title>DocBook to HTML</title><p>Transform DocBook to HTML.</p><p>This 
top-level stylesheet includes all the necessary stylesheets to transform DocBook documents into HTML. It 
imports <file xref="db2xhtml">db2xhtml</file>, overrides parameters, and sets a namespace alias to output 
non-XML HTML. This stylesheet sets <code style="xslt-param" xref="html.xhtml">html.xhtml</code> to 
<code>false</code>.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</t
 itle></l
 inks><links type="topic" groups="templates" style="linklist"><title>Templates</title></links><links 
type="topic" groups="keys" style="linklist"><title>Keys</title></links></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2html">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2html"/>
+  <link type="topic" xref="l10n" group="imports"/>
+  <link type="topic" xref="color" group="imports"/>
+  <link type="topic" xref="icons" group="imports"/>
+  <link type="topic" xref="html" group="imports"/>
+  <link type="topic" xref="utils" group="imports"/>
+  <link type="topic" xref="db-chunk" group="imports"/>
+  <link type="topic" xref="db-common" group="imports"/>
+  <link type="topic" xref="db-profile" group="imports"/>
+  <link type="topic" xref="db-title" group="imports"/>
+  <link type="topic" xref="db-xref" group="imports"/>
+  <link type="topic" xref="db2html-bibliography" group="includes"/>
+  <link type="topic" xref="db2html-block" group="includes"/>
+  <link type="topic" xref="db2html-callout" group="includes"/>
+  <link type="topic" xref="db2html-classsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-cmdsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-css" group="includes"/>
+  <link type="topic" xref="db2html-division" group="includes"/>
+  <link type="topic" xref="db2html-ebnf" group="includes"/>
+  <link type="topic" xref="db2html-funcsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-index" group="includes"/>
+  <link type="topic" xref="db2html-inline" group="includes"/>
+  <link type="topic" xref="db2html-links" group="includes"/>
+  <link type="topic" xref="db2html-math" group="includes"/>
+  <link type="topic" xref="db2html-media" group="includes"/>
+  <link type="topic" xref="db2html-list" group="includes"/>
+  <link type="topic" xref="db2html-refentry" group="includes"/>
+  <link type="topic" xref="db2html-suppressed" group="includes"/>
+  <link type="topic" xref="db2html-table" group="includes"/>
+  <link type="topic" xref="db2html-xref" group="includes"/>
+  <link type="topic" xref="db2html-footnote" group="includes"/>
+  <desc>Transform DocBook to HTML.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>DocBook to HTML</title>
+ <p>This top-level stylesheet includes all the necessary stylesheets to transform
+ DocBook documents into HTML. It imports <code xref="db2xhtml">db2xhtml</code>, overrides parameters, and
+ sets a namespace alias to output non-XML HTML. This stylesheet sets
+ <code xref="html.xhtml">html.xhtml</code> to <sys>false</sys>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.para.page b/doc/yelp-xsl/C/db2html.para.page
index 9e09ec1b..bf4a62c1 100644
--- a/doc/yelp-xsl/C/db2html.para.page
+++ b/doc/yelp-xsl/C/db2html.para.page
@@ -1,17 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.para" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-block" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.10" date="2013-08-09" status="final"/><desc>Output an 
HTML <code>p</code> element for a block-level element.</desc></info><title>db2html.para</title><p>Output an 
HTML <code>p</code> element for a block-level element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The block-level element to render.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the HTML <code>class</code> attribute.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>p</code> element for the given DocBook element. It passes the <code 
style="xslt-param">class</code> parameter to <code style="xslt-template" 
xref="html.class.attr">html.class.attr</code>. If the <code style="xslt-param">class</code> parameter is not 
provided, it uses the local name of <code style="xslt-param">node</code>.</p>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.para">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>p</sys> element for a block-level element.</desc>
+  <revision version="3.10" date="2013-08-09" status="final"/>
+ </info>
+ <title>db2html.para</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The block-level element to render.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the HTML <sys>class</sys> attribute.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>p</sys> element for the given DocBook element.
+ It passes the <code>$class</code> parameter to <code xref="html.class.attr">html.class.attr</code>.
+ If the <code>$class</code> parameter is not provided, it uses the local name of <code>$node</code>.</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.pre.page b/doc/yelp-xsl/C/db2html.pre.page
index f25f0334..b47c89fa 100644
--- a/doc/yelp-xsl/C/db2html.pre.page
+++ b/doc/yelp-xsl/C/db2html.pre.page
@@ -1,24 +1,69 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.pre" type="topic" style="xslt-template"><info><link 
type="guide" xref="db2html-block" group="templates"/><link type="guide" xref="templates" 
group="db2html"/><revision version="3.12" date="2013-11-02" status="final"/><desc>Output an HTML 
<code>pre</code> element for a block-level element.</desc></info><title>db2html.pre</title><p>Output an HTML 
<code>pre</code> element for a block-level element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The block-level element to render.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the HTML <code>class</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>children</code></title>
-      <p>The child elements to process.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML <code>pre</code> element for the given DocBook element. It passes the 
<code style="xslt-param">class</code> parameter to <code style="xslt-template" 
xref="html.class.attr">html.class.attr</code>. If the <code style="xslt-param">class</code> parameter is not 
provided, it uses the local name of <code style="xslt-param">node</code>.</p>
-  <p>If <code style="xslt-param">node</code> has the <code>linenumbering</code> attribute set to 
<code>"numbered"</code>, then this template will create line numbers for each line, using the <code 
style="xslt-template" xref="utils.linenumbering">utils.linenumbering</code> template.</p>
-  <p>By default, this template applies templates to all child nodes. Pass child nodes in the <code 
style="xslt-param">children</code> parameter to override this behavior.</p>
-  <p>If <code style="xslt-param" xref="html.syntax.highlight">html.syntax.highlight</code> is 
<code>true</code>, this template automatically outputs syntax highlighting support based on the 
<code>language</code> attribute of <code style="xslt-param">node</code>, using <code style="xslt-template" 
xref="html.syntax.class">html.syntax.class</code> to determine the correct highlighter.</p>
-  <p>This template handles conditional processing.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db.profile.test"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="db.linenumbering.start"/></p></item><item><p><link 
xref="utils.linenumbering"/></p></item><item><p><link xref="html.syntax.class"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="html.syntax.highlight"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.pre">
+ <info>
+  <link type="guide" xref="db2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>pre</sys> element for a block-level element.</desc>
+  <revision version="3.12" date="2013-11-02" status="final"/>
+ </info>
+ <title>db2html.pre</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The block-level element to render.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the HTML <sys>class</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$children</code></title>
+    <p>The child elements to process.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML <sys>pre</sys> element for the given DocBook element.
+ It passes the <code>$class</code> parameter to <code xref="html.class.attr">html.class.attr</code>.
+ If the <code>$class</code> parameter is not provided, it uses the local name of <code>$node</code>.</p>
+ <p>If <code>$node</code> has the <sys>linenumbering</sys> attribute set to <sys>"numbered"</sys>, then this
+ template will create line numbers for each line, using the <code 
xref="utils.linenumbering">utils.linenumbering</code>
+ template.</p>
+ <p>By default, this template applies templates to all child nodes. Pass child
+ nodes in the <code>$children</code> parameter to override this behavior.</p>
+ <p>If <code xref="html.syntax.highlight">html.syntax.highlight</code> is <sys>true</sys>, this template 
automatically outputs
+ syntax highlighting support based on the <sys>language</sys> attribute of <code>$node</code>,
+ using <code xref="html.syntax.class">html.syntax.class</code> to determine the correct highlighter.</p>
+ <p>This template handles conditional processing.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.linenumbering.start"/></p>
+  </item>
+  <item>
+   <p><link xref="db.profile.test"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.anchor"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.class"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.linenumbering"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.row.page b/doc/yelp-xsl/C/db2html.row.page
index 11630ff2..d01ceb09 100644
--- a/doc/yelp-xsl/C/db2html.row.page
+++ b/doc/yelp-xsl/C/db2html.row.page
@@ -1,32 +1,54 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.row" type="topic" style="xslt-template"><info><link 
type="guide" xref="db2html-table" group="templates"/><link type="guide" xref="templates" 
group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Creates a <code>tr</code> 
element for a <code>row</code> element</desc></info><title>db2html.row</title><p>Creates a <code>tr</code> 
element for a <code>row</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>row</code></title>
-      <p>The <code>row</code> element to process</p>
-    </item>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>colsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>rowsep</code></title>
-      <p>Whether column separators are currently enabled</p>
-    </item>
-    <item>
-      <title><code>spanstr</code></title>
-      <p>The string representation of the row spans</p>
-    </item>
-  </terms></synopsis>
-  <p>FIXME</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db2html.entry"/></p></item><item><p><link 
xref="db2html.row"/></p></item><item><p><link xref="db2html.spanstr"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.row">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Creates a <sys>tr</sys> element for a <sys>row</sys> element</desc>
+ </info>
+ <title>db2html.row</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$row</code></title>
+    <p>The <sys>row</sys> element to process</p>
+   </item>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$colsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$rowsep</code></title>
+    <p>Whether column separators are currently enabled</p>
+   </item>
+   <item>
+    <title><code>$spanstr</code></title>
+    <p>The string representation of the row spans</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>FIXME</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.entry"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.row"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.spanstr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.spanstr.page b/doc/yelp-xsl/C/db2html.spanstr.page
index e8529d5d..971159a8 100644
--- a/doc/yelp-xsl/C/db2html.spanstr.page
+++ b/doc/yelp-xsl/C/db2html.spanstr.page
@@ -1,20 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.spanstr" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates a 
string specifying the row spans in effect</desc></info><title>db2html.spanstr</title><p>Generates a string 
specifying the row spans in effect</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanstr</code></title>
-      <p>The <code style="xslt-param">spanstr</code> parameter used by the previous row</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>This template needs to be explained in detail, but I forgot how it works.</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.entry.colnum"/></p></item><item><p><link 
xref="db2html.entry.colspan"/></p></item><item><p><link xref="db2html.spanstr.pop"/></p></item><item><p><link 
xref="db2html.spanstr"/></p></item><item><p><link xref="utils.repeat_string"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.spanstr">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates a string specifying the row spans in effect</desc>
+ </info>
+ <title>db2html.spanstr</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanstr</code></title>
+    <p>The <code>$spanstr</code> parameter used by the previous row</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: This template needs to be explained in detail, but I forgot how it works.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.entry.colnum"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.entry.colspan"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.spanstr"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.spanstr.decrement"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.spanstr.pop"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.spanstr.pop.page b/doc/yelp-xsl/C/db2html.spanstr.pop.page
index 152c5788..4b1b76c4 100644
--- a/doc/yelp-xsl/C/db2html.spanstr.pop.page
+++ b/doc/yelp-xsl/C/db2html.spanstr.pop.page
@@ -1,24 +1,37 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.spanstr.pop" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-table" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Calculates 
the remaining spans after an <code>entry</code> 
element</desc></info><title>db2html.spanstr.pop</title><p>Calculates the remaining spans after an 
<code>entry</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>colspecs</code></title>
-      <p>The <code>colspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>spanspecs</code></title>
-      <p>The <code>spanspec</code> elements currently in scope</p>
-    </item>
-    <item>
-      <title><code>colspan</code></title>
-      <p>The number of columns to pop</p>
-    </item>
-    <item>
-      <title><code>spanstr</code></title>
-      <p>The string representation of the column spans</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>This template needs to be explained in detail, but I forgot how it works.</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.spanstr.pop"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="db2html.spanstr.pop">
+ <info>
+  <link type="guide" xref="db2html-table" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Calculates the remaining spans after an <sys>entry</sys> element</desc>
+ </info>
+ <title>db2html.spanstr.pop</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$colspecs</code></title>
+    <p>The <sys>colspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$spanspecs</code></title>
+    <p>The <sys>spanspec</sys> elements currently in scope</p>
+   </item>
+   <item>
+    <title><code>$colspan</code></title>
+    <p>The number of columns to pop</p>
+   </item>
+   <item>
+    <title><code>$spanstr</code></title>
+    <p>The string representation of the column spans</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: This template needs to be explained in detail, but I forgot how it works.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.spanstr.pop"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.ulink.page b/doc/yelp-xsl/C/db2html.ulink.page
index 3b236ceb..6e6f258f 100644
--- a/doc/yelp-xsl/C/db2html.ulink.page
+++ b/doc/yelp-xsl/C/db2html.ulink.page
@@ -1,16 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.ulink" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-xref" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates a 
hyperlink from a <code>ulink</code> element</desc></info><title>db2html.ulink</title><p>Generates a hyperlink 
from a <code>ulink</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>url</code></title>
-      <p>The URL to link to</p>
-    </item>
-    <item>
-      <title><code>content</code></title>
-      <p>Optional content to use for the text of the link</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Describe this template</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db.ulink.tooltip"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.ulink">
+ <info>
+  <link type="guide" xref="db2html-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates a hyperlink from a <sys>ulink</sys> element</desc>
+ </info>
+ <title>db2html.ulink</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$url</code></title>
+    <p>The URL to link to</p>
+   </item>
+   <item>
+    <title><code>$content</code></title>
+    <p>Optional content to use for the text of the link</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Describe this template</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.ulink.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.videodata.page b/doc/yelp-xsl/C/db2html.videodata.page
index c8a1e28e..0b4118fb 100644
--- a/doc/yelp-xsl/C/db2html.videodata.page
+++ b/doc/yelp-xsl/C/db2html.videodata.page
@@ -1,12 +1,33 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.videodata" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-media" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="3.8" date="2012-11-12" status="final"/><desc>Output an 
HTML <code>video</code> element for a <code>videodata</code> 
element.</desc></info><title>db2html.videodata</title><p>Output an HTML <code>video</code> element for a 
<code>videodata</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>videodata</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates a <code>video</code> element in the HTML output. If the containing 
<code>mediaobject</code> or <code>inlinemediaobject</code> element has an <code>imageobject</code> with the 
<code>role</code> attribute set to <code>"poster"</code>, that image will be used for the <code>poster</code> 
attribute on the HTML <code>video</code> element. This template calls <code style="xslt-template" 
xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code> for the contents of the 
<code>video</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.mediaobject.fallback"/></p></item><item><p><link 
xref="html.media.controls"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.videodata">
+ <info>
+  <link type="guide" xref="db2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Output an HTML <sys>video</sys> element for a <sys>videodata</sys> element.</desc>
+  <revision version="3.8" date="2012-11-12" status="final"/>
+ </info>
+ <title>db2html.videodata</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>videodata</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates a <sys>video</sys> element in the HTML output. If the containing
+ <sys>mediaobject</sys> or <sys>inlinemediaobject</sys> element has an <sys>imageobject</sys> with the
+ <sys>role</sys> attribute set to <sys>"poster"</sys>, that image will be used for the <sys>poster</sys>
+ attribute on the HTML <sys>video</sys> element. This template calls
+ <code xref="db2html.mediaobject.fallback">db2html.mediaobject.fallback</code> for the contents of the 
<sys>video</sys> element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.mediaobject.fallback"/></p>
+  </item>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.xlink.page b/doc/yelp-xsl/C/db2html.xlink.page
index 5013e7de..a4212c6c 100644
--- a/doc/yelp-xsl/C/db2html.xlink.page
+++ b/doc/yelp-xsl/C/db2html.xlink.page
@@ -1,24 +1,40 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.xlink" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-xref" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates a 
hyperlink from a DocBook 5 <code>link</code> element</desc></info><title>db2html.xlink</title><p>Generates a 
hyperlink from a DocBook 5 <code>link</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node in question</p>
-    </item>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The ID of the element to link to</p>
-    </item>
-    <item>
-      <title><code>url</code></title>
-      <p>The URL to link to</p>
-    </item>
-    <item>
-      <title><code>content</code></title>
-      <p>Optional content to use for the text of the link</p>
-    </item>
-  </terms></synopsis>
-  <p>Note that this template is also called for inline elements that use DocBook 5's ubiquitous linking.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="db2html.ulink"/></p></item><item><p><link xref="db2html.link"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.xlink">
+ <info>
+  <link type="guide" xref="db2html-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates a hyperlink from a DocBook 5 <sys>link</sys> element</desc>
+ </info>
+ <title>db2html.xlink</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node in question</p>
+   </item>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The ID of the element to link to</p>
+   </item>
+   <item>
+    <title><code>$url</code></title>
+    <p>The URL to link to</p>
+   </item>
+   <item>
+    <title><code>$content</code></title>
+    <p>Optional content to use for the text of the link</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>Note that this template is also called for inline elements that use DocBook 5's ubiquitous linking.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db2html.link"/></p>
+  </item>
+  <item>
+   <p><link xref="db2html.ulink"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2html.xref.page b/doc/yelp-xsl/C/db2html.xref.page
index 9e3449b7..250b2d79 100644
--- a/doc/yelp-xsl/C/db2html.xref.page
+++ b/doc/yelp-xsl/C/db2html.xref.page
@@ -1,28 +1,56 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2html.xref" type="topic" 
style="xslt-template"><info><link type="guide" xref="db2html-xref" group="templates"/><link type="guide" 
xref="templates" group="db2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Generates a 
hyperlink from an <code>xref</code> element</desc></info><title>db2html.xref</title><p>Generates a hyperlink 
from an <code>xref</code> element</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>linkend</code></title>
-      <p>The id of the element being linked to</p>
-    </item>
-    <item>
-      <title><code>target</code></title>
-      <p>The element being linked to</p>
-    </item>
-    <item>
-      <title><code>endterm</code></title>
-      <p>The id of an element whose contents will be used for the link text</p>
-    </item>
-    <item>
-      <title><code>xrefstyle</code></title>
-      <p>The style of cross reference text to use</p>
-    </item>
-    <item>
-      <title><code>content</code></title>
-      <p>Optional content to use for the text of the link</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Describe this template</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="db.xref.target"/></p></item><item><p><link 
xref="db.xref.content"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="db.id.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="db2html.xref">
+ <info>
+  <link type="guide" xref="db2html-xref" group="templates"/>
+  <link type="guide" xref="templates" group="db2html"/>
+  <desc>Generates a hyperlink from an <sys>xref</sys> element</desc>
+ </info>
+ <title>db2html.xref</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$linkend</code></title>
+    <p>The id of the element being linked to</p>
+   </item>
+   <item>
+    <title><code>$target</code></title>
+    <p>The element being linked to</p>
+   </item>
+   <item>
+    <title><code>$endterm</code></title>
+    <p>The id of an element whose contents will be used for the link text</p>
+   </item>
+   <item>
+    <title><code>$xrefstyle</code></title>
+    <p>The style of cross reference text to use</p>
+   </item>
+   <item>
+    <title><code>$content</code></title>
+    <p>Optional content to use for the text of the link</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Describe this template</p>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="db.id.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="db.xref.content"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.target"/></p>
+  </item>
+  <item>
+   <p><link xref="db.xref.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/db2xhtml.page b/doc/yelp-xsl/C/db2xhtml.page
index f07034c6..c2e706d3 100644
--- a/doc/yelp-xsl/C/db2xhtml.page
+++ b/doc/yelp-xsl/C/db2xhtml.page
@@ -1,2 +1,66 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="db2xhtml" type="guide" 
style="xslt-stylesheet"><?xslt-private db2html-suppressed?><info><link type="guide" xref="stylesheets" 
group="db2xhtml"/><revision version="3.8" date="2012-11-05" status="final"/><link type="topic" 
xref="db2html-bibliography" group="stylesheets"/><link type="topic" xref="db2html-block" 
group="stylesheets"/><link type="topic" xref="db2html-callout" group="stylesheets"/><link type="topic" 
xref="db2html-classsynopsis" group="stylesheets"/><link type="topic" xref="db2html-cmdsynopsis" 
group="stylesheets"/><link type="topic" xref="db2html-css" group="stylesheets"/><link type="topic" 
xref="db2html-division" group="stylesheets"/><link type="topic" xref="db2html-ebnf" 
group="stylesheets"/><link type="topic" xref="db2html-funcsynopsis" group="stylesheets"/><link type="topic" 
xref="db2html-index" group="stylesheets"/><link type="topic" xref="db2html-inline" group="stylesheets"/><link 
type="topic" xref="db2html-lin
 ks" grou
 p="stylesheets"/><link type="topic" xref="db2html-math" group="stylesheets"/><link type="topic" 
xref="db2html-media" group="stylesheets"/><link type="topic" xref="db2html-list" group="stylesheets"/><link 
type="topic" xref="db2html-refentry" group="stylesheets"/><link type="topic" xref="db2html-table" 
group="stylesheets"/><link type="topic" xref="db2html-xref" group="stylesheets"/><link type="topic" 
xref="db2html-footnote" group="stylesheets"/><link type="xslt-defines-param" xref="db.chunk.extension"/><link 
type="xslt-defines-param" xref="db.profile.outputformat"/></info><title>DocBook to XHTML</title><p>Transform 
DocBook to XHTML.</p><p>This top-level stylesheet includes all the necessary stylesheets to transform DocBook 
documents into XHTML. This stylesheet sets the parameter <code style="xslt-param" 
xref="db.chunk.extension">db.chunk.extension</code>.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="
 paramete
 rs" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.extension"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="db2xhtml">
+ <info>
+  <link type="guide" xref="stylesheets" group="db2xhtml"/>
+  <link type="topic" xref="l10n" group="imports"/>
+  <link type="topic" xref="color" group="imports"/>
+  <link type="topic" xref="icons" group="imports"/>
+  <link type="topic" xref="html" group="imports"/>
+  <link type="topic" xref="utils" group="imports"/>
+  <link type="topic" xref="db-chunk" group="imports"/>
+  <link type="topic" xref="db-common" group="imports"/>
+  <link type="topic" xref="db-profile" group="imports"/>
+  <link type="topic" xref="db-title" group="imports"/>
+  <link type="topic" xref="db-xref" group="imports"/>
+  <link type="topic" xref="db2html-bibliography" group="includes"/>
+  <link type="topic" xref="db2html-block" group="includes"/>
+  <link type="topic" xref="db2html-callout" group="includes"/>
+  <link type="topic" xref="db2html-classsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-cmdsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-css" group="includes"/>
+  <link type="topic" xref="db2html-division" group="includes"/>
+  <link type="topic" xref="db2html-ebnf" group="includes"/>
+  <link type="topic" xref="db2html-funcsynopsis" group="includes"/>
+  <link type="topic" xref="db2html-index" group="includes"/>
+  <link type="topic" xref="db2html-inline" group="includes"/>
+  <link type="topic" xref="db2html-links" group="includes"/>
+  <link type="topic" xref="db2html-math" group="includes"/>
+  <link type="topic" xref="db2html-media" group="includes"/>
+  <link type="topic" xref="db2html-list" group="includes"/>
+  <link type="topic" xref="db2html-refentry" group="includes"/>
+  <link type="topic" xref="db2html-suppressed" group="includes"/>
+  <link type="topic" xref="db2html-table" group="includes"/>
+  <link type="topic" xref="db2html-xref" group="includes"/>
+  <link type="topic" xref="db2html-footnote" group="includes"/>
+  <desc>Transform DocBook to XHTML.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>DocBook to XHTML</title>
+ <p>This top-level stylesheet includes all the necessary stylesheets to transform
+ DocBook documents into XHTML. This stylesheet sets the parameter
+ <code xref="db.chunk.extension">db.chunk.extension</code>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.basename.page b/doc/yelp-xsl/C/html.basename.page
index dffc4f6b..ad7f0280 100644
--- a/doc/yelp-xsl/C/html.basename.page
+++ b/doc/yelp-xsl/C/html.basename.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.basename" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-05-25" status="final"/><desc>The base filename of the primary output 
file.</desc></info><title>html.basename</title><p>The base filename of the primary output file.</p>
-  
-  
-  <p>This parameter specifies the base filename of the primary output file, without the filename extension. 
This is used by <code style="xslt-template" xref="html.output">html.output</code> to determine the output 
filename, and may be used by format-specific linking code. By default, it uses the value of an 
<code>id</code> or <code>xml:id</code> attribute, if present. Otherwise, it uses the static string 
<code>index</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.basename">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The base filename of the primary output file.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.basename</title>
+ <p>This parameter specifies the base filename of the primary output file, without
+ the filename extension. This is used by <code xref="html.output">html.output</code> to determine the output
+ filename, and may be used by format-specific linking code. By default, it uses
+ the value of an <sys>id</sys> or <sys>xml:id</sys> attribute, if present. Otherwise, it uses
+ the static string <sys>index</sys>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.body.attr.mode.page b/doc/yelp-xsl/C/html.body.attr.mode.page
index 2e1fbdfc..08b5fde7 100644
--- a/doc/yelp-xsl/C/html.body.attr.mode.page
+++ b/doc/yelp-xsl/C/html.body.attr.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.body.attr.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="1.0" date="2010-06-08" status="final"/><desc>Output attributes for the HTML 
<code>body</code> element.</desc></info><title>html.body.attr.mode</title><p>Output attributes for the HTML 
<code>body</code> element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.page">html.page</code> to output 
attributes on the HTML <code>body</code> element. No attributes are output by default. Importing stylesheets 
may implement this node to add attributes for styling, data, or other purposes.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.body.attr.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output attributes for the HTML <sys>body</sys> element.</desc>
+  <revision version="1.0" date="2010-06-08" status="final"/>
+ </info>
+ <title>html.body.attr.mode</title>
+ <p>This mode is called by <code xref="html.page">html.page</code> to output attributes on the HTML 
<sys>body</sys>
+ element. No attributes are output by default. Importing stylesheets may
+ implement this node to add attributes for styling, data, or other purposes.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.body.mode.page b/doc/yelp-xsl/C/html.body.mode.page
index 42a4bc1f..211bcc8d 100644
--- a/doc/yelp-xsl/C/html.body.mode.page
+++ b/doc/yelp-xsl/C/html.body.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.body.mode" type="topic" style="xslt-mode"><info><link 
type="guide" xref="html" group="modes"/><link type="guide" xref="modes" group="html"/><revision version="1.0" 
date="2010-05-26" status="final"/><desc>Output the main contents for an 
element.</desc></info><title>html.body.mode</title><p>Output the main contents for an element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.page">html.page</code> to output the main 
contents of an HTML page, below the header content and above the footer content. Titles, block content, and 
sections should be output in this mode.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.body.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output the main contents for an element.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>html.body.mode</title>
+ <p>This mode is called by <code xref="html.page">html.page</code> to output the main contents of an HTML
+ page, below the header content and above the footer content. Titles, block
+ content, and sections should be output in this mode.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.bottom.custom.page b/doc/yelp-xsl/C/html.bottom.custom.page
index eaed9aa8..27349e3f 100644
--- a/doc/yelp-xsl/C/html.bottom.custom.page
+++ b/doc/yelp-xsl/C/html.bottom.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.bottom.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output HTML at the bottom of the page.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.bottom.custom</title><p>Stub to output 
HTML at the bottom of the page.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. It is 
called after the <code>main</code> element. Override this template to provide site-specific HTML at the 
bottom of the page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.bottom.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output HTML at the bottom of the page.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.bottom.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. It is called after the
+ <sys>main</sys> element. Override this template to provide site-specific HTML
+ at the bottom of the page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.class.attr.mode.page b/doc/yelp-xsl/C/html.class.attr.mode.page
index 9c09863a..24f1c98d 100644
--- a/doc/yelp-xsl/C/html.class.attr.mode.page
+++ b/doc/yelp-xsl/C/html.class.attr.mode.page
@@ -1,7 +1,16 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.class.attr.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.10" date="2013-07-10" status="final"/><desc>Output additional values for 
an HTML <code>class</code> attribute.</desc></info><title>html.class.attr.mode</title><p>Output additional 
values for an HTML <code>class</code> attribute.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.class.attr">html.class.attr</code> on a 
source element. This mode is intended for extensions to have an easy way to add additional HTML class values 
for styling.</p>
-  <p>Note that these stylesheets use CSS classes extensively for styling and for certain JavaScript 
functionality. Extensions should be careful to output class values that do not conflict with those used in 
these stylesheets.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.class.attr.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output additional values for an HTML <sys>class</sys> attribute.</desc>
+  <revision version="3.10" date="2013-07-10" status="final"/>
+ </info>
+ <title>html.class.attr.mode</title>
+ <p>This mode is called by <code xref="html.class.attr">html.class.attr</code> on a source element. This 
mode is
+ intended for extensions to have an easy way to add additional HTML class values
+ for styling.</p>
+ <p>Note that these stylesheets use CSS classes extensively for styling and for
+ certain JavaScript functionality. Extensions should be careful to output class
+ values that do not conflict with those used in these stylesheets.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.class.attr.page b/doc/yelp-xsl/C/html.class.attr.page
index aa4f6897..065a567c 100644
--- a/doc/yelp-xsl/C/html.class.attr.page
+++ b/doc/yelp-xsl/C/html.class.attr.page
@@ -1,16 +1,118 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.class.attr" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.10" date="2013-07-10" status="final"/><desc>Output a 
<code>class</code> attribute for an HTML element.</desc></info><title>html.class.attr</title><p>Output a 
<code>class</code> attribute for an HTML element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source node for which an HTML element is being output.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>The value of the <code>class</code> attribute provided by the calling template.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by templates that output an HTML element corresponding to a source element. 
This template applies <code style="xslt-mode" xref="html.class.attr.mode">html.class.attr.mode</code> to 
<code style="xslt-param">node</code> to gather a value from extensions stylesheets. It combines this value 
with the value passed in the <code style="xslt-param">class</code> parameter and, if the result is non-empty, 
outputs a <code>class</code> attribute.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.class.attr.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.class.attr">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output a <sys>class</sys> attribute for an HTML element.</desc>
+  <revision version="3.10" date="2013-07-10" status="final"/>
+ </info>
+ <title>html.class.attr</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The source node for which an HTML element is being output.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>The value of the <sys>class</sys> attribute provided by the calling template.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by templates that output an HTML element corresponding
+ to a source element. This template applies <code xref="html.class.attr.mode">html.class.attr.mode</code> to 
<code>$node</code>
+ to gather a value from extensions stylesheets. It combines this value with the
+ value passed in the <code>$class</code> parameter and, if the result is non-empty, outputs
+ a <sys>class</sys> attribute.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.class.attr.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.content.post.custom.page b/doc/yelp-xsl/C/html.content.post.custom.page
index 7825b436..7c1f988b 100644
--- a/doc/yelp-xsl/C/html.content.post.custom.page
+++ b/doc/yelp-xsl/C/html.content.post.custom.page
@@ -1,17 +1,114 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.post.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2016-06-21" status="final"/><desc>Stub to output content after the content of a page or section, before 
subsections.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.content.post.custom</title><p>Stub to 
output content after the content of a page or section, before subsections.</p><note><p>This template is a 
stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page or section is being created for.</p>
-    </item>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" 
xref="html.content.post.custom">html.content.post.custom</code>. It is called after <code style="xslt-mode" 
xref="html.content.pre.mode">html.content.pre.mode</code> is applied. Override this template to provide 
site-specific HTML after the content of a page or section, but before any subsections. If the <code 
style="xslt-param">page</code> parameter is true, then this template is being called on an output page. 
Otherwise, it is being called on a section within a page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.content.post.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output content after the content of a page or section, before subsections.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.post.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page or section is being created for.</p>
+   </item>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code 
xref="html.content.post.custom">html.content.post.custom</code>. It is called
+ after <code xref="html.content.pre.mode">html.content.pre.mode</code> is applied. Override this template to 
provide
+ site-specific HTML after the content of a page or section, but before any
+ subsections. If the <code>$page</code> parameter is true, then this template is being
+ called on an output page. Otherwise, it is being called on a section within
+ a page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.content.post.mode.page b/doc/yelp-xsl/C/html.content.post.mode.page
index a49cd426..1a6ed379 100644
--- a/doc/yelp-xsl/C/html.content.post.mode.page
+++ b/doc/yelp-xsl/C/html.content.post.mode.page
@@ -1,12 +1,25 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.post.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.28" date="2016-06-21" status="final"/><desc>Output content after the 
content of a page or section, before subsections.</desc></info><title>html.content.post.mode</title><p>Output 
content after the content of a page or section, before subsections.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is applied by <code style="xslt-template" xref="html.content.post">html.content.post</code> 
before calling <code style="xslt-template" xref="html.content.post.custom">html.content.post.custom</code>. 
Importing stylesheets can use this to add additional content for specific types of input elements after the 
content of a page or section, but before any subsections. If the <code style="xslt-param">page</code> 
parameter is true, then this template is being called on an output page. Otherwise, it is being called on a 
section within a page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.content.post.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output content after the content of a page or section, before subsections.</desc>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.post.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is applied by <code xref="html.content.post">html.content.post</code> before calling
+ <code xref="html.content.post.custom">html.content.post.custom</code>. Importing stylesheets can use this 
to add
+ additional content for specific types of input elements after the content
+ of a page or section, but before any subsections. If the <code>$page</code> parameter
+ is true, then this template is being called on an output page. Otherwise,
+ it is being called on a section within a page.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.content.post.page b/doc/yelp-xsl/C/html.content.post.page
index 1cfeeb3a..c40bd994 100644
--- a/doc/yelp-xsl/C/html.content.post.page
+++ b/doc/yelp-xsl/C/html.content.post.page
@@ -1,16 +1,124 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.post" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2016-06-21" status="final"/><desc>Output 
content after the content of a page or section, before 
subsections.</desc></info><title>html.content.post</title><p>Output content after the content of a page or 
section, before subsections.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page or section is being created for.</p>
-    </item>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by importing stylesheets after any content of a page or section, but before any 
subsections. It applies <code style="xslt-mode" xref="html.content.post.mode">html.content.post.mode</code> 
to <code style="xslt-param">node</code>, then calls <code style="xslt-template" 
xref="html.content.post.custom">html.content.post.custom</code>. If the <code style="xslt-param">page</code> 
parameter is true, then this template is being called on an output page. Otherwise, it is being called on a 
section within a page.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.content.post.custom"/></p></item></list><list style="compact"><title>Calls 
Modes</title><item><p><link xref="html.content.post.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.content.post">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output content after the content of a page or section, before subsections.</desc>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.post</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page or section is being created for.</p>
+   </item>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by importing stylesheets after any content of a page
+ or section, but before any subsections. It applies <code 
xref="html.content.post.mode">html.content.post.mode</code>
+ to <code>$node</code>, then calls <code xref="html.content.post.custom">html.content.post.custom</code>. If 
the <code>$page</code> parameter
+ is true, then this template is being called on an output page. Otherwise, it
+ is being called on a section within a page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.content.post.custom"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.content.post.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.content.pre.custom.page b/doc/yelp-xsl/C/html.content.pre.custom.page
index a29b6c54..5b9e9bde 100644
--- a/doc/yelp-xsl/C/html.content.pre.custom.page
+++ b/doc/yelp-xsl/C/html.content.pre.custom.page
@@ -1,17 +1,113 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.pre.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2016-06-21" status="final"/><desc>Stub to output content before the content of a page or 
section.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.content.pre.custom</title><p>Stub to 
output content before the content of a page or section.</p><note><p>This template is a stub. Customizations 
may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page or section is being created for.</p>
-    </item>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" 
xref="html.content.pre.custom">html.content.pre.custom</code>. It is called before <code style="xslt-mode" 
xref="html.content.pre.mode">html.content.pre.mode</code> is applied. Override this template to provide 
site-specific HTML before the content of a page or section. If the <code style="xslt-param">page</code> 
parameter is true, then this template is being called on an output page. Otherwise, it is being called on a 
section within a page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.content.pre.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output content before the content of a page or section.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.pre.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page or section is being created for.</p>
+   </item>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.content.pre.custom">html.content.pre.custom</code>. 
It is called
+ before <code xref="html.content.pre.mode">html.content.pre.mode</code> is applied. Override this template 
to provide
+ site-specific HTML before the content of a page or section. If the <code>$page</code>
+ parameter is true, then this template is being called on an output page.
+ Otherwise, it is being called on a section within a page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.content.pre.mode.page b/doc/yelp-xsl/C/html.content.pre.mode.page
index f32bb7db..c4a6b587 100644
--- a/doc/yelp-xsl/C/html.content.pre.mode.page
+++ b/doc/yelp-xsl/C/html.content.pre.mode.page
@@ -1,12 +1,25 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.pre.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.28" date="2016-06-21" status="final"/><desc>Output content before the 
content of a page or section.</desc></info><title>html.content.pre.mode</title><p>Output content before the 
content of a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is applied by <code style="xslt-template" xref="html.content.pre">html.content.pre</code> 
after calling <code style="xslt-template" xref="html.content.pre.custom">html.content.pre.custom</code>. 
Importing stylesheets can use this to add additional content for specific types of input elements before the 
content of a page or section. If the <code style="xslt-param">page</code> parameter is true, then this 
template is being called on an output page. Otherwise, it is being called on a section within a page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.content.pre.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output content before the content of a page or section.</desc>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.pre.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is applied by <code xref="html.content.pre">html.content.pre</code> after calling
+ <code xref="html.content.pre.custom">html.content.pre.custom</code>. Importing stylesheets can use this to 
add
+ additional content for specific types of input elements before the content
+ of a page or section. If the <code>$page</code> parameter is true, then this template
+ is being called on an output page. Otherwise, it is being called on a section
+ within a page.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.content.pre.page b/doc/yelp-xsl/C/html.content.pre.page
index a95646f9..98dfd4b8 100644
--- a/doc/yelp-xsl/C/html.content.pre.page
+++ b/doc/yelp-xsl/C/html.content.pre.page
@@ -1,16 +1,124 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.content.pre" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2016-06-21" status="final"/><desc>Output 
content before the content of a page or section.</desc></info><title>html.content.pre</title><p>Output 
content before the content of a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page or section is being created for.</p>
-    </item>
-    <item>
-      <title><code>page</code></title>
-      <p>Whether the content is for a page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by importing stylesheets before any content of a page or section, but after the 
title. It calls <code style="xslt-template" xref="html.content.pre.custom">html.content.pre.custom</code>, 
then applies <code style="xslt-mode" xref="html.content.pre.mode">html.content.pre.mode</code> to <code 
style="xslt-param">node</code>. If the <code style="xslt-param">page</code> parameter is true, then this 
template is being called on an output page. Otherwise, it is being called on a section within a page.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.content.pre.custom"/></p></item></list><list style="compact"><title>Calls 
Modes</title><item><p><link xref="html.content.pre.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.content.pre">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output content before the content of a page or section.</desc>
+  <revision version="3.28" date="2016-06-21" status="final"/>
+ </info>
+ <title>html.content.pre</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page or section is being created for.</p>
+   </item>
+   <item>
+    <title><code>$page</code></title>
+    <p>Whether the content is for a page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by importing stylesheets before any content of a page
+ or section, but after the title. It calls <code 
xref="html.content.pre.custom">html.content.pre.custom</code>, then
+ applies <code xref="html.content.pre.mode">html.content.pre.mode</code> to <code>$node</code>. If the 
<code>$page</code> parameter is true,
+ then this template is being called on an output page. Otherwise, it is being
+ called on a section within a page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.content.pre.custom"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.content.pre.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.content.page b/doc/yelp-xsl/C/html.css.content.page
index 90261593..9ee3bebb 100644
--- a/doc/yelp-xsl/C/html.css.content.page
+++ b/doc/yelp-xsl/C/html.css.content.page
@@ -1,24 +1,149 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.content" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-12-23" status="final"/><desc>Output actual 
CSS content for an HTML output page.</desc></info><title>html.css.content</title><p>Output actual CSS content 
for an HTML output page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates the CSS content for an HTML output page. It is called by <code 
style="xslt-template" xref="html.css">html.css</code>. It calls the templates <code style="xslt-template" 
xref="html.css.core">html.css.core</code>, <code style="xslt-template" 
xref="html.css.elements">html.css.elements</code>, and <code style="xslt-template" 
xref="html.css.syntax">html.css.syntax</code>. It then calls the mode <code style="xslt-mode" 
xref="html.css.mode">html.css.mode</code> on <code style="xslt-param">node</code> and calls the template 
<code style="xslt-template" xref="html.css.custom">html.css.custom</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item><item><p><link 
xref="html.css.core"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.css.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css.content">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output actual CSS content for an HTML output page.</desc>
+  <revision version="1.0" date="2010-12-23" status="final"/>
+ </info>
+ <title>html.css.content</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates the CSS content for an HTML output page. It is called by
+ <code xref="html.css">html.css</code>. It calls the templates <code 
xref="html.css.core">html.css.core</code>, <code xref="html.css.elements">html.css.elements</code>, and
+ <code xref="html.css.syntax">html.css.syntax</code>. It then calls the mode <code 
xref="html.css.mode">html.css.mode</code> on <code>$node</code> and
+ calls the template <code xref="html.css.custom">html.css.custom</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.css.core"/></p>
+  </item>
+  <item>
+   <p><link xref="html.css.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.css.elements"/></p>
+  </item>
+  <item>
+   <p><link xref="html.css.syntax"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.css.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.core.page b/doc/yelp-xsl/C/html.css.core.page
index 61499b4c..4612f969 100644
--- a/doc/yelp-xsl/C/html.css.core.page
+++ b/doc/yelp-xsl/C/html.css.core.page
@@ -1,25 +1,133 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.core" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-05-25" status="final"/><desc>Output CSS 
that does not reference source elements.</desc></info><title>html.css.core</title><p>Output CSS that does not 
reference source elements.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs CSS that can be used in any HTML. It does not reference elements from DocBook, 
Mallard, or other source languages. It provides the common spacings for block-level elements lik paragraphs 
and lists, defines styles for links, and defines four common wrapper divs: <code>header</code>, 
<code>side</code>, <code>body</code>, and <code>footer</code>.</p>
-  <p>All parameters can be automatically computed if not provided.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="color.bg"/></p></item><item><p><link 
xref="color.bg.dark"/></p></item><item><p><link xref="color.bg.gray"/></p></item><item><p><link 
xref="color.fg"/></p></item><item><p><link xref="color.fg.blue"/></p></item><item><p><link 
xref="color.fg.dark"/></p></item><item><p><link xref="color.fg.purple"/></p></item><item><p><link 
xref="color.gray"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css.core">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output CSS that does not reference source elements.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.css.core</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs CSS that can be used in any HTML. It does not reference
+ elements from DocBook, Mallard, or other source languages. It provides the
+ common spacings for block-level elements like paragraphs and lists, defines
+ styles for links, and defines four common wrapper divs: <sys>header</sys>, <sys>side</sys>,
+ <sys>body</sys>, and <sys>footer</sys>.</p>
+ <p>All parameters can be automatically computed if not provided.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.custom.page b/doc/yelp-xsl/C/html.css.custom.page
index 769293dd..dc361934 100644
--- a/doc/yelp-xsl/C/html.css.custom.page
+++ b/doc/yelp-xsl/C/html.css.custom.page
@@ -1,25 +1,130 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="1.0" 
date="2010-05-25" status="final"/><desc>Stub to output custom CSS common to all HTML 
transformations.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.css.custom</title><p>Stub to output custom 
CSS common to all HTML transformations.</p><note><p>This template is a stub. Customizations may override it 
for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" 
xref="html.css.content">html.css.content</code>. You can override this template to provide additional CSS 
that will be used by all HTML output.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom CSS common to all HTML transformations.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.css.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.css.content">html.css.content</code>. You can 
override this
+ template to provide additional CSS that will be used by all HTML output.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.elements.page b/doc/yelp-xsl/C/html.css.elements.page
index a5b971e8..4302d7eb 100644
--- a/doc/yelp-xsl/C/html.css.elements.page
+++ b/doc/yelp-xsl/C/html.css.elements.page
@@ -1,25 +1,136 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.elements" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-05-25" status="final"/><desc>Output CSS for 
common elements from source formats.</desc></info><title>html.css.elements</title><p>Output CSS for common 
elements from source formats.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs CSS for elements from source languages like DocBook and Mallard. It defines them 
using common class names. The common names are often the simpler element names from Mallard, although there 
some class names which are not taken from Mallard. Stylesheets which convert to HTML should use the 
appropriate common classes.</p>
-  <p>All parameters can be automatically computed if not provided.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="color.bg"/></p></item><item><p><link xref="color.bg.blue"/></p></item><item><p><link 
xref="color.bg.dark"/></p></item><item><p><link xref="color.bg.gray"/></p></item><item><p><link 
xref="color.bg.yellow"/></p></item><item><p><link xref="color.blue"/></p></item><item><p><link 
xref="color.fg"/></p></item><item><p><link xref="color.fg.blue"/></p></item><item><p><link 
xref="color.fg.dark"/></p></item><item><p><link xref="color.fg.gray"/></p></item><item><p><link 
xref="color.fg.red"/></p></item><item><p><link xref="color.fg.yellow"/></p></item><item><p><link 
xref="color.gray"/></p></item><item><p><link xref="color.red"/></p></item><item><p><link 
xref="color.yellow"/></p></item><item><p><link xref="icons.s
 ize.quot
 e"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css.elements">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output CSS for common elements from source formats.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.css.elements</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs CSS for elements from source languages like DocBook and
+ Mallard. It defines them using common class names. The common names are often
+ the simpler element names from Mallard, although there some class names which
+ are not taken from Mallard. Stylesheets which convert to HTML should use the
+ appropriate common classes.</p>
+ <p>All parameters can be automatically computed if not provided.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.mode.page b/doc/yelp-xsl/C/html.css.mode.page
index 96458586..e0e74191 100644
--- a/doc/yelp-xsl/C/html.css.mode.page
+++ b/doc/yelp-xsl/C/html.css.mode.page
@@ -1,20 +1,31 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.mode" type="topic" style="xslt-mode"><info><link 
type="guide" xref="html" group="modes"/><link type="guide" xref="modes" group="html"/><revision version="1.0" 
date="2010-05-26" status="final"/><desc>Output CSS specific to the input 
format.</desc></info><title>html.css.mode</title><p>Output CSS specific to the input format.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="html.css.content">html.css.content</code> 
to output CSS specific to the input format. Importing stylesheets may implement this for any element that 
will be passed to <code style="xslt-template" xref="html.page">html.page</code>. If they do not, the output 
HTML will only have the common CSS.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.css.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output CSS specific to the input format.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>html.css.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="html.css.content">html.css.content</code> to output CSS specific 
to the
+ input format. Importing stylesheets may implement this for any element that
+ will be passed to <code xref="html.page">html.page</code>. If they do not, the output HTML will only have
+ the common CSS.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.css.page b/doc/yelp-xsl/C/html.css.page
index 2cca55c4..6089f259 100644
--- a/doc/yelp-xsl/C/html.css.page
+++ b/doc/yelp-xsl/C/html.css.page
@@ -1,25 +1,137 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css" type="topic" style="xslt-template"><info><link 
type="guide" xref="html" group="templates"/><link type="guide" xref="templates" group="html"/><revision 
version="1.0" date="2010-12-23" status="final"/><desc>Output all CSS for an HTML output 
page.</desc></info><title>html.css</title><p>Output all CSS for an HTML output page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates the CSS for an HTML output page, including the enclosing HTML <code>style</code> 
element. It calls the templates <code style="xslt-template" xref="html.css.content">html.css.content</code> 
to output the actual CSS contents.</p>
-  <p>The <code style="xslt-param">direction</code> parameter specifies the directionality of the text for 
the language of the document. The <code style="xslt-param">left</code> and <code 
style="xslt-param">right</code> parameters are based on <code style="xslt-param">direction</code>, and can be 
used to set beginning and ending margins or other dimensions. All parameters can be automatically computed if 
not provided.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item><item><p><link 
xref="html.css.content"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output all CSS for an HTML output page.</desc>
+  <revision version="1.0" date="2010-12-23" status="final"/>
+ </info>
+ <title>html.css</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates the CSS for an HTML output page, including the enclosing
+ HTML <sys>style</sys> element. It calls the templates <code xref="html.css.content">html.css.content</code> 
to output the
+ actual CSS contents.</p>
+ <p>The <code>$direction</code> parameter specifies the directionality of the text for the
+ language of the document. The <code>$left</code> and <code>$right</code> parameters are based on
+ <code>$direction</code>, and can be used to set beginning and ending margins or other
+ dimensions. All parameters can be automatically computed if not provided.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.css.content"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.css.root.page b/doc/yelp-xsl/C/html.css.root.page
index 61ce24bc..7cffe0df 100644
--- a/doc/yelp-xsl/C/html.css.root.page
+++ b/doc/yelp-xsl/C/html.css.root.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.root" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-12-06" status="final"/><desc>The URI root for external CSS 
files.</desc></info><title>html.css.root</title><p>The URI root for external CSS files.</p>
-  
-  
-  <p>This parameter provides a root URI for any external CSS files that are referenced from the output HTML 
file. If non-empty, it must end with a trailing slash character.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.css.root">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The URI root for external CSS files.</desc>
+  <revision version="1.0" date="2010-12-06" status="final"/>
+ </info>
+ <title>html.css.root</title>
+ <p>This parameter provides a root URI for any external CSS files that are
+ referenced from the output HTML file. If non-empty, it must end with
+ a trailing slash character.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.css.root</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.css.syntax.page b/doc/yelp-xsl/C/html.css.syntax.page
index 0cc06d77..fdd86f64 100644
--- a/doc/yelp-xsl/C/html.css.syntax.page
+++ b/doc/yelp-xsl/C/html.css.syntax.page
@@ -1,25 +1,133 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.css.syntax" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-12-06" status="final"/><desc>Output CSS for 
syntax highlighting.</desc></info><title>html.css.syntax</title><p>Output CSS for syntax highlighting.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create CSS for.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The directionality of the text, either <code>ltr</code> or <code>rtl</code>.</p>
-    </item>
-    <item>
-      <title><code>left</code></title>
-      <p>The starting alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-    <item>
-      <title><code>right</code></title>
-      <p>The ending alignment, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs CSS to support syntax highlighting of code blocks. Syntax highlighting is done at 
document load time with JavaScript. Text in code blocks is broken up into chunks and wrapped in HTML elements 
with particular classes. This template outputs CSS to match those elements and style them with the built-in 
themeable colors from <file xref="color">color</file>.</p>
-  <p>All parameters can be automatically computed if not provided.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="l10n.align.start"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="color.bg.green"/></p></item><item><p><link xref="color.bg.red"/></p></item><item><p><link 
xref="color.fg.blue"/></p></item><item><p><link xref="color.fg.dark"/></p></item><item><p><link 
xref="color.fg.gray"/></p></item><item><p><link xref="color.fg.green"/></p></item><item><p><link 
xref="color.fg.orange"/></p></item><item><p><link xref="color.fg.purple"/></p></item><item><p><link 
xref="color.fg.red"/></p></item><item><p><link xref="color.fg.yellow"/></p></item><item><p><link 
xref="html.syntax.highlight"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.css.syntax">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output CSS for syntax highlighting.</desc>
+  <revision version="1.0" date="2010-12-06" status="final"/>
+ </info>
+ <title>html.css.syntax</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create CSS for.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The directionality of the text, either <sys>ltr</sys> or <sys>rtl</sys>.</p>
+   </item>
+   <item>
+    <title><code>$left</code></title>
+    <p>The starting alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+   <item>
+    <title><code>$right</code></title>
+    <p>The ending alignment, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs CSS to support syntax highlighting of code blocks. Syntax
+ highlighting is done at document load time with JavaScript. Text in code blocks
+ is broken up into chunks and wrapped in HTML elements with particular classes.
+ This template outputs CSS to match those elements and style them with the
+ built-in themeable colors from <code xref="color">color</code>.</p>
+ <p>All parameters can be automatically computed if not provided.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.extension.page b/doc/yelp-xsl/C/html.extension.page
index d1f56261..a0f8a3ef 100644
--- a/doc/yelp-xsl/C/html.extension.page
+++ b/doc/yelp-xsl/C/html.extension.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.extension" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-05-25" status="final"/><desc>The filename extension for all output 
files.</desc></info><title>html.extension</title><p>The filename extension for all output files.</p>
-  
-  
-  <p>This parameter specifies a filename extension for all HTML output files. It should include the leading 
dot. By default, <code>.xhtml</code> will be used if <code style="xslt-param" 
xref="html.xhtml">html.xhtml</code> is true; otherwise, <code>.html</code> will be used.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.extension">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The filename extension for all output files.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.extension</title>
+ <p>This parameter specifies a filename extension for all HTML output files. It
+ should include the leading dot. By default, <sys>.xhtml</sys> will be used if
+ <code xref="html.xhtml">html.xhtml</code> is true; otherwise, <sys>.html</sys> will be used.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.footer.custom.page b/doc/yelp-xsl/C/html.footer.custom.page
index 4952c8db..77434e5a 100644
--- a/doc/yelp-xsl/C/html.footer.custom.page
+++ b/doc/yelp-xsl/C/html.footer.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.footer.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output custom footer content.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.footer.custom</title><p>Stub to output 
custom footer content.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. It is 
called inside the <code>footer</code> element, after <code style="xslt-mode" 
xref="html.footer.mode">html.footer.mode</code> is applied to <code style="xslt-param">node</code>. You can 
override this template to provide additional content below the main content.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.footer.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom footer content.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.footer.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. It is called inside the
+ <sys>footer</sys> element, after <code xref="html.footer.mode">html.footer.mode</code> is applied to 
<code>$node</code>. You can
+ override this template to provide additional content below the main content.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.footer.mode.page b/doc/yelp-xsl/C/html.footer.mode.page
index e6d9fccf..0de52225 100644
--- a/doc/yelp-xsl/C/html.footer.mode.page
+++ b/doc/yelp-xsl/C/html.footer.mode.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.footer.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output the footer content for 
an element.</desc></info><title>html.footer.mode</title><p>Output the footer content for an element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.page">html.page</code> to output the 
contents of the <code>footer</code> element below the main content. Importing stylesheets may implement this 
mode for any element that will be passed to <code style="xslt-template" xref="html.page">html.page</code>. If 
they do not, the <code>footer</code> element will be empty by default.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.footer.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output the footer content for an element.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.footer.mode</title>
+ <p>This mode is called by <code xref="html.page">html.page</code> to output the contents of the 
<sys>footer</sys>
+ element below the main content. Importing stylesheets may implement this mode
+ for any element that will be passed to <code xref="html.page">html.page</code>. If they do not, the
+ <sys>footer</sys> element will be empty by default.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.head.custom.page b/doc/yelp-xsl/C/html.head.custom.page
index 0a2ef85e..c118de09 100644
--- a/doc/yelp-xsl/C/html.head.custom.page
+++ b/doc/yelp-xsl/C/html.head.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.head.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-08-04" status="final"/><desc>Stub to output custom content at the end of the HTML 
<code>head</code> element.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.head.custom</title><p>Stub to output 
custom content at the end of the HTML <code>head</code> element.</p><note><p>This template is a stub. 
Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. You 
can override this template to provide additional elements in the HTML <code>head</code> element of output 
files. This template is called after all other head content.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.head.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom content at the end of the HTML <sys>head</sys> element.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-08-04" status="final"/>
+ </info>
+ <title>html.head.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. You can override this 
template
+ to provide additional elements in the HTML <sys>head</sys> element of output files.
+ This template is called after all other head content.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.head.top.custom.page b/doc/yelp-xsl/C/html.head.top.custom.page
index b3282168..d82aec00 100644
--- a/doc/yelp-xsl/C/html.head.top.custom.page
+++ b/doc/yelp-xsl/C/html.head.top.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.head.top.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-08-04" status="final"/><desc>Stub to output custom content at the beginning of the HTML 
<code>head</code> element.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.head.top.custom</title><p>Stub to output 
custom content at the beginning of the HTML <code>head</code> element.</p><note><p>This template is a stub. 
Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. You 
can override this template to provide additional elements at the beginning of the HTML <code>head</code> 
element of output files. This template is called before all other head content.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.head.top.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom content at the beginning of the HTML <sys>head</sys> element.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-08-04" status="final"/>
+ </info>
+ <title>html.head.top.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. You can override this 
template
+ to provide additional elements at the beginning of the HTML <sys>head</sys> element of
+ output files. This template is called before all other head content.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.header.custom.page b/doc/yelp-xsl/C/html.header.custom.page
index 5a55495b..52e256e8 100644
--- a/doc/yelp-xsl/C/html.header.custom.page
+++ b/doc/yelp-xsl/C/html.header.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.header.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output custom header content.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.header.custom</title><p>Stub to output 
custom header content.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. It is 
called inside the <code>header</code> element, before <code style="xslt-mode" 
xref="html.header.mode">html.header.mode</code> is applied to <code style="xslt-param">node</code>. You can 
override this template to provide additional content above the main content.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.header.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom header content.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.header.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. It is called inside the
+ <sys>header</sys> element, before <code xref="html.header.mode">html.header.mode</code> is applied to 
<sys>node</sys>. You can
+ override this template to provide additional content above the main content.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.header.mode.page b/doc/yelp-xsl/C/html.header.mode.page
index 6d9770fb..b1fafb93 100644
--- a/doc/yelp-xsl/C/html.header.mode.page
+++ b/doc/yelp-xsl/C/html.header.mode.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.header.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output the header content for 
an element.</desc></info><title>html.header.mode</title><p>Output the header content for an element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.page">html.page</code> to output the 
contents of the <code>header</code> element above the main content. Importing stylesheets may implement this 
mode for any element that will be passed to <code style="xslt-template" xref="html.page">html.page</code>. If 
they do not, the <code>header</code> element will be empty by default.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.header.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output the header content for an element.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.header.mode</title>
+ <p>This mode is called by <code xref="html.page">html.page</code> to output the contents of the 
<sys>header</sys>
+ element above the main content. Importing stylesheets may implement this mode
+ for any element that will be passed to <code xref="html.page">html.page</code>. If they do not, the
+ <sys>header</sys> element will be empty by default.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.content.custom.page b/doc/yelp-xsl/C/html.js.content.custom.page
index c71c6877..b79cd2bb 100644
--- a/doc/yelp-xsl/C/html.js.content.custom.page
+++ b/doc/yelp-xsl/C/html.js.content.custom.page
@@ -1,13 +1,109 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.content.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="1.0" 
date="2010-04-16" status="final"/><desc>Stub to output custom JavaScript common to all HTML 
transformations.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.js.content.custom</title><p>Stub to output 
custom JavaScript common to all HTML transformations.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" 
xref="html.js.content">html.js.content</code>. You can override this template to provide additional 
JavaScript that will be used by all HTML output. This template is called inside a <code>script</code> tag, 
and is intended to include JavaScript code in the output page. See <code style="xslt-template" 
xref="html.js.custom">html.js.custom</code> to include a custom reference to an external JavaScript file.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.js.content.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom JavaScript common to all HTML transformations.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="1.0" date="2010-04-16" status="final"/>
+ </info>
+ <title>html.js.content.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.js.content">html.js.content</code>. You can override 
this
+ template to provide additional JavaScript that will be used by all HTML output.
+ This template is called inside a <sys>script</sys> tag, and is intended to include
+ JavaScript code in the output page. See <code xref="html.js.custom">html.js.custom</code> to include a 
custom
+ reference to an external JavaScript file.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.content.page b/doc/yelp-xsl/C/html.js.content.page
index 25c42412..98268146 100644
--- a/doc/yelp-xsl/C/html.js.content.page
+++ b/doc/yelp-xsl/C/html.js.content.page
@@ -1,12 +1,128 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.content" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2017-07-05" status="final"/><desc>Output 
JavaScript content for an HTML output page.</desc></info><title>html.js.content</title><p>Output JavaScript 
content for an HTML output page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="html.js.script">html.js.script</code> to 
output JavaScript content. It does not output an HTML <code>script</code> tag. This template calls the 
templates <code style="xslt-template" xref="html.js.core">html.js.core</code>, <code style="xslt-template" 
xref="html.js.ui">html.js.ui</code>, and <code style="xslt-template" 
xref="html.js.media">html.js.media</code>. It then calls the mode <code style="xslt-mode" 
xref="html.js.mode">html.js.mode</code> on <code style="xslt-param">node</code> and calls the template <code 
style="xslt-template" xref="html.js.content.custom">html.js.content.custom</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.js.core"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.js.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.content">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output JavaScript content for an HTML output page.</desc>
+  <revision version="3.28" date="2017-07-05" status="final"/>
+ </info>
+ <title>html.js.content</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="html.js.script">html.js.script</code> to output JavaScript 
content. It
+ does not output an HTML <sys>script</sys> tag. This template calls the templates
+ <code xref="html.js.core">html.js.core</code>, <code xref="html.js.ui">html.js.ui</code>, and <code 
xref="html.js.media">html.js.media</code>. It then calls the mode
+ <code xref="html.js.mode">html.js.mode</code> on <code>$node</code> and calls the template <code 
xref="html.js.content.custom">html.js.content.custom</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.js.content.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.core"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.media"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.ui"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.js.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.js.core.page b/doc/yelp-xsl/C/html.js.core.page
index db3dd279..0e1a4f6a 100644
--- a/doc/yelp-xsl/C/html.js.core.page
+++ b/doc/yelp-xsl/C/html.js.core.page
@@ -1,12 +1,105 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.core" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.4" date="2011-11-04" status="final"/><desc>Output 
JavaScript for core features.</desc></info><title>html.js.core</title><p>Output JavaScript for core 
features.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs JavaScript to support basic features used by all documents. Currently, it outputs 
code to highlight a section when <code>location.hash</code> is set.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.core">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output JavaScript for core features.</desc>
+  <revision version="3.4" date="2011-11-04" status="final"/>
+ </info>
+ <title>html.js.core</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs JavaScript to support basic features used by all documents.
+ Currently, it outputs code to highlight a section when <sys>location.hash</sys> is set.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.custom.page b/doc/yelp-xsl/C/html.js.custom.page
index 8761d306..7c5f5514 100644
--- a/doc/yelp-xsl/C/html.js.custom.page
+++ b/doc/yelp-xsl/C/html.js.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="1.0" 
date="2010-04-16" status="final"/><desc>Stub to reference custom JavaScript common to all HTML 
transformations.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.js.custom</title><p>Stub to reference 
custom JavaScript common to all HTML transformations.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.js">html.js</code>. You can 
override this template to reference additional external JavaScript files. If you want to include JavaScript 
into the main <code>script</code> tag instead, use <code style="xslt-template" 
xref="html.js.content.custom">html.js.content.custom</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to reference custom JavaScript common to all HTML transformations.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="1.0" date="2010-04-16" status="final"/>
+ </info>
+ <title>html.js.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.js">html.js</code>. You can override this template
+ to reference additional external JavaScript files. If you want to include
+ JavaScript into the main <sys>script</sys> tag instead, use <code 
xref="html.js.content.custom">html.js.content.custom</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.mathjax.page b/doc/yelp-xsl/C/html.js.mathjax.page
index e2fac637..541c764f 100644
--- a/doc/yelp-xsl/C/html.js.mathjax.page
+++ b/doc/yelp-xsl/C/html.js.mathjax.page
@@ -1,12 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.mathjax" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2012-11-13" status="final"/><desc>Output 
<code>script</code> element to include MathJax.</desc></info><title>html.js.mathjax</title><p>Output 
<code>script</code> element to include MathJax.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>script</code> tag to reference MathJax. It only outputs a 
<code>script</code> element if <code style="xslt-param">node</code> has MathML descendent content. By 
default, this template uses <code>cdn.mathjax.org</code>. If you wish to use a local copy, override this 
template and provide the necessary files.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.mathjax">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output a <sys>script</sys> element to include MathJax.</desc>
+  <revision version="1.0" date="2012-11-13" status="final"/>
+ </info>
+ <title>html.js.mathjax</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>script</sys> tag to reference MathJax. It only
+ outputs a <sys>script</sys> element if <code>$node</code> has MathML descendent content. By
+ default, this template uses <sys>cdn.mathjax.org</sys>. If you wish to use a local
+ copy, override this template and provide the necessary files.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.media.page b/doc/yelp-xsl/C/html.js.media.page
index d58c9e01..f06b74a7 100644
--- a/doc/yelp-xsl/C/html.js.media.page
+++ b/doc/yelp-xsl/C/html.js.media.page
@@ -1,12 +1,105 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.media" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-01-01" status="final"/><desc>Output 
JavaScript to control media elements.</desc></info><title>html.js.media</title><p>Output JavaScript to 
control media elements.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs JavaScript that controls media elements. It provides control for audio and video 
elements as well as support for captions.</p>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="color.bg.gray"/></p></item><item><p><link xref="color.fg.dark"/></p></item><item><p><link 
xref="color.gray"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.media">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output JavaScript to control media elements.</desc>
+  <revision version="1.0" date="2010-01-01" status="final"/>
+ </info>
+ <title>html.js.media</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs JavaScript that controls media elements. It provides
+ control for audio and video elements as well as support for captions.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.js.mode.page b/doc/yelp-xsl/C/html.js.mode.page
index f324388f..71a5e02d 100644
--- a/doc/yelp-xsl/C/html.js.mode.page
+++ b/doc/yelp-xsl/C/html.js.mode.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.mode" type="topic" style="xslt-mode"><info><link 
type="guide" xref="html" group="modes"/><link type="guide" xref="modes" group="html"/><revision version="1.0" 
date="2010-01-01" status="final"/><desc>Output JavaScript specific to the input 
format.</desc></info><title>html.js.mode</title><p>Output JavaScript specific to the input format.</p>
-  
-  
-  <p>This template is called by <code style="xslt-template" xref="html.js.content">html.js.content</code> to 
output JavaScript specific to the input format. Importing stylesheets may implement this for any element that 
will be passed to <code style="xslt-template" xref="html.page">html.page</code>. If they do not, the output 
HTML will only have the common JavaScript.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.js.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output JavaScript specific to the input format.</desc>
+  <revision version="1.0" date="2010-01-01" status="final"/>
+ </info>
+ <title>html.js.mode</title>
+ <p>This mode is called by <code xref="html.js.content">html.js.content</code> to output JavaScript specific 
to
+ the input format. Importing stylesheets may implement this for any element that
+ will be passed to <code xref="html.page">html.page</code>. If they do not, the output HTML will only have
+ the common JavaScript.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.page b/doc/yelp-xsl/C/html.js.page
index 64bb2a7e..89481c28 100644
--- a/doc/yelp-xsl/C/html.js.page
+++ b/doc/yelp-xsl/C/html.js.page
@@ -1,12 +1,123 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js" type="topic" style="xslt-template"><info><link 
type="guide" xref="html" group="templates"/><link type="guide" xref="templates" group="html"/><revision 
version="3.28" date="2017-07-05" status="final"/><desc>Output all JavaScript for an HTML output 
page.</desc></info><title>html.js</title><p>Output all JavaScript for an HTML output page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates the JavaScript for an HTML output page. It calls the templates <code 
style="xslt-template" xref="html.js.syntax">html.js.syntax</code> and <code style="xslt-template" 
xref="html.js.mathjax">html.js.mathjax</code> to output references to external libraries. It then calls <code 
style="xslt-template" xref="html.js.custom">html.js.custom</code> to output references to custom JavaScript 
files. Finally, it calls <code style="xslt-template" xref="html.js.script">html.js.script</code> to output 
local JavaScript created by <code style="xslt-template" xref="html.js.content">html.js.content</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.js.syntax"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output all JavaScript for an HTML output page.</desc>
+  <revision version="3.28" date="2017-07-05" status="final"/>
+ </info>
+ <title>html.js</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates the JavaScript for an HTML output page. It calls the
+ templates <code xref="html.js.syntax">html.js.syntax</code> and <code 
xref="html.js.mathjax">html.js.mathjax</code> to output references to
+ external libraries. It then calls <code xref="html.js.custom">html.js.custom</code> to output references to
+ custom JavaScript files. Finally, it calls <code xref="html.js.script">html.js.script</code> to output local
+ JavaScript created by <code xref="html.js.content">html.js.content</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.js.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.mathjax"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.script"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.syntax"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.js.root.page b/doc/yelp-xsl/C/html.js.root.page
index 777b0128..b9907a7f 100644
--- a/doc/yelp-xsl/C/html.js.root.page
+++ b/doc/yelp-xsl/C/html.js.root.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.root" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-12-06" status="final"/><desc>The URI root for external JavaScript 
files.</desc></info><title>html.js.root</title><p>The URI root for external JavaScript files.</p>
-  
-  
-  <p>This parameter provides a root URI for any external JavaScript files that are referenced from the 
output HTML file. If non-empty, it must end with a trailing slash character.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.js.root">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The URI root for external JavaScript files.</desc>
+  <revision version="1.0" date="2010-12-06" status="final"/>
+ </info>
+ <title>html.js.root</title>
+ <p>This parameter provides a root URI for any external JavaScript files that are
+ referenced from the output HTML file. If non-empty, it must end with
+ a trailing slash character.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.js.root</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.js.script.page b/doc/yelp-xsl/C/html.js.script.page
index bc11bfc4..e8912d8e 100644
--- a/doc/yelp-xsl/C/html.js.script.page
+++ b/doc/yelp-xsl/C/html.js.script.page
@@ -1,12 +1,114 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.script" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output a 
JavaScript <code>script</code> tag containing local 
content.</desc></info><title>html.js.script</title><p>Output a JavaScript <code>script</code> tag containing 
local content.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="html.js">html.js</code> to output 
JavaScript content. It outputs a <code>script</code> tag and calls <code style="xslt-template" 
xref="html.js.content">html.js.content</code> to output the contents. To force all JavaScript into external 
files, override this template to output a <code>script</code> tag referencing an external file with the 
<code>src</code> attribute, then output the result of <code style="xslt-template" 
xref="html.js.content">html.js.content</code> to that file.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.js.content"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.script">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output a JavaScript <sys>script</sys> tag containing local content.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.js.script</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="html.js">html.js</code> to output JavaScript content. It outputs
+ a <sys>script</sys> tag and calls <code xref="html.js.content">html.js.content</code> to output the 
contents. To force
+ all JavaScript into external files, override this template to output a <sys>script</sys>
+ tag referencing an external file with the <sys>src</sys> attribute, then output the
+ result of <code xref="html.js.content">html.js.content</code> to that file.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.js.content"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.js.syntax.page b/doc/yelp-xsl/C/html.js.syntax.page
index 72f9cc7a..984ffb63 100644
--- a/doc/yelp-xsl/C/html.js.syntax.page
+++ b/doc/yelp-xsl/C/html.js.syntax.page
@@ -1,12 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.syntax" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2016-01-03" status="final"/><desc>Output 
<code>script</code> elements for syntax highlighting.</desc></info><title>html.js.syntax</title><p>Output 
<code>script</code> elements for syntax highlighting.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs HTML <code>script</code> elements to enable syntax highlighting. It only outputs 
if <code style="xslt-param" xref="html.syntax.highlight">html.syntax.highlight</code> is <code>true</code>. 
It outputs one <code>script</code> element to load in <code>highlight.js</code>, and another to initialize 
<code>highlight.js</code> on all <code>code</code> elements with <code>"syntax"</code> in the class value.</p>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="html.syntax.highlight"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.syntax">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output <sys>script</sys> elements for syntax highlighting.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>html.js.syntax</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs HTML <sys>script</sys> elements to enable syntax highlighting.
+ It only outputs if <code xref="html.syntax.highlight">html.syntax.highlight</code> is <sys>true</sys>. It 
outputs one <sys>script</sys>
+ element to load in <sys>highlight.js</sys>, and another to initialize <sys>highlight.js</sys>
+ on all <sys>code</sys> elements with <sys>"syntax"</sys> in the class value.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.js.ui.page b/doc/yelp-xsl/C/html.js.ui.page
index d5488487..76484ccf 100644
--- a/doc/yelp-xsl/C/html.js.ui.page
+++ b/doc/yelp-xsl/C/html.js.ui.page
@@ -1,12 +1,105 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.js.ui" type="topic" style="xslt-template"><info><link 
type="guide" xref="html" group="templates"/><link type="guide" xref="templates" group="html"/><revision 
version="1.0" date="2011-06-17" status="final"/><desc>Output JavaScript for UI 
extensions.</desc></info><title>html.js.ui</title><p>Output JavaScript for UI extensions.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create JavaScript for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs JavaScript that implements certain common UI extensions, such as expandable 
blocks and sections.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.js.ui">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output JavaScript for UI extensions.</desc>
+  <revision version="1.0" date="2011-06-17" status="final"/>
+ </info>
+ <title>html.js.ui</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create JavaScript for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs JavaScript that implements certain common UI extensions,
+ such as expandable blocks and sections.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.lang.attrs.page b/doc/yelp-xsl/C/html.lang.attrs.page
index 2e79cea0..890c65d1 100644
--- a/doc/yelp-xsl/C/html.lang.attrs.page
+++ b/doc/yelp-xsl/C/html.lang.attrs.page
@@ -1,26 +1,134 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.lang.attrs" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="1.0" date="2010-06-10" status="final"/><desc>Output 
<code>lang</code> and <code>dir</code> attributes.</desc></info><title>html.lang.attrs</title><p>Output 
<code>lang</code> and <code>dir</code> attributes.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The current element in the input document.</p>
-    </item>
-    <item>
-      <title><code>parent</code></title>
-      <p>A parent node to take <code style="xslt-param">lang</code> and <code style="xslt-param">dir</code> 
from.</p>
-    </item>
-    <item>
-      <title><code>lang</code></title>
-      <p>The language for <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>dir</code></title>
-      <p>The text directionality for <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs <code>lang</code>, <code>xml:lang</code>, or <code>dir</code> attributes if 
necessary. If <code style="xslt-param">lang</code> is not set, it will be taken from the 
<code>xml:lang</code> or <code>lang</code> attribute of <code style="xslt-param">node</code>. If <code 
style="xslt-param">dir</code> is not set, it will be taken from the <code>its:dir</code> attribute of <code 
style="xslt-param">node</code> or computed based on <code style="xslt-param">lang</code>.</p>
-  <p>The <code style="xslt-param">parent</code> parameter defaults to an empty node set. If it is set to a 
non-empty node set, this template will attempt to get <code style="xslt-param">lang</code> and <code 
style="xslt-param">dir</code> from <code style="xslt-param">parent</code> if they are not set on <code 
style="xslt-param">node</code>. This is occasionally useful when a wrapper element in a source language 
doesn't directly create any output elements.</p>
-  <p>This template outputs either an <code>xml:lang</code> or a <code>lang</code> attribute, depending on 
whether <code style="xslt-param" xref="html.xhtml">html.xhtml</code> is <code>true</code>. It only outputs an 
<code>xml:lang</code> or <code>lang</code> attribute if $lang is non-empty. This template also outputs a 
<code>dir</code> attribute if <code style="xslt-param">dir</code> is non-empty.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="html.xhtml"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.lang.attrs">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output <sys>lang</sys> and <sys>dir</sys> attributes.</desc>
+  <revision version="1.0" date="2010-06-10" status="final"/>
+ </info>
+ <title>html.lang.attrs</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The current element in the input document.</p>
+   </item>
+   <item>
+    <title><code>$parent</code></title>
+    <p>A parent node to take <code>$lang</code> and <code>$dir</code> from.</p>
+   </item>
+   <item>
+    <title><code>$lang</code></title>
+    <p>The language for <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$dir</code></title>
+    <p>The text directionality for <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs <sys>lang</sys>, <sys>xml:lang</sys>, or <sys>dir</sys> attributes if necessary.
+ If <code>$lang</code> is not set, it will be taken from the <sys>xml:lang</sys> or <sys>lang</sys>
+ attribute of <code>$node</code>. If <code>$dir</code> is not set, it will be taken from the 
<sys>its:dir</sys>
+ attribute of <code>$node</code> or computed based on <code>$lang</code>.</p>
+ <p>The <code>$parent</code> parameter defaults to an empty node set. If it is set to a
+ non-empty node set, this template will attempt to get <code>$lang</code> and <code>$dir</code> from
+ <code>$parent</code> if they are not set on <code>$node</code>. This is occasionally useful when a
+ wrapper element in a source language doesn't directly create any output
+ elements.</p>
+ <p>This template outputs either an <sys>xml:lang</sys> or a <sys>lang</sys> attribute, depending
+ on whether <code xref="html.xhtml">html.xhtml</code> is <sys>true</sys>. It only outputs an 
<sys>xml:lang</sys> or <sys>lang</sys>
+ attribute if <code>$lang</code> is non-empty. This template also outputs a <sys>dir</sys> attribute
+ if <code>$dir</code> is non-empty.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.linktrails.empty.page b/doc/yelp-xsl/C/html.linktrails.empty.page
index 4c579927..83e9346c 100644
--- a/doc/yelp-xsl/C/html.linktrails.empty.page
+++ b/doc/yelp-xsl/C/html.linktrails.empty.page
@@ -1,13 +1,108 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.linktrails.empty" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output something when no link trails are present.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.linktrails.empty</title><p>Stub to output 
something when no link trails are present.</p><note><p>This template is a stub. Customizations may override 
it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source element a page is bring created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub. It is called by templates that output link trails when there are no link 
trails to output. Some customizations prepend extra site links to link trails. This template allows them to 
output those links even when no link trails would otherwise be present.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.linktrails.empty">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output something when no link trails are present.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.linktrails.empty</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The source element a page is bring created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub. It is called by templates that output link trails when
+ there are no link trails to output. Some customizations prepend extra site links
+ to link trails. This template allows them to output those links even when no link
+ trails would otherwise be present.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.linktrails.prefix.page b/doc/yelp-xsl/C/html.linktrails.prefix.page
index 86c62398..a6173f4b 100644
--- a/doc/yelp-xsl/C/html.linktrails.prefix.page
+++ b/doc/yelp-xsl/C/html.linktrails.prefix.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.linktrails.prefix" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output extra content before a link trail.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.linktrails.prefix</title><p>Stub to output 
extra content before a link trail.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A source-specific element providing information about the link trail.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub. It is called by templates that output link trails before the normal links are 
output. This template is useful for adding extra site links at the beginning of each link trail.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.linktrails.prefix">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output extra content before a link trail.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.linktrails.prefix</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A source-specific element providing information about the link trail.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub. It is called by templates that output link trails
+ before the normal links are output. This template is useful for adding extra
+ site links at the beginning of each link trail.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.mathml.namespace.page b/doc/yelp-xsl/C/html.mathml.namespace.page
index f2a2d232..f8f80841 100644
--- a/doc/yelp-xsl/C/html.mathml.namespace.page
+++ b/doc/yelp-xsl/C/html.mathml.namespace.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.mathml.namespace" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="3.18" date="2015-05-04" status="final"/><desc>The XML 
namespace for MathML in the output document.</desc></info><title>html.mathml.namespace</title><p>The XML 
namespace for MathML in the output document.</p>
-  
-  
-  <p>This parameter specifies the XML namespace for MathML in output documents. It will be set automatically 
based on the <code style="xslt-param">html.xhtml</code> parameter, either to the MathML namespace namespace, 
or to the empty namespace. Stylesheets can use this parameter when using <code>xsl:element</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.mathml.namespace">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The XML namespace for MathML in the output document.</desc>
+  <revision version="3.18" date="2015-05-04" status="final"/>
+ </info>
+ <title>html.mathml.namespace</title>
+ <p>This parameter specifies the XML namespace for MathML in output documents. It
+ will be set automatically based on the <code xref="html.xhtml">html.xhtml</code> parameter, either to the
+ MathML namespace namespace, or to the empty namespace. Stylesheets can use this
+ parameter when using <sys>xsl:element</sys>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.media.controls.page b/doc/yelp-xsl/C/html.media.controls.page
index 9feb1c68..a559b5e4 100644
--- a/doc/yelp-xsl/C/html.media.controls.page
+++ b/doc/yelp-xsl/C/html.media.controls.page
@@ -1,6 +1,109 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.media.controls" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2016-02-12" status="final"/><desc>Output media 
controls for a video or audio object.</desc></info><title>html.media.controls</title><p>Output media controls 
for a video or audio object.</p>
-  
-  
-  <p>This template outputs HTML containing controls for a media play for audio or video HTML elements. To 
work with the built-in JavaScript binding code, it should be placed immediately after the <code>audio</code> 
or <code>video</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item><item><p><link xref="icons.svg.media.play"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.media.controls">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output media controls for a video or audio object.</desc>
+  <revision version="3.28" date="2016-02-12" status="final"/>
+ </info>
+ <title>html.media.controls</title>
+ <p>This template outputs HTML containing controls for a media play for audio or
+ video HTML elements. To work with the built-in JavaScript binding code, it
+ should be placed immediately after the <sys>audio</sys> or <sys>video</sys> element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="icons.svg.media.pause"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.media.play"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.namespace.page b/doc/yelp-xsl/C/html.namespace.page
index 3524de5f..4db33a8c 100644
--- a/doc/yelp-xsl/C/html.namespace.page
+++ b/doc/yelp-xsl/C/html.namespace.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.namespace" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-05-25" status="final"/><desc>The XML namespace for the output 
document.</desc></info><title>html.namespace</title><p>The XML namespace for the output document.</p>
-  
-  
-  <p>This parameter specifies the XML namespace of all output documents. It will be set automatically based 
on the <code style="xslt-param">html.xhtml</code> parameter, either to the XHTML namespace, or to the empty 
namespace. Stylesheets can use this parameter when using <code>xsl:element</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.namespace">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The XML namespace for the output document.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.namespace</title>
+ <p>This parameter specifies the XML namespace of all output documents. It will be
+ set automatically based on the <code xref="html.xhtml">html.xhtml</code> parameter, either to the XHTML
+ namespace, or to the empty namespace. Stylesheets can use this parameter when
+ using <sys>xsl:element</sys>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.output.after.mode.page b/doc/yelp-xsl/C/html.output.after.mode.page
index 561a35d3..508f64f3 100644
--- a/doc/yelp-xsl/C/html.output.after.mode.page
+++ b/doc/yelp-xsl/C/html.output.after.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.output.after.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="1.0" date="2010-05-26" status="final"/><desc>Process an element after its 
content are output.</desc></info><title>html.output.after.mode</title><p>Process an element after its content 
are output.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.output">html.output</code> after 
<code>exsl:document</code> has finished. It can be used to create further output files without blocking the 
output of parent elements.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.output.after.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Process an element after its content are output.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>html.output.after.mode</title>
+ <p>This mode is called by <code xref="html.output">html.output</code> after <sys>exsl:document</sys> has 
finished. It
+ can be used to create further output files without blocking the output of
+ parent elements.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.output.page b/doc/yelp-xsl/C/html.output.page
index 16f306c5..46dfd87b 100644
--- a/doc/yelp-xsl/C/html.output.page
+++ b/doc/yelp-xsl/C/html.output.page
@@ -1,19 +1,145 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.output" type="topic" style="xslt-template"><info><link 
type="guide" xref="html" group="templates"/><link type="guide" xref="templates" group="html"/><revision 
version="1.0" date="2010-05-26" status="final"/><desc>Create an HTML output 
file.</desc></info><title>html.output</title><p>Create an HTML output file.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create an output file for.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The output filename.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates an HTML output file for the source element <code style="xslt-param">node</code>. 
It uses <code>exsl:document</code> to output the file, and calls <code style="xslt-template" 
xref="html.page">html.page</code> with the <code style="xslt-param">node</code> parameter to output the 
actual HTML contents.</p>
-  <p>If <code style="xslt-param">href</code> is not provided, this template will attempt to generate a base 
filename and append <code style="xslt-param" xref="html.extension">html.extension</code> to it. The base 
filename is generated as follows: If an <code>xml:id</code> attribute is present, it is used; otherwise, if 
an <code>id</code> attribute is present, it is uses; otherwise, if <code style="xslt-param">node</code> is 
the root element, <code style="xslt-param" xref="html.basename">html.basename</code> is used; otherwise, 
<code>generate-id()</code> is called.</p>
-  <p>This template prepends <code style="xslt-param" xref="html.output.prefix">html.output.prefix</code> to 
the value of <code style="xslt-param">href</code> when it calls <code>exsl:document</code>, regardless of 
whether <code style="xslt-param">href</code> was passed in or generated automatically.</p>
-  <p>After calling <code>exsl:document</code>, this template calls the <code style="xslt-mode" 
xref="html.output.after.mode">html.output.after.mode</code> mode on <code style="xslt-param">node</code>. 
Importing stylesheets that create multiple output files can use this to process output files without blocking 
earlier output.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link xref="html.page"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link 
xref="html.output.after.mode"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.basename"/></p></item><item><p><link 
xref="html.extension"/></p></item><item><p><link xref="html.xhtml"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.output">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Create an HTML output file.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>html.output</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create an output file for.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The output filename.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates an HTML output file for the source element <code>$node</code>. It
+ uses <sys>exsl:document</sys> to output the file, and calls <code xref="html.page">html.page</code> with the
+ <code>$node</code> parameter to output the actual HTML contents.</p>
+ <p>If <code>$href</code> is not provided, this template will attempt to generate a base
+ filename and append <code xref="html.extension">html.extension</code> to it. The base filename is generated
+ as follows:</p>
+ <list>
+  <item>
+   <p>If an <sys>xml:id</sys> attribute is present, it is used.</p>
+  </item>
+  <item>
+   <p>Otherwise, if an <sys>id</sys> attribute is present, it is used.</p>
+  </item>
+  <item>
+   <p>Otherwise, if <code>$node</code> is the root element, <code xref="html.basename">html.basename</code> 
is used.</p>
+  </item>
+  <item>
+   <p>Otherwise, <sys>generate-id()</sys> is called.</p>
+  </item>
+ </list>
+ <p>This template prepends <code xref="html.output.prefix">html.output.prefix</code> to the value of 
<code>$href</code> when
+ it calls <sys>exsl:document</sys>, regardless of whether <code>$href</code> was passed in or
+ generated automatically.</p>
+ <p>After calling <sys>exsl:document</sys>, this template calls the <code 
xref="html.output.after.mode">html.output.after.mode</code>
+ mode on <code>$node</code>. Importing stylesheets that create multiple output files can
+ use this to process output files without blocking earlier output.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.page"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.output.after.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.output.prefix.page b/doc/yelp-xsl/C/html.output.prefix.page
index 24271b36..f3c146da 100644
--- a/doc/yelp-xsl/C/html.output.prefix.page
+++ b/doc/yelp-xsl/C/html.output.prefix.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.output.prefix" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="3.28" date="2017-05-24" status="final"/><desc>An optional 
path prefix for files output with <code style="xslt-template" 
xref="html.output">html.output</code>.</desc></info><title>html.output.prefix</title><p>An optional path 
prefix for files output with <code style="xslt-template" xref="html.output">html.output</code>.</p>
-  
-  
-  <p>This parameter allows you to specify an prefix to place before the output path used by <code 
style="xslt-template" xref="html.output">html.output</code> when creating files. You can use this to override 
the output directory. Make sure you include a trailing slash, unless you want to prefix the base file name 
itself.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.output.prefix">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>An optional path prefix for files output with <code xref="html.output">html.output</code>.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.output.prefix</title>
+ <p>This parameter allows you to specify an prefix to place before the output path
+ used by <code xref="html.output">html.output</code> when creating files. You can use this to override the
+ output directory. Make sure you include a trailing slash, unless you want to
+ prefix the base file name itself.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.output.prefix</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.page b/doc/yelp-xsl/C/html.page
index e4078053..5f9d5db6 100644
--- a/doc/yelp-xsl/C/html.page
+++ b/doc/yelp-xsl/C/html.page
@@ -1,2 +1,352 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="html"/><revision version="1.0" date="2010-05-26" status="final"/><link 
type="xslt-requires" xref="l10n"/><link type="xslt-requires" xref="color"/><link type="xslt-requires" 
xref="icons"/><link type="xslt-defines-template" xref="html.output"/><link type="xslt-defines-template" 
xref="html.page"/><link type="xslt-defines-template" xref="html.top.custom"/><link 
type="xslt-defines-template" xref="html.bottom.custom"/><link type="xslt-defines-template" 
xref="html.sidebar"/><link type="xslt-defines-template" xref="_html.sidebar.sidebar"/><link 
type="xslt-defines-template" xref="html.sidebar.contents"/><link type="xslt-defines-template" 
xref="html.sidebar.sections"/><link type="xslt-defines-template" xref="html.sidebar.custom"/><link 
type="xslt-defines-template" xref="html.header.custom"/><link type="xslt-defines-template" xref="html.footer.c
 ustom"/>
 <link type="xslt-defines-template" xref="html.head.top.custom"/><link type="xslt-defines-template" 
xref="html.head.custom"/><link type="xslt-defines-template" xref="html.linktrails.empty"/><link 
type="xslt-defines-template" xref="html.linktrails.prefix"/><link type="xslt-defines-template" 
xref="html.class.attr"/><link type="xslt-defines-template" xref="html.content.pre"/><link 
type="xslt-defines-template" xref="html.content.pre.custom"/><link type="xslt-defines-template" 
xref="html.content.post"/><link type="xslt-defines-template" xref="html.content.post.custom"/><link 
type="xslt-defines-template" xref="html.css"/><link type="xslt-defines-template" 
xref="html.css.content"/><link type="xslt-defines-template" xref="html.css.core"/><link 
type="xslt-defines-template" xref="html.css.elements"/><link type="xslt-defines-template" 
xref="html.css.syntax"/><link type="xslt-defines-template" xref="html.css.custom"/><link 
type="xslt-defines-template" xref="html.js"/><link type="xslt-def
 ines-tem
 plate" xref="html.js.mathjax"/><link type="xslt-defines-template" xref="html.js.script"/><link 
type="xslt-defines-template" xref="html.js.content"/><link type="xslt-defines-template" 
xref="html.js.core"/><link type="xslt-defines-template" xref="html.js.ui"/><link type="xslt-defines-template" 
xref="html.js.media"/><link type="xslt-defines-template" xref="html.js.syntax"/><link 
type="xslt-defines-template" xref="html.js.custom"/><link type="xslt-defines-template" 
xref="html.js.content.custom"/><link type="xslt-defines-template" xref="html.lang.attrs"/><link 
type="xslt-defines-template" xref="html.syntax.class"/><link type="xslt-defines-template" 
xref="html.media.controls"/><link type="xslt-implements-mode" xref="html.output.after.mode"/><link 
type="xslt-implements-mode" xref="html.title.mode"/><link type="xslt-implements-mode" 
xref="html.body.attr.mode"/><link type="xslt-implements-mode" xref="html.sidebar.mode"/><link 
type="xslt-implements-mode" xref="html.sidebar.contents.mo
 de"/><li
 nk type="xslt-implements-mode" xref="html.sidebar.sections.mode"/><link type="xslt-implements-mode" 
xref="html.header.mode"/><link type="xslt-implements-mode" xref="html.footer.mode"/><link 
type="xslt-implements-mode" xref="html.body.mode"/><link type="xslt-implements-mode" 
xref="html.class.attr.mode"/><link type="xslt-implements-mode" xref="html.content.pre.mode"/><link 
type="xslt-implements-mode" xref="html.content.post.mode"/><link type="xslt-implements-mode" 
xref="html.css.mode"/><link type="xslt-implements-mode" xref="html.js.mode"/><link 
type="xslt-implements-mode" xref="html.syntax.class.mode"/><link type="xslt-defines-param" 
xref="html.basename"/><link type="xslt-defines-param" xref="html.xhtml"/><link type="xslt-defines-param" 
xref="html.namespace"/><link type="xslt-defines-param" xref="html.extension"/><link type="xslt-defines-param" 
xref="html.css.root"/><link type="xslt-defines-param" xref="html.js.root"/><link type="xslt-defines-param" 
xref="html.syntax.highligh
 t"/><lin
 k type="xslt-defines-param" xref="html.output.prefix"/><link type="xslt-defines-param" 
xref="html.sidebar.left"/><link type="xslt-defines-param" xref="html.sidebar.right"/></info><title>HTML 
Output</title><p>Common utilities and CSS for transformations to HTML.</p><p>This stylesheet contains common 
templates for creating HTML output. The <code style="xslt-template" xref="html.output">html.output</code> 
template creates an output file for a node in the source XML document, calling <code style="xslt-template" 
xref="html.page">html.page</code> to create the actual output. Output files can be either XHTML or HTML, 
depending on the <code style="xslt-param" xref="html.xhtml">html.xhtml</code> parameter.</p><p>This 
stylesheet matches <code>/</code> and calls <code style="xslt-template" xref="html.output">html.output</code> 
on the root XML element. This works for most input formats. If you need to do something different, you should 
override the match for <code>/</code>.</p><links ty
 pe="topi
 c" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Requires 
Stylesheets</title><item><p><link xref="color"/></p></item><item><p><link 
xref="icons"/></p></item><item><p><link xref="l10n"/></p></item></list><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.direction"/></p></item><item><p><link 
xref="l10n.align.start"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="color.bg"/></p></item><item><p><link 
xref="color.bg.blue"/></p></item><item><p><link xref="color.bg.dark"/></p></it
 em><item
<p><link xref="color.bg.gray"/></p></item><item><p><link xref="color.bg.green"/></p></item><item><p><link 
xref="color.bg.red"/></p></item><item><p><link xref="color.bg.yellow"/></p></item><item><p><link 
xref="color.blue"/></p></item><item><p><link xref="color.fg"/></p></item><item><p><link 
xref="color.fg.blue"/></p></item><item><p><link xref="color.fg.dark"/></p></item><item><p><link 
xref="color.fg.gray"/></p></item><item><p><link xref="color.fg.green"/></p></item><item><p><link 
xref="color.fg.orange"/></p></item><item><p><link xref="color.fg.purple"/></p></item><item><p><link 
xref="color.fg.red"/></p></item><item><p><link xref="color.fg.yellow"/></p></item><item><p><link 
xref="color.gray"/></p></item><item><p><link xref="color.red"/></p></item><item><p><link 
xref="color.yellow"/></p></item><item><p><link xref="html.basename"/></p></item><item><p><link 
xref="html.extension"/></p></item><item><p><link xref="html.sidebar.left"/></p></item><item><p><link 
xref="html.sidebar.rig
 ht"/></p
</item><item><p><link xref="html.syntax.highlight"/></p></item><item><p><link 
xref="html.xhtml"/></p></item><item><p><link 
xref="icons.size.quote"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>/</code></p></td></tr><tr><td><p><link

xref="html.body.attr.mode">html.body.attr.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
xref="html.body.mode">html.body.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.class.attr.mode">html.class.attr.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="html.content.post.mode">html.content.post.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="html.content.pre.mode">html.content.pre.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
xref="html.css.mode">html.css.mode</link></p></td><td><p><code>*</c
 ode></p>
 </td></tr><tr><td><p><link 
xref="html.footer.mode">html.footer.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.header.mode">html.header.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.js.mode">html.js.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.output.after.mode">html.output.after.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 
xref="html.sidebar.contents.mode">html.sidebar.contents.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 xref="html.sidebar.mode">html.sidebar.mode</link></p></td><td><p><code>token[. = 
'blank']</code></p></td></tr><tr><td><p><link 
xref="html.sidebar.mode">html.sidebar.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="html.sidebar.mode">html.sidebar.mode</link></p></td><td><p><code>token[. = 
'contents']</code></p></td></tr><tr><td><p><link xref="html.sidebar.mode">html.s
 idebar.m
 ode</link></p></td><td><p><code>token[. = 'sections']</code></p></td></tr><tr><td><p><link 
xref="html.sidebar.sections.mode">html.sidebar.sections.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 
xref="html.syntax.class.mode">html.syntax.class.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 
xref="html.title.mode">html.title.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="html">
+ <info>
+  <link type="guide" xref="stylesheets" group="html"/>
+  <desc>Common utilities and CSS for transformations to HTML.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>HTML Output</title>
+ <p>This stylesheet contains common templates for creating HTML output. The
+ <code xref="html.output">html.output</code> template creates an output file for a node in the source XML
+ document, calling <code xref="html.page">html.page</code> to create the actual output. Output files can
+ be either XHTML or HTML, depending on the <code xref="html.xhtml">html.xhtml</code> parameter.</p>
+ <p>This stylesheet matches <sys>/</sys> and calls <code xref="html.output">html.output</code> on the root 
XML element.
+ This works for most input formats. If you need to do something different, you
+ should override the match for <sys>/</sys>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="icons.svg.media.pause"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.media.play"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.body.attr.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.body.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.class.attr.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.post.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.pre.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.css.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.footer.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.header.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.output.after.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.contents.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.sections.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.class.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.title.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>/</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.body.attr.mode">html.body.attr.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.body.mode">html.body.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.class.attr.mode">html.class.attr.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.content.post.mode">html.content.post.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.content.pre.mode">html.content.pre.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.css.mode">html.css.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.footer.mode">html.footer.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.header.mode">html.header.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.js.mode">html.js.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.output.after.mode">html.output.after.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.mode">html.sidebar.mode</code></p>
+    </td>
+    <td>
+     <p><code>token[. = 'blank']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.mode">html.sidebar.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.mode">html.sidebar.mode</code></p>
+    </td>
+    <td>
+     <p><code>token[. = 'contents']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.mode">html.sidebar.mode</code></p>
+    </td>
+    <td>
+     <p><code>token[. = 'sections']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.syntax.class.mode">html.syntax.class.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.title.mode">html.title.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/html.page.page b/doc/yelp-xsl/C/html.page.page
index 1e5ce99a..bf74e69e 100644
--- a/doc/yelp-xsl/C/html.page.page
+++ b/doc/yelp-xsl/C/html.page.page
@@ -1,15 +1,194 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.page" type="topic" style="xslt-template"><info><link 
type="guide" xref="html" group="templates"/><link type="guide" xref="templates" group="html"/><revision 
version="3.28" date="2017-08-04" status="final"/><desc>Create an HTML 
document.</desc></info><title>html.page</title><p>Create an HTML document.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node to create HTML for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates the actual HTML output for <code style="xslt-param">node</code>. It outputs 
top-level elements and container divs, and calls various templates and modes to output the inner content. 
Importing stylesheets should implement at least <code style="xslt-mode" 
xref="html.title.mode">html.title.mode</code> and <code style="xslt-mode" 
xref="html.body.mode">html.body.mode</code> for any elements that could be passed as <code 
style="xslt-param">node</code> to this template. Importing stylesheets should also implement <code 
style="xslt-mode" xref="html.header.mode">html.header.mode</code> to output link trails and <code 
style="xslt-mode" xref="html.footer.mode">html.footer.mode</code> to output credits and other page 
information.</p>
-  <p>This template outputs the HTML <code>body</code> element, which takes it attributes from two sources. 
First, it calls <code style="xslt-template" xref="html.lang.attrs">html.lang.attrs</code>, which 
automatically outputs correct <code>lang</code>, <code>xml:lang</code>, and <code>dir</code> attributes. It 
then calls <code style="xslt-mode" xref="html.body.attr.mode">html.body.attr.mode</code> on <code 
style="xslt-param">node</code> for additional attributes.</p>
-  <p>This template also calls a number of stub templates that can be overridden by extension stylesheets. 
Override the <code style="xslt-template" xref="html.head.custom">html.head.custom</code> template to put 
custom content at the end of the HTML <code>head</code> element. Override the <code style="xslt-template" 
xref="html.head.top.custom">html.head.top.custom</code> template to put custom content at the beginning of 
the HTML <code>head</code> element. Override the <code style="xslt-template" 
xref="html.top.custom">html.top.custom</code> and <code style="xslt-template" 
xref="html.bottom.custom">html.bottom.custom</code> templates to add site-specific content at the top and 
bottom of the page. Override the <code style="xslt-template" 
xref="html.header.custom">html.header.custom</code> and <code style="xslt-template" 
xref="html.footer.custom">html.footer.custom</code> templates to provide additional content directoy above 
and below the main content. Use the <code style="xsl
 t-param"
  xref="html.sidebar.left">html.sidebar.left</code> and <code style="xslt-param" 
xref="html.sidebar.right">html.sidebar.right</code> parameters to create stock sidebars, or override <code 
style="xslt-template" xref="html.sidebar.custom">html.sidebar.custom</code> to create your own.</p>
-  <p>This template also calls <code style="xslt-template" xref="html.css">html.css</code> and <code 
style="xslt-template" xref="html.js">html.js</code> to output CSS and JavaScript elements. See those 
templates for further extension points.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.head.top.custom"/></p></item><item><p><link xref="html.sidebar"/></p></item><item><p><link 
xref="html.header.custom"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.body.attr.mode"/></p></item><item><p><link xref="html.body.mode"/></p></item><item><p><link 
xref="html.footer.mode"/></p></item><item><p><link xref="html.header.mode"/></p></item><item><p><link 
xref="html.title.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.page">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Create an HTML document.</desc>
+  <revision version="3.28" date="2017-08-04" status="final"/>
+ </info>
+ <title>html.page</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node to create HTML for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates the actual HTML output for <code>$node</code>. It outputs top-level
+ elements and container divs, and calls various templates and modes to output
+ the inner content. Importing stylesheets should implement at least
+ <code xref="html.title.mode">html.title.mode</code> and <code xref="html.body.mode">html.body.mode</code> 
for any elements that could be passed
+ as <code>$node</code> to this template. Importing stylesheets should also implement
+ <code xref="html.header.mode">html.header.mode</code> to output link trails and <code 
xref="html.footer.mode">html.footer.mode</code> to output
+ credits and other page information.</p>
+ <p>This template outputs the HTML <sys>body</sys> element, which takes it attributes
+ from two sources. First, it calls <code xref="html.lang.attrs">html.lang.attrs</code>, which automatically
+ outputs correct <sys>lang</sys>, <sys>xml:lang</sys>, and <sys>dir</sys> attributes. It then calls
+ <code xref="html.body.attr.mode">html.body.attr.mode</code> on <code>$node</code> for additional 
attributes.</p>
+ <p>This template also calls a number of stub templates that can be overridden
+ by extension stylesheets.</p>
+ <list>
+  <item>
+   <p>Override the <code xref="html.head.custom">html.head.custom</code> template to put custom content at 
the end
+   of the HTML <sys>head</sys> element.</p>
+  </item>
+  <item>
+   <p>Override the <code xref="html.head.top.custom">html.head.top.custom</code> template to put custom 
content at the
+   beginning of the HTML <sys>head</sys> element.</p>
+  </item>
+  <item>
+   <p>Override the <code xref="html.top.custom">html.top.custom</code> and <code 
xref="html.bottom.custom">html.bottom.custom</code> templates to add
+   site-specific content at the top and bottom of the page.</p>
+  </item>
+  <item>
+   <p>Override the <code xref="html.header.custom">html.header.custom</code> and <code 
xref="html.footer.custom">html.footer.custom</code> templates to
+   provide additional content directoy above and below the main content.</p>
+  </item>
+  <item>
+   <p>Use the <code xref="html.sidebar.left">html.sidebar.left</code> and <code 
xref="html.sidebar.right">html.sidebar.right</code> parameters to create
+   stock sidebars, or override <code xref="html.sidebar.custom">html.sidebar.custom</code> to create your 
own.</p>
+  </item>
+ </list>
+ <p>This template also calls <code xref="html.css">html.css</code> and <code xref="html.js">html.js</code> 
to output CSS and JavaScript
+ elements. See those templates for further extension points.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.bottom.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.css"/></p>
+  </item>
+  <item>
+   <p><link xref="html.footer.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.head.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.head.top.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.header.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.js"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="html.top.custom"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.body.attr.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.body.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.footer.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.header.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="html.title.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.sidebar.contents.mode.page b/doc/yelp-xsl/C/html.sidebar.contents.mode.page
index 2ca27948..0e28581d 100644
--- a/doc/yelp-xsl/C/html.sidebar.contents.mode.page
+++ b/doc/yelp-xsl/C/html.sidebar.contents.mode.page
@@ -1,12 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.contents.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output a table of contents 
for a sidebar.</desc></info><title>html.sidebar.contents.mode</title><p>Output a table of contents for a 
sidebar.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>side</code></title>
-      <p>Which sidebar, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is called by <code style="xslt-mode" 
xref="html.sidebar.contents">html.sidebar.contents</code> to allow different input formats to implement a 
table of contents for a sidebar.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="html.sidebar.contents.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output a table of contents for a sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.contents.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$side</code></title>
+    <p>Which sidebar, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is called by <code xref="html.sidebar.contents">html.sidebar.contents</code> to allow 
different input
+ formats to implement a table of contents for a sidebar.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.contents.page b/doc/yelp-xsl/C/html.sidebar.contents.page
index d3d6cd33..cf329eaa 100644
--- a/doc/yelp-xsl/C/html.sidebar.contents.page
+++ b/doc/yelp-xsl/C/html.sidebar.contents.page
@@ -1,17 +1,118 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.contents" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output a 
table of contents for a sidebar.</desc></info><title>html.sidebar.contents</title><p>Output a table of 
contents for a sidebar.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a sidebar is being created for.</p>
-    </item>
-    <item>
-      <title><code>side</code></title>
-      <p>Which sidebar, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates a table of contents for a sidebar. It applies <code style="xslt-mode" 
xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code> to <code style="xslt-param">node</code>, 
passing <code style="xslt-param">side</code> as a parameter, to allow individual input formats to implement 
tables of contents.</p>
-  <p>This named template also implements <code style="xslt-mode" 
xref="html.sidebar.mode">html.sidebar.mode</code> on the <code>contents</code> token. See <code 
style="xslt-template" xref="html.sidebar">html.sidebar</code> for more information on how sidebars are 
created.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.sidebar.contents.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.sidebar.contents">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output a table of contents for a sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.contents</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a sidebar is being created for.</p>
+   </item>
+   <item>
+    <title><code>$side</code></title>
+    <p>Which sidebar, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates a table of contents for a sidebar. It applies
+ <code xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code> to <code>$node</code>, passing 
<code>$side</code> as a parameter, to
+ allow individual input formats to implement tables of contents.</p>
+ <p>This named template also implements <code xref="html.sidebar.mode">html.sidebar.mode</code> on the 
<sys>contents</sys>
+ token. See <code xref="html.sidebar">html.sidebar</code> for more information on how sidebars are 
created.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.sidebar.contents.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.sidebar.custom.page b/doc/yelp-xsl/C/html.sidebar.custom.page
index 0c5a1ee9..1f438ccb 100644
--- a/doc/yelp-xsl/C/html.sidebar.custom.page
+++ b/doc/yelp-xsl/C/html.sidebar.custom.page
@@ -1,14 +1,113 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output custom sidebar content.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.sidebar.custom</title><p>Stub to output 
custom sidebar content.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. It is 
called inside the <code>main</code> element, before the <code>div.page</code> element. The <code>main</code> 
element uses a horizontal flexbox by default. You can override this template to provide sidebar content. Note 
that there is only one extension point for sidebar content, and it is always placed before the main content 
in document order. To create a sidebar on the right, output the element here, then adjust the 
<code>order</code> CSS property for that element to display it after the <code>main</code> element.</p>
-  <p>This template is intended for completely custom sidebars. You can also use <code style="xslt-template" 
xref="html.sidebar">html.sidebar</code> to output sidebars with stock components.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.sidebar.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output custom sidebar content.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.sidebar.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. It is called inside the 
<sys>main</sys>
+ element, before the <sys>div.page</sys> element. The <sys>main</sys> element uses a horizontal
+ flexbox by default. You can override this template to provide sidebar content.
+ Note that there is only one extension point for sidebar content, and it is
+ always placed before the main content in document order. To create a sidebar
+ on the right, output the element here, then adjust the <sys>order</sys> CSS property
+ for that element to display it after the <sys>main</sys> element.</p>
+ <p>This template is intended for completely custom sidebars. You can also use
+ <code xref="html.sidebar">html.sidebar</code> to output sidebars with stock components.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.left.page b/doc/yelp-xsl/C/html.sidebar.left.page
index f808db3c..14d0b81c 100644
--- a/doc/yelp-xsl/C/html.sidebar.left.page
+++ b/doc/yelp-xsl/C/html.sidebar.left.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.left" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>List of 
components to add to the left sidebar.</desc></info><title>html.sidebar.left</title><p>List of components to 
add to the left sidebar.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens that specify which components to add to the stock 
left sidebar. These stylesheets recognize certain tokens, and you can add your own with <code 
style="xslt-mode" xref="html.sidebar.mode">html.sidebar.mode</code>. See <code style="xslt-template" 
xref="html.sidebar">html.sidebar</code> for further details.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.sidebar.left">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>List of components to add to the left sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.left</title>
+ <p>This parameter takes a space-separated list of tokens that specify which
+ components to add to the stock left sidebar. These stylesheets recognize
+ certain tokens, and you can add your own with <code xref="html.sidebar.mode">html.sidebar.mode</code>. See
+ <code xref="html.sidebar">html.sidebar</code> for further details.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.sidebar.left</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.mode.page b/doc/yelp-xsl/C/html.sidebar.mode.page
index 0076e3de..3290ebd4 100644
--- a/doc/yelp-xsl/C/html.sidebar.mode.page
+++ b/doc/yelp-xsl/C/html.sidebar.mode.page
@@ -1,16 +1,26 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output a sidebar compenent 
for a token.</desc></info><title>html.sidebar.mode</title><p>Output a sidebar compenent for a token.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a sidebar is being created for.</p>
-    </item>
-    <item>
-      <title><code>side</code></title>
-      <p>Which sidebar, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is called by <code style="xslt-template" xref="html.sidebar">html.sidebar</code> for each 
sidebar compenent in each of <code style="xslt-param" xref="html.sidebar.left">html.sidebar.left</code> and 
<code style="xslt-param" xref="html.sidebar.right">html.sidebar.right</code>. See <code style="xslt-template" 
xref="html.sidebar">html.sidebar</code> for full details.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.sidebar.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output a sidebar compenent for a token.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a sidebar is being created for.</p>
+   </item>
+   <item>
+    <title><code>$side</code></title>
+    <p>Which sidebar, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is called by <code xref="html.sidebar">html.sidebar</code> for each sidebar compenent in each 
of
+ <code xref="html.sidebar.left">html.sidebar.left</code> and <code 
xref="html.sidebar.right">html.sidebar.right</code>. See <code xref="html.sidebar">html.sidebar</code> for 
full
+ details.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.page b/doc/yelp-xsl/C/html.sidebar.page
index 19c2aacb..09d16d2b 100644
--- a/doc/yelp-xsl/C/html.sidebar.page
+++ b/doc/yelp-xsl/C/html.sidebar.page
@@ -1,16 +1,143 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output 
stock sidebars.</desc></info><title>html.sidebar</title><p>Output stock sidebars.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a sidebar is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This templates outputs left and right sidebars according to the components listed in <code 
style="xslt-param" xref="html.sidebar.left">html.sidebar.left</code> and <code style="xslt-param" 
xref="html.sidebar.right">html.sidebar.right</code>. It only outputs each sidebar if the corresponding 
parameters is not empty or the string <code>none</code>.</p>
-  <p>This template is called inside the <code>main</code> element, before the <code>div.page</code> element, 
and before <code style="xslt-template" xref="html.sidebar.custom">html.sidebar.custom</code>. Note that even 
the right sidebar is placed before the <code>div.page</code> element. It is placed on the right using flexbox 
item reordering.</p>
-  <p>To actually output the sidebar components, this template splits each parameter on whitespace using the 
EXSTL <code>str:split</code> function. It then applies the mode <code style="xslt-mode" 
xref="html.sidebar.mode">html.sidebar.mode</code> to each token, passing <code style="xslt-param">node</code> 
and the sidebar side as parameters. Extension stylesheets can add their own sidebar components by 
implementing that mode and matching a pattern like <code>token[. = 'name-of-token']</code>. You will then be 
able to use <code>name-of-token</code> in <code style="xslt-param" 
xref="html.sidebar.left">html.sidebar.left</code> or <code style="xslt-param" 
xref="html.sidebar.right">html.sidebar.right</code>.</p>
-  <p>This stylesheet recognizes four tokens: <code>contents</code> and <code>sections</code>, and the 
special tokens <code>none</code> and <code>blank</code>. The <code>contents</code> token provides a table of 
contents for the entire document. It is handled by the <code style="xslt-template" 
xref="html.sidebar.contents">html.sidebar.contents</code> template, which uses the <code style="xslt-mode" 
xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code> mode to allow different input formats to 
implement it. The <code>sections</code> token lists sections on the current page. It is handled by the <code 
style="xslt-template" xref="html.sidebar.section">html.sidebar.section</code> template, which uses the <code 
style="xslt-mode" xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code> mode to allow different 
input formats to implement it.</p>
-  <p>You can use the <code>none</code> token on its own, instead of the empty string, to completely turn off 
either sidebar. Use the <code>blank</code> token to output a sidebar without adding any components to it. 
This is useful, for example, to keep consistent margins. If an empty sidebar is output from the 
<code>blank</code> token, it will also have the CSS class <code>sidebar-blank</code> so you can style it 
differently.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="_html.sidebar.sidebar"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.sidebar.left"/></p></item><item><p><link 
xref="html.sidebar.right"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.sidebar">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output stock sidebars.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a sidebar is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This templates outputs left and right sidebars according to the components
+ listed in <code xref="html.sidebar.left">html.sidebar.left</code> and <code 
xref="html.sidebar.right">html.sidebar.right</code>. It only outputs each
+ sidebar if the corresponding parameters is not empty or the string <sys>none</sys>.</p>
+ <p>This template is called inside the <sys>main</sys> element, before the <sys>div.page</sys>
+ element, and before <code xref="html.sidebar.custom">html.sidebar.custom</code>. Note that even the right 
sidebar
+ is placed before the <sys>div.page</sys> element. It is placed on the right using
+ flexbox item reordering.</p>
+ <p>To actually output the sidebar components, this template splits each parameter
+ on whitespace using the EXSLT <sys>str:split</sys> function. It then applies the mode
+ <code xref="html.sidebar.mode">html.sidebar.mode</code> to each token, passing <code>$node</code> and the 
sidebar side as
+ parameters. Extension stylesheets can add their own sidebar components by
+ implementing that mode and matching a pattern like</p>
+ <code>token[. = 'name-of-token']</code>
+ <p>You will then be able to use <sys>name-of-token</sys> in <code 
xref="html.sidebar.left">html.sidebar.left</code> or
+ <code xref="html.sidebar.right">html.sidebar.right</code>.</p>
+ <p>This stylesheet recognizes four tokens: <sys>contents</sys> and <sys>sections</sys>, and the
+ special tokens <sys>none</sys> and <sys>blank</sys>.</p>
+ <list>
+  <item>
+   <p>The <sys>contents</sys> token provides a table of contents for the entire document.
+   It is handled by the <code xref="html.sidebar.contents">html.sidebar.contents</code> template, which uses 
the
+   <code xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code> mode to allow different input 
formats to
+   implement it.</p>
+  </item>
+  <item>
+   <p>The <sys>sections</sys> token lists sections on the current page. It is handled by the
+   html.sidebar.section} template, which uses the <code 
xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code>
+   mode to allow different input formats to implement it.</p>
+  </item>
+  <item>
+   <p>Use the <sys>none</sys> token on its own, instead of the empty string, to completely
+   turn off either sidebar.</p>
+  </item>
+  <item>
+   <p>Use the <sys>blank</sys> token to output a sidebar without adding any components to
+   it. This is useful, for example, to keep consistent margins. If an empty
+   sidebar is output from the <sys>blank</sys> token, it will also have the CSS class
+   <sys>sidebar-blank</sys> so you can style it differently.</p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.sidebar.right.page b/doc/yelp-xsl/C/html.sidebar.right.page
index ce23d3ca..6bba9e77 100644
--- a/doc/yelp-xsl/C/html.sidebar.right.page
+++ b/doc/yelp-xsl/C/html.sidebar.right.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.right" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>List of 
components to add to the right sidebar.</desc></info><title>html.sidebar.right</title><p>List of components 
to add to the right sidebar.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens that specify which components to add to the stock 
right sidebar. These stylesheets recognize certain tokens, and you can add your own with <code 
style="xslt-mode" xref="html.sidebar.mode">html.sidebar.mode</code>. See <code style="xslt-template" 
xref="html.sidebar">html.sidebar</code> for further details.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.sidebar.right">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>List of components to add to the right sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.right</title>
+ <p>This parameter takes a space-separated list of tokens that specify which
+ components to add to the stock right sidebar. These stylesheets recognize
+ certain tokens, and you can add your own with <code xref="html.sidebar.mode">html.sidebar.mode</code>. See
+ <code xref="html.sidebar">html.sidebar</code> for further details.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.sidebar.right</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.sections.mode.page b/doc/yelp-xsl/C/html.sidebar.sections.mode.page
index 81ae4251..112f61a4 100644
--- a/doc/yelp-xsl/C/html.sidebar.sections.mode.page
+++ b/doc/yelp-xsl/C/html.sidebar.sections.mode.page
@@ -1,12 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.sections.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output a list of sections 
for a sidebar.</desc></info><title>html.sidebar.sections.mode</title><p>Output a list of sections for a 
sidebar.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>side</code></title>
-      <p>Which sidebar, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is called by <code style="xslt-mode" 
xref="html.sidebar.sections">html.sidebar.sections</code> to allow different input formats to implement a 
sections list for a sidebar.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="html.sidebar.sections.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output a list of sections for a sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.sections.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$side</code></title>
+    <p>Which sidebar, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is called by <code xref="html.sidebar.sections">html.sidebar.sections</code> to allow 
different input
+ formats to implement a sections list for a sidebar.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.sidebar.sections.page b/doc/yelp-xsl/C/html.sidebar.sections.page
index 021003f1..5a336e62 100644
--- a/doc/yelp-xsl/C/html.sidebar.sections.page
+++ b/doc/yelp-xsl/C/html.sidebar.sections.page
@@ -1,17 +1,118 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.sidebar.sections" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.30" date="2018-06-10" status="candidate"/><desc>Output a 
list of sections for a sidebar.</desc></info><title>html.sidebar.sections</title><p>Output a list of sections 
for a sidebar.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a sidebar is being created for.</p>
-    </item>
-    <item>
-      <title><code>side</code></title>
-      <p>Which sidebar, either <code>left</code> or <code>right</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template creates a list of sections on the current page for a sidebar. It applies <code 
style="xslt-mode" xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code> to <code 
style="xslt-param">node</code>, passing <code style="xslt-param">side</code> as a parameter, to allow 
individual input formats to implement sections lists.</p>
-  <p>This named template also implements <code style="xslt-mode" 
xref="html.sidebar.mode">html.sidebar.mode</code> on the <code>sections</code> token. See <code 
style="xslt-template" xref="html.sidebar">html.sidebar</code> for more information on how sidebars are 
created.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.sidebar.sections.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="html.sidebar.sections">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output a list of sections for a sidebar.</desc>
+  <revision version="3.30" date="2018-06-10" status="candidate"/>
+ </info>
+ <title>html.sidebar.sections</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a sidebar is being created for.</p>
+   </item>
+   <item>
+    <title><code>$side</code></title>
+    <p>Which sidebar, either <sys>left</sys> or <sys>right</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template creates a list of sections on the current page for a sidebar.
+ It applies <code xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code> to <code>$node</code>, 
passing <code>$side</code> as a
+ parameter, to allow individual input formats to implement sections lists.</p>
+ <p>This named template also implements <code xref="html.sidebar.mode">html.sidebar.mode</code> on the 
<sys>sections</sys>
+ token. See <code xref="html.sidebar">html.sidebar</code> for more information on how sidebars are 
created.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.sidebar.sections.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.svg.namespace.page b/doc/yelp-xsl/C/html.svg.namespace.page
index 578962ca..2bd162f0 100644
--- a/doc/yelp-xsl/C/html.svg.namespace.page
+++ b/doc/yelp-xsl/C/html.svg.namespace.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.svg.namespace" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="3.18" date="2015-05-04" status="final"/><desc>The XML 
namespace for SVG in the output document.</desc></info><title>html.svg.namespace</title><p>The XML namespace 
for SVG in the output document.</p>
-  
-  
-  <p>This parameter specifies the XML namespace for SVG in output documents. It will be set automatically 
based on the <code style="xslt-param">html.xhtml</code> parameter, either to the SVG namespace namespace, or 
to the empty namespace. Stylesheets can use this parameter when using <code>xsl:element</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.svg.namespace">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>The XML namespace for SVG in the output document.</desc>
+  <revision version="3.18" date="2015-05-04" status="final"/>
+ </info>
+ <title>html.svg.namespace</title>
+ <p>This parameter specifies the XML namespace for SVG in output documents. It
+ will be set automatically based on the <code xref="html.xhtml">html.xhtml</code> parameter, either to the
+ SVG namespace namespace, or to the empty namespace. Stylesheets can use this
+ parameter when using <sys>xsl:element</sys>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.syntax.class.mode.page b/doc/yelp-xsl/C/html.syntax.class.mode.page
index 14393b40..5770ca8a 100644
--- a/doc/yelp-xsl/C/html.syntax.class.mode.page
+++ b/doc/yelp-xsl/C/html.syntax.class.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.syntax.class.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="html" group="modes"/><link type="guide" xref="modes" 
group="html"/><revision version="3.28" date="2016-01-03" status="final"/><desc>Get the syntax highlighting 
language for a source-specific element.</desc></info><title>html.syntax.class.mode</title><p>Get the syntax 
highlighting language for a source-specific element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.syntax.class">html.syntax.class</code> on 
source elements that may have syntax highlighted. This template should be implemented by importing 
stylesheets. It should return a simple language identifier.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.syntax.class.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Get the syntax highlighting language for a source-specific element.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>html.syntax.class.mode</title>
+ <p>This mode is called by <code xref="html.syntax.class">html.syntax.class</code> on source elements that 
may have
+ syntax highlighted. This template should be implemented by importing stylesheets.
+ It should return a simple language identifier.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.syntax.class.page b/doc/yelp-xsl/C/html.syntax.class.page
index 4972b22e..344aaa85 100644
--- a/doc/yelp-xsl/C/html.syntax.class.page
+++ b/doc/yelp-xsl/C/html.syntax.class.page
@@ -1,13 +1,116 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.syntax.class" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><revision version="3.28" date="2016-01-03" status="final"/><desc>Output HTML 
class values for syntax highlighting.</desc></info><title>html.syntax.class</title><p>Output HTML class 
values for syntax highlighting.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source element whose content will be syntax highlighted.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template calls <code style="xslt-mode" xref="html.syntax.class.mode">html.syntax.class.mode</code> 
on <code style="xslt-param">node</code>. If the result of that mode is a suitable language identifier, it 
outputs appropriate CSS class names to enable syntax highlighting. The output should be placed in the 
<code>class</code> attribute of a <code>pre</code> or similar output element by the calling template.</p>
-  <p>Importing stylesheets should implement <code style="xslt-mode" 
xref="html.syntax.class.mode">html.syntax.class.mode</code> for any source elements that may be syntax 
highlighted, then call this template when building the <code>class</code> attribute for output elements.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="html.syntax.class.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.syntax.class">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Output HTML class values for syntax highlighting.</desc>
+  <revision version="3.28" date="2016-01-03" status="final"/>
+ </info>
+ <title>html.syntax.class</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The source element whose content will be syntax highlighted.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template calls <code xref="html.syntax.class.mode">html.syntax.class.mode</code> on 
<code>$node</code>. If the result of that
+ mode is a suitable language identifier, it outputs appropriate CSS class names
+ to enable syntax highlighting. The output should be placed in the <sys>class</sys>
+ attribute of a <sys>pre</sys> or similar output element by the calling template.</p>
+ <p>Importing stylesheets should implement <code xref="html.syntax.class.mode">html.syntax.class.mode</code> 
for any source
+ elements that may be syntax highlighted, then call this template when building
+ the <sys>class</sys> attribute for output elements.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="html.syntax.class.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/html.syntax.highlight.page b/doc/yelp-xsl/C/html.syntax.highlight.page
index 3b41aa64..8112b9c3 100644
--- a/doc/yelp-xsl/C/html.syntax.highlight.page
+++ b/doc/yelp-xsl/C/html.syntax.highlight.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.syntax.highlight" type="topic" 
style="xslt-param"><info><link type="guide" xref="html" group="parameters"/><link type="guide" 
xref="parameters" group="html"/><revision version="1.0" date="2010-12-06" status="final"/><desc>Whether to 
include syntax highlighting support for code 
blocks.</desc></info><title>html.syntax.highlight</title><p>Whether to include syntax highlighting support 
for code blocks.</p>
-  
-  
-  <p>This parameter specifies whether syntax highlighting should be enabled for code blocks in the output 
HTML. Syntax highlighting is done at document load time by JavaScript.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.syntax.highlight">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>Whether to include syntax highlighting support for code blocks.</desc>
+  <revision version="1.0" date="2010-12-06" status="final"/>
+ </info>
+ <title>html.syntax.highlight</title>
+ <p>This parameter specifies whether syntax highlighting should be enabled for
+ code blocks in the output HTML. Syntax highlighting is done at document load
+ time by JavaScript.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.syntax.highlight</code></title>
+    <p><code>true()</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/html.title.mode.page b/doc/yelp-xsl/C/html.title.mode.page
index f14d0ab4..c42c9069 100644
--- a/doc/yelp-xsl/C/html.title.mode.page
+++ b/doc/yelp-xsl/C/html.title.mode.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.title.mode" type="topic" style="xslt-mode"><info><link 
type="guide" xref="html" group="modes"/><link type="guide" xref="modes" group="html"/><revision version="1.0" 
date="2010-05-26" status="final"/><desc>Output the title of an 
element.</desc></info><title>html.title.mode</title><p>Output the title of an element.</p>
-  
-  
-  <p>This mode is called by <code style="xslt-template" xref="html.page">html.page</code> to output the 
contents of the HTML <code>title</code> element inside the <code>head</code> element. Importing stylesheets 
should implement this mode for any element that will be passed to <code style="xslt-template" 
xref="html.page">html.page</code>. Because this is used in the <code>head</code>, the output should be 
text-only.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="html.title.mode">
+ <info>
+  <link type="guide" xref="html" group="modes"/>
+  <link type="guide" xref="modes" group="html"/>
+  <desc>Output the title of an element.</desc>
+  <revision version="1.0" date="2010-05-26" status="final"/>
+ </info>
+ <title>html.title.mode</title>
+ <p>This mode is called by <code xref="html.page">html.page</code> to output the contents of the HTML 
<sys>title</sys>
+ element inside the <sys>head</sys> element. Importing stylesheets should implement this
+ mode for any element that will be passed to <code xref="html.page">html.page</code>. Because this is used
+ in the <sys>head</sys>, the output should be text-only.</p>
 </page>
diff --git a/doc/yelp-xsl/C/html.top.custom.page b/doc/yelp-xsl/C/html.top.custom.page
index 6ebe513e..a4e3ac32 100644
--- a/doc/yelp-xsl/C/html.top.custom.page
+++ b/doc/yelp-xsl/C/html.top.custom.page
@@ -1,13 +1,107 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.top.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="html" group="templates"/><link type="guide" 
xref="templates" group="html"/><link type="guide" xref="stubs" group="html"/><revision version="3.28" 
date="2017-05-24" status="final"/><desc>Stub to output HTML at the top of the page.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>html.top.custom</title><p>Stub to output HTML 
at the top of the page.</p><note><p>This template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node a page is being created for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is a stub, called by <code style="xslt-template" xref="html.page">html.page</code>. It is 
called before the <code>main</code> element. Override this template to provide site-specific HTML at the top 
of the page.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="html.top.custom">
+ <info>
+  <link type="guide" xref="html" group="templates"/>
+  <link type="guide" xref="templates" group="html"/>
+  <desc>Stub to output HTML at the top of the page.</desc>
+  <link type="guide" xref="stubs" group="html"/>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>html.top.custom</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node a page is being created for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is a stub, called by <code xref="html.page">html.page</code>. It is called before the
+ <sys>main</sys> element. Override this template to provide site-specific HTML
+ at the top of the page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.green"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.orange"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.purple"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="html.basename"/></p>
+  </item>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.left"/></p>
+  </item>
+  <item>
+   <p><link xref="html.sidebar.right"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="html.xhtml"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.size.quote"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/html.xhtml.page b/doc/yelp-xsl/C/html.xhtml.page
index 864d0544..a93c1bb4 100644
--- a/doc/yelp-xsl/C/html.xhtml.page
+++ b/doc/yelp-xsl/C/html.xhtml.page
@@ -1,6 +1,24 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="html.xhtml" type="topic" style="xslt-param"><info><link 
type="guide" xref="html" group="parameters"/><link type="guide" xref="parameters" group="html"/><revision 
version="1.0" date="2010-05-25" status="final"/><desc>Whether to output 
XHTML.</desc></info><title>html.xhtml</title><p>Whether to output XHTML.</p>
-  
-  
-  <p>If this parameter is set to true, this stylesheet will output XHTML. Otherwise, the output is assumed 
to be HTML. Note that for HTML output, the importing stylesheet still needs to call 
<code>xsl:namespace-alias</code> to map the XHTML namespace to <code>#default</code>. The <code 
style="xslt-param" xref="html.namespace">html.namespace</code> will be set automatically based on this 
parameter. Stylesheets can use this parameter to check the output type, for example when using 
<code>xsl:element</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="html.xhtml">
+ <info>
+  <link type="guide" xref="html" group="params"/>
+  <link type="guide" xref="params" group="html"/>
+  <desc>Whether to output XHTML.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>html.xhtml</title>
+ <p>If this parameter is set to true, this stylesheet will output XHTML. Otherwise,
+ the output is assumed to be HTML. Note that for HTML output, the importing
+ stylesheet still needs to call <sys>xsl:namespace-alias</sys> to map the XHTML namespace
+ to <sys>#default</sys>. The <code xref="html.namespace">html.namespace</code> parameter will be set 
automatically based
+ on this parameter. Stylesheets can use this parameter to check the output type,
+ for example when using <sys>xsl:element</sys>.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>html.xhtml</code></title>
+    <p><code>true()</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/icons.page b/doc/yelp-xsl/C/icons.page
index 1bb882a0..6b64add0 100644
--- a/doc/yelp-xsl/C/icons.page
+++ b/doc/yelp-xsl/C/icons.page
@@ -1,2 +1,98 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="icons"/><revision version="3.28" date="2017-05-24" 
status="final"/><link type="xslt-defines-template" xref="icons.svg.note"/><link type="xslt-defines-template" 
xref="icons.svg.note.advanced"/><link type="xslt-defines-template" xref="icons.svg.note.bug"/><link 
type="xslt-defines-template" xref="icons.svg.note.caution"/><link type="xslt-defines-template" 
xref="icons.svg.note.danger"/><link type="xslt-defines-template" xref="icons.svg.note.important"/><link 
type="xslt-defines-template" xref="icons.svg.note.note"/><link type="xslt-defines-template" 
xref="icons.svg.note.package"/><link type="xslt-defines-template" xref="icons.svg.note.tip"/><link 
type="xslt-defines-template" xref="icons.svg.note.warning"/><link type="xslt-defines-template" 
xref="icons.svg.figure.zoom.in"/><link type="xslt-defines-template" xref="icons.svg.figure.zoom.out"
 /><link 
 type="xslt-defines-template" xref="icons.svg.media.play"/><link type="xslt-defines-template" 
xref="icons.svg.media.pause"/><link type="xslt-implements-mode" xref="icons.svg.mode"/><link 
type="xslt-defines-param" xref="icons.size.quote"/></info><title>Icons</title><p>Specify common named icons 
to style output.</p><p>This stylesheet provides a common interface to specify icons for transformations to 
presentation-oreinted formats. This allows similar output for different types of input documents.</p><p>Many 
of the icons are output as SVG elements that can be embedded directly into an HTML document. These icons use 
class names like <code>yelp-svg-fill</code> and <code>yelp-svg-stroke</code>, allowing you to style them with 
colors from the <file xref="colors">colors</file> module.</p><p>Some SVG icons are read from separate source 
SVG files. When this is done, the <code style="xslt-mode" xref="icons.svg.mode">icons.svg.mode</code> mode is 
applied to reduce the SVG to the minimal 
 form nee
 ded for proper presentation.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="icons.svg.mode">icons.svg.mode</link></p></td><td><p><code>svg:title</code></p></td></tr><tr><td><p><link
 
xref="icons.svg.mode">icons.svg.mode</link></p></td><td><p><code>svg:metadata</code></p></td></tr><tr><td><p><link
 xref="icons.svg.mode">icons.svg.mode</link></p></td><td><p><code>svg:*</code></p></td></tr><tr><td><p><link 
xref="icons.svg.mode">icons.svg.mode</link></p></td><td><p><cod
 e>text()
 </code></p></td></tr><tr><td><p><link 
xref="icons.svg.mode">icons.svg.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="icons">
+ <info>
+  <link type="guide" xref="stylesheets" group="icons"/>
+  <desc>Specify common named icons to style output.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>Icons</title>
+ <p>This stylesheet provides a common interface to specify icons for transformations
+ to presentation-oreinted formats. This allows similar output for different
+ types of input documents.</p>
+ <p>Many of the icons are output as SVG elements that can be embedded directly
+ into an HTML document. These icons use class names like <sys>yelp-svg-fill</sys> and
+ <sys>yelp-svg-stroke</sys>, allowing you to style them with colors from the <code 
xref="colors">colors</code>
+ module.</p>
+ <p>Some SVG icons are read from separate source SVG files. When this is done, the
+ <code xref="icons.svg.mode">icons.svg.mode</code> mode is applied to reduce the SVG to the minimal form 
needed
+ for proper presentation.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="icons.svg.mode">icons.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>svg:title</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="icons.svg.mode">icons.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>svg:metadata</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="icons.svg.mode">icons.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>svg:*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="icons.svg.mode">icons.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="icons.svg.mode">icons.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/icons.size.quote.page b/doc/yelp-xsl/C/icons.size.quote.page
index ad482173..af477afc 100644
--- a/doc/yelp-xsl/C/icons.size.quote.page
+++ b/doc/yelp-xsl/C/icons.size.quote.page
@@ -1,7 +1,24 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.size.quote" type="topic" 
style="xslt-param"><info><link type="guide" xref="icons" group="parameters"/><link type="guide" 
xref="parameters" group="icons"/><revision version="3.8" date="2012-09-29" status="final"/><desc>The size of 
the quote icons.</desc></info><title>icons.size.quote</title><p>The size of the quote icons.</p>
-  
-  
-  <p>This parameter specifies the size of the block quote icon. Use an integer giving the width of the image 
files in pixels. Icons are assumed to be square, and all quote icons are assumed to have the same size.</p>
-  <p>As of version 3.8, there is no longer an actual image file for the quote icon. Instead, a 
language-appropriate quotation character is placed in the margin. This parameters still affects the size of 
that character.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="icons.size.quote">
+ <info>
+  <link type="guide" xref="icons" group="params"/>
+  <link type="guide" xref="params" group="icons"/>
+  <desc>The size of the quote icons.</desc>
+  <revision version="3.8" date="2012-09-29" status="final"/>
+ </info>
+ <title>icons.size.quote</title>
+ <p>This parameter specifies the size of the block quote icon. Use an integer giving
+ the width of the image files in pixels. Icons are assumed to be square, and all
+ quote icons are assumed to have the same size.</p>
+ <p>As of version 3.8, there is no longer an actual image file for the quote icon.
+ Instead, a language-appropriate quotation character is placed in the margin.
+ This parameters still affects the size of that character.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>icons.size.quote</code></title>
+    <p><code>48</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.figure.zoom.in.page b/doc/yelp-xsl/C/icons.svg.figure.zoom.in.page
index 3e51abb1..1b8f298b 100644
--- a/doc/yelp-xsl/C/icons.svg.figure.zoom.in.page
+++ b/doc/yelp-xsl/C/icons.svg.figure.zoom.in.page
@@ -1,7 +1,16 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.figure.zoom.in" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a figure zoom-in 
icon.</desc></info><title>icons.svg.figure.zoom.in</title><p>Output an <code>svg</code> element for a figure 
zoom-in icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with the zoom-in icon for figures. Figures 
automatically scale images down. This icon shows them at their original size.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-stroke</code> and <code>yelp-svg-fill</code> class names.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.figure.zoom.in">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a figure zoom-in icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.figure.zoom.in</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with the zoom-in icon for figures.
+ Figures automatically scale images down. This icon shows them at their original
+ size.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-stroke</sys> and <sys>yelp-svg-fill</sys> class
+ names.</p>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.figure.zoom.out.page b/doc/yelp-xsl/C/icons.svg.figure.zoom.out.page
index b587ae7a..05e1cff8 100644
--- a/doc/yelp-xsl/C/icons.svg.figure.zoom.out.page
+++ b/doc/yelp-xsl/C/icons.svg.figure.zoom.out.page
@@ -1,7 +1,16 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.figure.zoom.out" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a figure zoom-out 
icon.</desc></info><title>icons.svg.figure.zoom.out</title><p>Output an <code>svg</code> element for a figure 
zoom-out icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with the zoom-in icon for figures. Figures 
automatically scale images down. This icon scales them back down after they have been zoomed.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-stroke</code> and <code>yelp-svg-fill</code> class names.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.figure.zoom.out">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a figure zoom-out icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.figure.zoom.out</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with the zoom-in icon for figures.
+ Figures automatically scale images down. This icon scales them back down after
+ they have been zoomed.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-stroke</sys> and <sys>yelp-svg-fill</sys> class
+ names.</p>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.media.pause.page b/doc/yelp-xsl/C/icons.svg.media.pause.page
index 40b9903b..d24e15a1 100644
--- a/doc/yelp-xsl/C/icons.svg.media.pause.page
+++ b/doc/yelp-xsl/C/icons.svg.media.pause.page
@@ -1,7 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.media.pause" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a figure zoom-out 
icon.</desc></info><title>icons.svg.media.pause</title><p>Output an <code>svg</code> element for a figure 
zoom-out icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with a pause icon for media controls.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.media.pause">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a figure zoom-out icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.media.pause</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with a pause icon for media controls.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.media.play.page b/doc/yelp-xsl/C/icons.svg.media.play.page
index 54c32429..f1639d3c 100644
--- a/doc/yelp-xsl/C/icons.svg.media.play.page
+++ b/doc/yelp-xsl/C/icons.svg.media.play.page
@@ -1,7 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.media.play" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a figure zoom-out 
icon.</desc></info><title>icons.svg.media.play</title><p>Output an <code>svg</code> element for a figure 
zoom-out icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with a play icon for media controls.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.media.play">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a figure zoom-out icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.media.play</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with a play icon for media controls.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.mode.page b/doc/yelp-xsl/C/icons.svg.mode.page
index b7512232..fde8c19c 100644
--- a/doc/yelp-xsl/C/icons.svg.mode.page
+++ b/doc/yelp-xsl/C/icons.svg.mode.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.mode" type="topic" style="xslt-mode"><info><link 
type="guide" xref="icons" group="modes"/><link type="guide" xref="modes" group="icons"/><revision 
version="3.28" date="2017-05-24" status="final"/><desc>Reduce SVG icons to elements needed for 
presentation.</desc></info><title>icons.svg.mode</title><p>Reduce SVG icons to elements needed for 
presentation.</p>
-  
-  
-  <p>This mode matches SVG elements and outputs only the SVG needed for presentation. It strips out metadata 
and other elements and attributes used primarily by authoring tools. It also uses the <code 
style="xslt-param" xref="html.svg.namespace">html.svg.namespace</code> parameter to output SVG with or 
without namespace information, compatible with the dual HTML/XHTML output of these stylesheets.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="icons.svg.mode">
+ <info>
+  <link type="guide" xref="icons" group="modes"/>
+  <link type="guide" xref="modes" group="icons"/>
+  <desc>Reduce SVG icons to elements needed for presentation.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.mode</title>
+ <p>This mode matches SVG elements and outputs only the SVG needed for presentation.
+ It strips out metadata and other elements and attributes used primarily by
+ authoring tools. It also uses the <code xref="html.svg.namespace">html.svg.namespace</code> parameter to 
output SVG
+ with or without namespace information, compatible with the dual HTML/XHTML
+ output of these stylesheets.</p>
 </page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.advanced.page b/doc/yelp-xsl/C/icons.svg.note.advanced.page
index 34661bfe..6247c47c 100644
--- a/doc/yelp-xsl/C/icons.svg.note.advanced.page
+++ b/doc/yelp-xsl/C/icons.svg.note.advanced.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.advanced" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for an advanced note 
icon.</desc></info><title>icons.svg.note.advanced</title><p>Output an <code>svg</code> element for an 
advanced note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with advanced 
information.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.advanced">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for an advanced note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.advanced</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with advanced information.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.bug.page b/doc/yelp-xsl/C/icons.svg.note.bug.page
index 74f7e0d1..598e0509 100644
--- a/doc/yelp-xsl/C/icons.svg.note.bug.page
+++ b/doc/yelp-xsl/C/icons.svg.note.bug.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.bug" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a bug note icon.</desc></info><title>icons.svg.note.bug</title><p>Output an 
<code>svg</code> element for a bug note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes about known 
bugs.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="icons.svg.note.bug">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a bug note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.bug</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ about known bugs.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.caution.page b/doc/yelp-xsl/C/icons.svg.note.caution.page
index a94bebfa..da67c9e6 100644
--- a/doc/yelp-xsl/C/icons.svg.note.caution.page
+++ b/doc/yelp-xsl/C/icons.svg.note.caution.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.caution" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a caution note icon.</desc></info><title>icons.svg.note.caution</title><p>Output 
an <code>svg</code> element for a caution note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with cautionary 
information.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.caution">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a caution note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.caution</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with cautionary information.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.danger.page b/doc/yelp-xsl/C/icons.svg.note.danger.page
index b38bef81..251e410a 100644
--- a/doc/yelp-xsl/C/icons.svg.note.danger.page
+++ b/doc/yelp-xsl/C/icons.svg.note.danger.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.danger" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a danger note icon.</desc></info><title>icons.svg.note.danger</title><p>Output 
an <code>svg</code> element for a danger note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes about dangerous 
situations.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.danger">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a danger note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.danger</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ about dangerous situations.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.important.page b/doc/yelp-xsl/C/icons.svg.note.important.page
index 3f6b3432..ff6edbd2 100644
--- a/doc/yelp-xsl/C/icons.svg.note.important.page
+++ b/doc/yelp-xsl/C/icons.svg.note.important.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.important" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for an important note 
icon.</desc></info><title>icons.svg.note.important</title><p>Output an <code>svg</code> element for an 
important note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with important 
information.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.important">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for an important note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.important</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with important information.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.note.page b/doc/yelp-xsl/C/icons.svg.note.note.page
index 259d5baf..47151b26 100644
--- a/doc/yelp-xsl/C/icons.svg.note.note.page
+++ b/doc/yelp-xsl/C/icons.svg.note.note.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.note" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a note icon.</desc></info><title>icons.svg.note.note</title><p>Output an 
<code>svg</code> element for a note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with general 
information.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.note">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.note</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with general information.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.package.page b/doc/yelp-xsl/C/icons.svg.note.package.page
index 10c75702..b3a59222 100644
--- a/doc/yelp-xsl/C/icons.svg.note.package.page
+++ b/doc/yelp-xsl/C/icons.svg.note.package.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.package" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a package note icon.</desc></info><title>icons.svg.note.package</title><p>Output 
an <code>svg</code> element for a package note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes about packages 
the user may need to install.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.package">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a package note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.package</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ about packages the user may need to install.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.page b/doc/yelp-xsl/C/icons.svg.note.page
index 02aeeed0..ee7ec0fa 100644
--- a/doc/yelp-xsl/C/icons.svg.note.page
+++ b/doc/yelp-xsl/C/icons.svg.note.page
@@ -1,13 +1,55 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a note icon.</desc></info><title>icons.svg.note</title><p>Output an 
<code>svg</code> element for a note icon.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>style</code></title>
-      <p>The style of the note.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes and other types 
of admonitions. It takes a <code style="xslt-param">style</code> parameter specifying a note style. The 
default style is <code>"note"</code>. This template uses the <code style="xslt-param">style</code> parameter 
to determine which specific template to call to output the SVG content.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> 
module.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="icons.svg.note.advanced"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="icons.svg.note">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$style</code></title>
+    <p>The style of the note.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ and other types of admonitions. It takes a <code>$style</code> parameter specifying a
+ note style. The default style is <sys>"note"</sys>. This template uses the <code>$style</code>
+ parameter to determine which specific template to call to output the SVG
+ content.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> 
module.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="icons.svg.note.advanced"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.bug"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.caution"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.danger"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.important"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.note"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.package"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.tip"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note.warning"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.tip.page b/doc/yelp-xsl/C/icons.svg.note.tip.page
index da68d18a..ee8e13b7 100644
--- a/doc/yelp-xsl/C/icons.svg.note.tip.page
+++ b/doc/yelp-xsl/C/icons.svg.note.tip.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.tip" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a tip note icon.</desc></info><title>icons.svg.note.tip</title><p>Output an 
<code>svg</code> element for a tip note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with tips.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="icons.svg.note.tip">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a tip note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.tip</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with tips.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/icons.svg.note.warning.page b/doc/yelp-xsl/C/icons.svg.note.warning.page
index 8d323b04..d89950e0 100644
--- a/doc/yelp-xsl/C/icons.svg.note.warning.page
+++ b/doc/yelp-xsl/C/icons.svg.note.warning.page
@@ -1,7 +1,20 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="icons.svg.note.warning" type="topic" 
style="xslt-template"><info><link type="guide" xref="icons" group="templates"/><link type="guide" 
xref="templates" group="icons"/><revision version="3.28" date="2017-05-24" status="final"/><desc>Output an 
<code>svg</code> element for a warning note icon.</desc></info><title>icons.svg.note.warning</title><p>Output 
an <code>svg</code> element for a warning note icon.</p>
-  
-  
-  <p>This template outputs an SVG <code>svg</code> element with an icon suitable for notes with warnings.</p>
-  <p>SVG icons can use CSS class names to pick up colors from the <file xref="colors">colors</file> module. 
By default, this icon uses the <code>yelp-svg-fill</code> class name.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="icons.svg.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="icons.svg.note.warning">
+ <info>
+  <link type="guide" xref="icons" group="templates"/>
+  <link type="guide" xref="templates" group="icons"/>
+  <desc>Output an <sys>svg</sys> element for a warning note icon.</desc>
+  <revision version="3.28" date="2017-05-24" status="final"/>
+ </info>
+ <title>icons.svg.note.warning</title>
+ <p>This template outputs an SVG <sys>svg</sys> element with an icon suitable for notes
+ with warnings.</p>
+ <p>SVG icons can use CSS class names to pick up colors from the <code xref="colors">colors</code> module.
+ By default, this icon uses the <sys>yelp-svg-fill</sys> class name.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="icons.svg.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/index.page b/doc/yelp-xsl/C/index.page
index e043f642..b5e41361 100644
--- a/doc/yelp-xsl/C/index.page
+++ b/doc/yelp-xsl/C/index.page
@@ -1,10 +1,7 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="index">
-  <info>
-    <title type="link" role="trail">Yelp XSLT</title>
-  </info>
-
-  <title>Yelp XSLT Stylesheets</title>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="index">
+ <info>
+  <title type="link" role="trail">Yelp XSLT&lt;</title>
+ </info>
+ <title>Yelp XSLT Stylesheets</title>
 </page>
diff --git a/doc/yelp-xsl/C/keys.page b/doc/yelp-xsl/C/keys.page
index 79b6f77a..a55571be 100644
--- a/doc/yelp-xsl/C/keys.page
+++ b/doc/yelp-xsl/C/keys.page
@@ -1,40 +1,42 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="keys">
-  <info>
-    <link type="guide" xref="index"/>
-    <title type="link">Keys</title>
-    <title type="link" role="topic">XSLT Keys</title>
-  </info>
-
-  <title>XSLT Keys</title>
-
-  <links type="topic" style="linklist" groups="mal2html">
-    <title>Mallard to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="mal">
-    <title>Mallard Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="db2html">
-    <title>DocBook to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="db">
-    <title>DocBook Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="html">
-    <title>HTML Output</title>
-  </links>
-  <links type="topic" style="linklist" groups="l10n">
-    <title>Localization</title>
-  </links>
-  <links type="topic" style="linklist" groups="color">
-    <title>Colors</title>
-  </links>
-  <links type="topic" style="linklist" groups="icons">
-    <title>Icons</title>
-  </links>
-  <links type="topic" style="linklist" groups="#first #default #last">
-    <title>Other</title>
-  </links>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="keys">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Keys</title>
+  <title type="link" role="topic">XSLT Keys</title>
+ </info>
+ <title>XSLT Keys</title>
+ <links type="topic" style="linklist" groups="mal2html">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html">
+  <title>HTML Output</title>
+ </links>
+ <links type="topic" style="linklist" groups="ttml">
+  <title>TTML Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="l10n">
+  <title>Localization</title>
+ </links>
+ <links type="topic" style="linklist" groups="color">
+  <title>Colors</title>
+ </links>
+ <links type="topic" style="linklist" groups="icons">
+  <title>Icons</title>
+ </links>
+ <links type="topic" style="linklist" groups="utils">
+  <title>Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first" id="last">
+  <title>Other</title>
+ </links>
 </page>
diff --git a/doc/yelp-xsl/C/l10n-numbers.page b/doc/yelp-xsl/C/l10n-numbers.page
index 3137bf56..ba3fd33c 100644
--- a/doc/yelp-xsl/C/l10n-numbers.page
+++ b/doc/yelp-xsl/C/l10n-numbers.page
@@ -1,2 +1,25 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n-numbers" type="guide" 
style="xslt-stylesheet"><?xslt-private l10n.number.cjk-ideographic.private?><?xslt-private 
l10n.number.ionic.private?><info><link type="guide" xref="stylesheets" group="l10n"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-defines-template" xref="l10n.number"/><link 
type="xslt-defines-template" xref="l10n.number.alphabetic"/><link type="xslt-defines-template" 
xref="l10n.number.numeric"/><link type="xslt-defines-template" xref="l10n.number.cjk-ideographic"/><link 
type="xslt-defines-template" xref="l10n.number.ionic"/></info><title>Localized Numbers</title><links 
type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" style="linklist"><title>
 Template
 s</title></links><links type="topic" groups="keys" style="linklist"><title>Keys</title></links></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="l10n-numbers">
+ <info>
+  <link type="guide" xref="stylesheets" group="l10n"/>
+ </info>
+ <title>Localized Numbers</title>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.align.end.page b/doc/yelp-xsl/C/l10n.align.end.page
index 1e36c06b..7e540786 100644
--- a/doc/yelp-xsl/C/l10n.align.end.page
+++ b/doc/yelp-xsl/C/l10n.align.end.page
@@ -1,12 +1,36 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.align.end" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="3.18" date="2015-07-27" status="final"/><desc>Determine the 
end alignment.</desc></info><title>l10n.align.end</title><p>Determine the end alignment.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>direction</code></title>
-      <p>The text direction.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns the string <code>right</code> for left-to-right languages and the string 
<code>left</code> for right-to-left languages. The result is suitable for substituting in CSS rules that are 
direction-dependent. If you do not pass the <code style="xslt-param">direction</code> parameter, it defaults 
to calling <code style="xslt-template" xref="l10n.direction">l10n.direction</code> using the default locale 
defined in <code style="xslt-param" xref="l10n.locale">l10n.locale</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.align.end">
+ <info>
+  <link type="guide" xref="l10n" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Determine the end alignment.</desc>
+  <revision version="3.18" date="2015-07-27" status="final"/>
+ </info>
+ <title>l10n.align.end</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The text direction.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns the string <sys>right</sys> for left-to-right languages and the
+ string <sys>left</sys> for right-to-left languages. The result is suitable for
+ substituting in CSS rules that are direction-dependent. If you do not pass
+ the <code>$direction</code> parameter, it defaults to calling <code 
xref="l10n.direction">l10n.direction</code> using
+ the default locale defined in <code xref="l10n.locale">l10n.locale</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.align.start.page b/doc/yelp-xsl/C/l10n.align.start.page
index 883cc8dd..97675e5d 100644
--- a/doc/yelp-xsl/C/l10n.align.start.page
+++ b/doc/yelp-xsl/C/l10n.align.start.page
@@ -1,12 +1,36 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.align.start" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="3.18" date="2015-07-27" status="final"/><desc>Determine the 
start alignment.</desc></info><title>l10n.align.start</title><p>Determine the start alignment.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>direction</code></title>
-      <p>The text direction.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns the string <code>left</code> for left-to-right languages and the string 
<code>right</code> for right-to-left languages. The result is suitable for substituting in CSS rules that are 
direction-dependent. If you do not pass the <code style="xslt-param">direction</code> parameter, it defaults 
to calling <code style="xslt-template" xref="l10n.direction">l10n.direction</code> using the default locale 
defined in <code style="xslt-param" xref="l10n.locale">l10n.locale</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.align.start">
+ <info>
+  <link type="guide" xref="l10n" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Determine the start alignment.</desc>
+  <revision version="3.18" date="2015-07-27" status="final"/>
+ </info>
+ <title>l10n.align.start</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The text direction.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns the string <sys>left</sys> for left-to-right languages and the
+ string <sys>right</sys> for right-to-left languages. The result is suitable for
+ substituting in CSS rules that are direction-dependent. If you do not pass
+ the <code>$direction</code> parameter, it defaults to calling <code 
xref="l10n.direction">l10n.direction</code> using
+ the default locale defined in <code xref="l10n.locale">l10n.locale</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.direction.page b/doc/yelp-xsl/C/l10n.direction.page
index ef22cfb9..c5070793 100644
--- a/doc/yelp-xsl/C/l10n.direction.page
+++ b/doc/yelp-xsl/C/l10n.direction.page
@@ -1,13 +1,39 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.direction" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="3.18" date="2015-08-13" status="final"/><desc>Determine the 
text direction for a language.</desc></info><title>l10n.direction</title><p>Determine the text direction for 
a language.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>lang</code></title>
-      <p>The locale to use to determine the text direction.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns the text direction for the language <code style="xslt-param">lang</code>. It 
returns <code>"ltr"</code> for left-to-right languages and <code>"rtl"</code> for right-to-left languages. If 
<code style="xslt-param">lang</code> is not provided, it defaults to <code 
style="xslt-param">l10n.locale</code>, the top-level locale of the document.</p>
-  <p>This template calls <code style="xslt-template" xref="l10n.gettext">l10n.gettext</code> with the string 
<code>default:LTR</code> in the domain <code>yelp-xsl</code>. The language is right-to-left if the string 
<code>default:RTL</code> is returned. Otherwise, it is left-to-right. (This particular string is used to 
match the string used in GTK+, enabling translation memory.)</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="l10n.locale"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.direction">
+ <info>
+  <link type="guide" xref="l10n" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Determine the text direction for a language.</desc>
+  <revision version="3.18" date="2015-08-13" status="final"/>
+ </info>
+ <title>l10n.direction</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$lang</code></title>
+    <p>The locale to use to determine the text direction.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns the text direction for the language <code>$lang</code>. It returns
+ <sys>"ltr"</sys> for left-to-right languages and <sys>"rtl"</sys> for right-to-left languages.
+ If <code>$lang</code> is not provided, it defaults to <code xref="l10n.locale">l10n.locale</code>, the 
top-level locale
+ of the document.</p>
+ <p>This template calls <code xref="l10n.gettext">l10n.gettext</code> with the string <sys>default:LTR</sys> 
in the domain
+ <sys>yelp-xsl</sys>. The language is right-to-left if the string <sys>default:RTL</sys> is
+ returned. Otherwise, it is left-to-right. (This particular string is used to
+ match the string used in GTK+, enabling translation memory.)</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.format.mode.page b/doc/yelp-xsl/C/l10n.format.mode.page
index 127fc4ec..945821e2 100644
--- a/doc/yelp-xsl/C/l10n.format.mode.page
+++ b/doc/yelp-xsl/C/l10n.format.mode.page
@@ -1,18 +1,39 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.format.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="l10n" group="modes"/><link type="guide" xref="modes" 
group="l10n"/><revision version="3.18" date="2015-08-13" status="final"/><desc>Process format strings from 
<code style="xslt-template" 
xref="l10n.gettext">l10n.gettext</code>.</desc></info><title>l10n.format.mode</title><p>Process format 
strings from <code style="xslt-template" xref="l10n.gettext">l10n.gettext</code>.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The node being processed in the original document.</p>
-    </item>
-    <item>
-      <title><code>string</code></title>
-      <p>String content to use for certain message format nodes.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is called by <code style="xslt-template" xref="l10n.gettext">l10n.gettext</code> when its 
<code>format</code> parameter is set to true. It is applied to the elements and text children of the 
translated message that <code style="xslt-template" xref="l10n.gettext">l10n.gettext</code> finds. This 
allows you to insert content in format strings, rather than concatenating multiple translations to create a 
translated message.</p>
-  <p>By default, this stylesheet provides matching templates in this mode for the elements <code>node</code> 
and <code>string</code>. The template for <code>node</code> applies templates with no mode to the <code 
style="xslt-param">node</code> parameters passed to <code style="xslt-template" 
xref="l10n.gettext">l10n.gettext</code>. The template for <code>string</code> copies the text in the <code 
style="xslt-param">string</code> parameter passed to <code style="xslt-template" 
xref="l10n.gettext">l10n.gettext</code>. Both parameters are passed to templates in this mode. Templates 
matching this mode should pass those parameters to child content if they process child content in <code 
style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code>.</p>
-  <p>To use format strings in your own translations, use elements with names of your choosing in your 
message. You can use the <code>node</code> and <code>string</code> elements without further implementation, 
if they fit your needs. Otherwise, take care to use element names that are unlikely to conflict with other 
templates using this mode.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="l10n.format.mode">
+ <info>
+  <link type="guide" xref="l10n" group="modes"/>
+  <link type="guide" xref="modes" group="l10n"/>
+  <desc>Process format strings from <code xref="l10n.gettext">l10n.gettext</code>.</desc>
+  <revision version="3.18" date="2015-08-13" status="final"/>
+ </info>
+ <title>l10n.format.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The node being processed in the original document.</p>
+   </item>
+   <item>
+    <title><code>$string</code></title>
+    <p>String content to use for certain message format nodes.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is called by <code xref="l10n.gettext">l10n.gettext</code> when its <sys>format</sys> 
parameter is set to
+ true. It is applied to the elements and text children of the translated message
+ that <code xref="l10n.gettext">l10n.gettext</code> finds. This allows you to insert content in format 
strings,
+ rather than concatenating multiple translations to create a translated message.</p>
+ <p>By default, this stylesheet provides matching templates in this mode for the
+ elements <sys>node</sys> and <sys>string</sys>. The template for <sys>node</sys> applies templates with
+ no mode to the <code>$node</code> parameter passed to <code xref="l10n.gettext">l10n.gettext</code>. The 
template for
+ <sys>string</sys> copies the text in the <code>$string</code> parameter passed to <code 
xref="l10n.gettext">l10n.gettext</code>.
+ Both parameters are passed to templates in this mode. Templates matching this
+ mode should pass those parameters to child content if they process child
+ content in <code xref="l10n.format.mode">l10n.format.mode</code>.</p>
+ <p>To use format strings in your own translations, use elements with names of
+ your choosing in your message. You can use the <sys>node</sys> and <sys>string</sys> elements
+ without further implementation, if they fit your needs. Otherwise, take care
+ to use element names that are unlikely to conflict with other templates using
+ this mode.</p>
 </page>
diff --git a/doc/yelp-xsl/C/l10n.gettext.page b/doc/yelp-xsl/C/l10n.gettext.page
index f7dd74a7..a370b88b 100644
--- a/doc/yelp-xsl/C/l10n.gettext.page
+++ b/doc/yelp-xsl/C/l10n.gettext.page
@@ -1,51 +1,138 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.gettext" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="3.18" date="2015-07-29" status="final"/><desc>Look up the 
translation for a string.</desc></info><title>l10n.gettext</title><p>Look up the translation for a string.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>domain</code></title>
-      <p>The domain to look up the string in.</p>
-    </item>
-    <item>
-      <title><code>msgid</code></title>
-      <p>The id of the string to look up, often the string in the C locale.</p>
-    </item>
-    <item>
-      <title><code>lang</code></title>
-      <p>The locale to use when looking up the translated string.</p>
-    </item>
-    <item>
-      <title><code>number</code></title>
-      <p>The cardinality for plural-form lookups.</p>
-    </item>
-    <item>
-      <title><code>form</code></title>
-      <p>The form name for plural-form lookups.</p>
-    </item>
-    <item>
-      <title><code>format</code></title>
-      <p>Whether to treat the result as a format string.</p>
-    </item>
-    <item>
-      <title><code>node</code></title>
-      <p>A context node to pass to <code style="xslt-mode" 
xref="l10n.format.mode">l10n.format.mode</code>.</p>
-    </item>
-    <item>
-      <title><code>string</code></title>
-      <p>A string to pass to <code style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code> for 
<code>msg:string</code> elements.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template extracts a translated version of a source string. In simple cases, the source string is 
exactly the string in <code style="xslt-param">msgid</code>, though in more complex cases, the <code 
style="xslt-param">msgid</code> parameter is a separate unique identifier.</p>
-  <p>This template looks up the translation in a message catalog file based on the <code 
style="xslt-param">domain</code> parameter. The file must be in a <code>domains</code> subdirectory relative 
to the directory holding this stylesheet and be named the same as <code style="xslt-param">domain</code> with 
the suffix <code>.xml</code>. This template will fail if no such file is found. By default, the domain is 
<code>yelp-xsl</code> to reference the translations shipped with these stylesheets. Extensions and 
third-party stylesheets, however, can use this template by installing a file and passing the <code 
style="xslt-param">domain</code> parameter.</p>
-  <p>The message catalog file format is designed to work with the XML/PO translation tool 
<code>itstool</code>, using its join mode to create a single polylingual file. There is no tool to 
automatically extract messages from XSLT files. You must add messages to the source catalog file when adding 
translatable strings.</p>
-  <p>The message catalog file contains a set of <code>msg</code> elements, one for each string that needs 
translation. Each <code>msg</code> element has an <code>id</code> attribute. It is this attribute that is 
matched against the <code style="xslt-param">msgid</code> parameter. Each <code>msg</code> element then has 
one or more <code>msgstr</code> elements, each with an <code>xml:lang</code> attribute. This template tries 
to find a best match language with the <code style="xslt-param">lang</code> parameter, falling back to a 
<code>msgstr</code> element with no <code>xml:lang</code> attribute.</p>
-  <p>In a source message catalog file, put the string to be translated inside a singleton 
<code>msgstr</code> element in each <code>msg</code> element, without an <code>xml:lang</code> parameter. Add 
this element even if it is the same as the <code>id</code> attribute of the <code>msg</code> element. These 
<code>msgstr</code> elements are what <code>itstool</code> uses to create a PO file, and it provides the 
fallback string when no language matches.</p>
-  <p>The <code>xml:lang</code> attribute should contain an RFC 3066 language identifier, which is different 
from the POSIX locale identifiers used by gettext. To accommodate this difference, this stylesheet converts 
all identifiers to lowercase and replaces the characters <code>_</code>, <code>@</code>, and <code>.</code> 
with the character <code>-</code>. If it cannot find an exact match, it strips the part after the last 
<code>-</code> and looks again. It repeats this as long as the identifier contains a <code>-</code> 
character. If there is still no matching <code>msgstr</code> element, it looks for one with no 
<code>xml:lang</code> attribute.</p>
-  <p>Sometimes you have to provide different versions of a string for different cardinalities. While English 
and many other languages have singular and plural, some languages have no plural forms, while others have as 
many as six. These stylesheets use a numeric index for plural forms, similarly to gettext. To get the string 
for a plural, pass the cardinality in the <code style="xslt-param">number</code> parameter. This template 
gets an index for that number by calling <code style="xslt-template" 
xref="l10n.plural.form">l10n.plural.form</code>. The plural form index is in the <code 
style="xslt-param">form</code> parameter. You do not have to pass this parameter. It will be computed 
automatically based on the <code style="xslt-param">number</code> parameter.</p>
-  <p>There is currently no support for editing plural forms using the standard PO syntax. Instead, plurals 
are defined with an XML snippet. Instead of putting the single translated message in the <code>msgstr</code> 
element, plural messages have <code>msgstr</code> child elements of the <code>msgstr</code> element with the 
<code>xml:lang</code> attribute. Each of these child <code>msgstr</code> elements has a <code>form</code> 
attribute that holds the numeric index returned by <code style="xslt-template" 
xref="l10n.plural.form">l10n.plural.form</code>. Translators must adapt the XML snippet according to the 
plural rules and forms defined in this stylesheet for their language.</p>
-  <p>Some translations aren't simple strings, but are instead format strings where certain values are 
inserted. This template can handle format strings with XML marker elements to signal where values should be 
substituted. These values can be the result of applying templates.</p>
-  <p>To enable format strings, set the <code style="xslt-param">format</code> parameter to 
<code>true()</code>. Instead of just returning the translated string, this template will apply templates in 
the mode <code style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code> to the fragment contained in 
the <code>msgstr</code> element.</p>
-  <p>The <code style="xslt-param">node</code> and <code style="xslt-param">string</code> parameters are 
passed to templates in <code style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code>. This 
stylesheet contains matches in <code style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code> for 
the marker elements <code>&lt;string/&gt;</code> and <code>&lt;node/&gt;</code>. The element 
<code>&lt;string/&gt;</code> will be replaced by the string value of <code style="xslt-param">string</code>. 
The element <code>&lt;node/&gt;</code> will apply templates without a mode to <code 
style="xslt-param">node</code>. Text nodes are copied to the result in <code style="xslt-mode" 
xref="l10n.format.mode">l10n.format.mode</code>.</p>
-  <p>If you need any other behavior, add elements with any name of your choosing to the format string, then 
match on those elements in <code style="xslt-mode" xref="l10n.format.mode">l10n.format.mode</code>. You will 
be able to use the <code style="xslt-param">node</code> and <code style="xslt-param">string</code> parameters 
in your template. Try to use a name that is unique.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.plural.form"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="l10n.msgstr.key"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.gettext">
+ <info>
+  <link type="guide" xref="l10n" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Look up the translation for a string.</desc>
+  <revision version="3.18" date="2015-07-29" status="final"/>
+ </info>
+ <title>l10n.gettext</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$domain</code></title>
+    <p>The domain to look up the string in.</p>
+   </item>
+   <item>
+    <title><code>$msgid</code></title>
+    <p>The id of the string to look up, often the string in the C locale.</p>
+   </item>
+   <item>
+    <title><code>$lang</code></title>
+    <p>The locale to use when looking up the translated string.</p>
+   </item>
+   <item>
+    <title><code>$number</code></title>
+    <p>The cardinality for plural-form lookups.</p>
+   </item>
+   <item>
+    <title><code>$form</code></title>
+    <p>The form name for plural-form lookups.</p>
+   </item>
+   <item>
+    <title><code>$format</code></title>
+    <p>Whether to treat the result as a format string.</p>
+   </item>
+   <item>
+    <title><code>$node</code></title>
+    <p>A context node to pass to <code xref="l10n.format.mode">l10n.format.mode</code>.</p>
+   </item>
+   <item>
+    <title><code>$string</code></title>
+    <p>A string to pass to <code xref="l10n.format.mode">l10n.format.mode</code> for <sys>msg:string</sys> 
elements.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template extracts a translated version of a source string. In simple cases,
+ the source string is exactly the string in <code>$msgid</code>, though in more complex
+ cases, the <code>$msgid</code> parameter is a separate unique identifier.</p>
+ <p>This template looks up the translation in a message catalog file based on the
+ <code>$domain</code> parameter. The file must be in a <sys>domains</sys> subdirectory relative to
+ the directory holding this stylesheet and be named the same as <code>$domain</code> with
+ the suffix <sys>.xml</sys>. This template will fail if no such file is found. By
+ default, the domain is <sys>yelp-xsl</sys> to reference the translations shipped with
+ these stylesheets. Extensions and third-party stylesheets, however, can use
+ this template by installing a file and passing the <code>$domain</code> parameter.</p>
+ <p>The message catalog file format is designed to work with the XML/PO translation
+ tool <sys>itstool</sys>, using its join mode to create a single polylingual file. There
+ is no tool to automatically extract messages from XSLT files. You must add
+ messages to the source catalog file when adding translatable strings.</p>
+ <p>The message catalog file contains a set of <sys>msg</sys> elements, one for each string
+ that needs translation. Each <sys>msg</sys> element has an <sys>id</sys> attribute. It is this
+ attribute that is matched against the <code>$msgid</code> parameter. Each <sys>msg</sys> element
+ then has one or more <sys>msgstr</sys> elements, each with an <sys>xml:lang</sys> attribute.
+ This template tries to find a best match language with the <code>$lang</code> parameter,
+ falling back to a <sys>msgstr</sys> element with no <sys>xml:lang</sys> attribute.</p>
+ <p>In a source message catalog file, put the string to be translated inside a
+ singleton <sys>msgstr</sys> element in each <sys>msg</sys> element, without an <sys>xml:lang</sys>
+ parameter. Add this element even if it is the same as the <sys>id</sys> attribute of
+ the <sys>msg</sys> element. These <sys>msgstr</sys> elements are what <sys>itstool</sys> uses to create
+ a PO file, and it provides the fallback string when no language matches.</p>
+ <p>The <sys>xml:lang</sys> attribute should contain an RFC 3066 language identifier, which
+ is different from the POSIX locale identifiers used by gettext. To accommodate
+ this difference, this stylesheet converts all identifiers to lowercase and
+ replaces the characters <sys>_</sys>, <sys>@</sys>, and <sys>.</sys> with the character <sys>-</sys>. If it
+ cannot find an exact match, it strips the part after the last <sys>-</sys> and looks
+ again. It repeats this as long as the identifier contains a <sys>-</sys> character.
+ If there is still no matching <sys>msgstr</sys> element, it looks for one with no
+ <sys>xml:lang</sys> attribute.</p>
+ <p>Sometimes you have to provide different versions of a string for different
+ cardinalities. While English and many other languages have singular and plural,
+ some languages have no plural forms, while others have as many as six. These
+ stylesheets use a numeric index for plural forms, similarly to gettext. To get
+ the string for a plural, pass the cardinality in the <code>$number</code> parameter. This
+ template gets an index for that number by calling <code xref="l10n.plural.form">l10n.plural.form</code>. The
+ plural form index is in the <code>$form</code> parameter. You do not have to pass this
+ parameter. It will be computed automatically based on the <code>$number</code> parameter.</p>
+ <p>There is currently no support for editing plural forms using the standard PO
+ syntax. Instead, plurals are defined with an XML snippet. Instead of putting
+ the single translated message in the <sys>msgstr</sys> element, plural messages have
+ <sys>msgstr</sys> child elements of the <sys>msgstr</sys> element with the <sys>xml:lang</sys>
+ attribute. Each of these child <sys>msgstr</sys> elements has a <sys>form</sys> attribute that
+ holds the numeric index returned by <code xref="l10n.plural.form">l10n.plural.form</code>. Translators must 
adapt
+ the XML snippet according to the plural rules and forms defined in this
+ stylesheet for their language.</p>
+ <p>Some translations aren't simple strings, but are instead format strings where
+ certain values are inserted. This template can handle format strings with XML
+ marker elements to signal where values should be substituted. These values
+ can be the result of applying templates.</p>
+ <p>To enable format strings, set the <code>$format</code> parameter to <sys>true()</sys>.
+ Instead of just returning the translated string, this template will
+ apply templates in the mode <code xref="l10n.format.mode">l10n.format.mode</code> to the fragment contained 
in
+ the <sys>msgstr</sys> element.</p>
+ <p>The <code>$node</code> and <code>$string</code> parameters are passed to templates in
+ <code xref="l10n.format.mode">l10n.format.mode</code>. This stylesheet contains matches in <code 
xref="l10n.format.mode">l10n.format.mode</code>
+ for the marker elements <sys>&lt;string/></sys> and <sys>&lt;node/></sys>. The element
+ <sys>&lt;string/></sys> will be replaced by the string value of <code>$string</code>. The
+ element <sys>&lt;node/></sys> will apply templates without a mode to <code>$node</code>.
+ Text nodes are copied to the result in <code xref="l10n.format.mode">l10n.format.mode</code>.</p>
+ <p>If you need any other behavior, add elements with any name of your choosing to
+ the format string, then match on those elements in <code xref="l10n.format.mode">l10n.format.mode</code>. 
You will
+ be able to use the <code>$node</code> and <code>$string</code> parameters in your template. Try to
+ use a name that is unique.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="l10n.msgstr.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext.msg"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.plural.form"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.locale.page b/doc/yelp-xsl/C/l10n.locale.page
index 04feb14d..cd364d6b 100644
--- a/doc/yelp-xsl/C/l10n.locale.page
+++ b/doc/yelp-xsl/C/l10n.locale.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.locale" type="topic" style="xslt-param"><info><link 
type="guide" xref="l10n" group="parameters"/><link type="guide" xref="parameters" group="l10n"/><revision 
version="3.18" date="2015-08-13" status="final"/><desc>The top-level locale of the 
document.</desc></info><title>l10n.locale</title><p>The top-level locale of the document.</p>
-  
-  
-  <p>This parameter provides the top-level locale of the document, taken from either the 
<code>xml:lang</code> or the <code>lang</code> parameter of the root element. It holds the locale exactly as 
specified in the document, with no normalization.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="l10n.locale">
+ <info>
+  <link type="guide" xref="l10n" group="params"/>
+  <link type="guide" xref="params" group="l10n"/>
+  <desc>The top-level locale of the document.</desc>
+  <revision version="3.18" date="2015-08-13" status="final"/>
+ </info>
+ <title>l10n.locale</title>
+ <p>This parameter provides the top-level locale of the document, taken from either
+ the <sys>xml:lang</sys> or the <sys>lang</sys> parameter of the root element. It holds the
+ locale exactly as specified in the document, with no normalization.</p>
 </page>
diff --git a/doc/yelp-xsl/C/l10n.msgstr.key.page b/doc/yelp-xsl/C/l10n.msgstr.key.page
index d02f99be..5439ca47 100644
--- a/doc/yelp-xsl/C/l10n.msgstr.key.page
+++ b/doc/yelp-xsl/C/l10n.msgstr.key.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.msgstr.key" type="topic" style="xslt-key"><info><link 
type="guide" xref="l10n" group="keys"/><link type="guide" xref="keys" group="l10n"/><revision version="3.4" 
date="2012-01-26" status="final"/><desc>Get a translated message from an ID and a 
language.</desc></info><title>l10n.msgstr.key</title><p>Get a translated message from an ID and a 
language.</p>
-  
-  
-  <p>This key indexes all message translations in a message catalog file. The elements are indexed by the 
concatenation of the message id, the string <code>__LC__</code>, and the <code>xml:lang</code> attribute 
converted to lowercase.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="l10n.msgstr.key">
+ <info>
+  <link type="guide" xref="l10n" group="keys"/>
+  <link type="guide" xref="keys" group="l10n"/>
+  <desc>Get a translated message from an ID and a language.</desc>
+  <revision version="3.4" date="2012-01-26" status="final"/>
+ </info>
+ <title>l10n.msgstr.key</title>
+ <p>This key indexes all message translations in a message catalog file. The elements
+ are indexed by the concatenation of the message id, the string <sys>__LC__</sys>, and the
+ <sys>xml:lang</sys> attribute converted to lowercase.</p>
 </page>
diff --git a/doc/yelp-xsl/C/l10n.number.alphabetic.page b/doc/yelp-xsl/C/l10n.number.alphabetic.page
index 371156a1..d9e6f941 100644
--- a/doc/yelp-xsl/C/l10n.number.alphabetic.page
+++ b/doc/yelp-xsl/C/l10n.number.alphabetic.page
@@ -1,16 +1,29 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.number.alphabetic" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n-numbers" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Formats a 
number using an alphabetic numbering system</desc></info><title>l10n.number.alphabetic</title><p>Formats a 
number using an alphabetic numbering system</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>value</code></title>
-      <p>The numeric value of the number to format</p>
-    </item>
-    <item>
-      <title><code>alphabet</code></title>
-      <p>A string containing the characters of the alphabet to use</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about alphabetic numbering systems</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.number.alphabetic"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="l10n.number.alphabetic">
+ <info>
+  <link type="guide" xref="l10n-numbers" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Formats a number using an alphabetic numbering system</desc>
+ </info>
+ <title>l10n.number.alphabetic</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$value</code></title>
+    <p>The numeric value of the number to format</p>
+   </item>
+   <item>
+    <title><code>$alphabet</code></title>
+    <p>A string containing the characters of the alphabet to use</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about alphabetic numbering systems</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.number.alphabetic"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.number.cjk-ideographic.page b/doc/yelp-xsl/C/l10n.number.cjk-ideographic.page
index 5d837441..a990a2eb 100644
--- a/doc/yelp-xsl/C/l10n.number.cjk-ideographic.page
+++ b/doc/yelp-xsl/C/l10n.number.cjk-ideographic.page
@@ -1,16 +1,30 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.number.cjk-ideographic" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n-numbers" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Formats a 
number using a CJK ideographic system</desc></info><title>l10n.number.cjk-ideographic</title><p>Formats a 
number using a CJK ideographic system</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>value</code></title>
-      <p>The numeric value of the number to format</p>
-    </item>
-    <item>
-      <title><code>format</code></title>
-      <p>Which ideographic system to use</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about CJK ideographic numbering systems.  Valid values of <code 
style="xslt-param">format</code> are <code>cjk-japanese</code>, <code>cjk-chinese-simp</code>, and 
<code>cjk-chinese-trad</code>.</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="l10n.number.cjk-ideographic">
+ <info>
+  <link type="guide" xref="l10n-numbers" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Formats a number using a CJK ideographic system</desc>
+ </info>
+ <title>l10n.number.cjk-ideographic</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$value</code></title>
+    <p>The numeric value of the number to format</p>
+   </item>
+   <item>
+    <title><code>$format</code></title>
+    <p>Which ideographic system to use</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about CJK ideographic numbering systems.  Valid values of <code>$format</code>
+ are <sys>cjk-japanese</sys>, <sys>cjk-chinese-simp</sys>, and <sys>cjk-chinese-trad</sys>.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.number.cjk-ideographic.private"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/l10n.number.ionic.page b/doc/yelp-xsl/C/l10n.number.ionic.page
index d50e0a7b..1d886035 100644
--- a/doc/yelp-xsl/C/l10n.number.ionic.page
+++ b/doc/yelp-xsl/C/l10n.number.ionic.page
@@ -1,16 +1,30 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.number.ionic" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n-numbers" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Formats a 
number using the Ionic numeral system</desc></info><title>l10n.number.ionic</title><p>Formats a number using 
the Ionic numeral system</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>value</code></title>
-      <p>The numeric value of the number to format</p>
-    </item>
-    <item>
-      <title><code>format</code></title>
-      <p>Which format to use</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about the Ionic numeral system.  Talk about <code style="xslt-param">format</code> See 
<code>http://en.wikipedia.org/wiki/Greek_numerals</code>.</p></comment>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.number.ionic">
+ <info>
+  <link type="guide" xref="l10n-numbers" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Formats a number using the Ionic numeral system</desc>
+ </info>
+ <title>l10n.number.ionic</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$value</code></title>
+    <p>The numeric value of the number to format</p>
+   </item>
+   <item>
+    <title><code>$format</code></title>
+    <p>Which format to use</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about the Ionic numeral system.  Talk about <code>$format</code>
+ See <sys>http://en.wikipedia.org/wiki/Greek_numerals</sys>.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.number.ionic.private"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/l10n.number.numeric.page b/doc/yelp-xsl/C/l10n.number.numeric.page
index be8161ee..78685afa 100644
--- a/doc/yelp-xsl/C/l10n.number.numeric.page
+++ b/doc/yelp-xsl/C/l10n.number.numeric.page
@@ -1,16 +1,29 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.number.numeric" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n-numbers" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Formats a 
number using a numeric numbering system with any 
radix</desc></info><title>l10n.number.numeric</title><p>Formats a number using a numeric numbering system 
with any radix</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>value</code></title>
-      <p>The numeric value of the number to format</p>
-    </item>
-    <item>
-      <title><code>digits</code></title>
-      <p>A string containing the digits to use, starting with zero</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about numeric numbering systems</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.number.numeric"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="l10n.number.numeric">
+ <info>
+  <link type="guide" xref="l10n-numbers" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Formats a number using a numeric numbering system with any radix</desc>
+ </info>
+ <title>l10n.number.numeric</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$value</code></title>
+    <p>The numeric value of the number to format</p>
+   </item>
+   <item>
+    <title><code>$digits</code></title>
+    <p>A string containing the digits to use, starting with zero</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about numeric numbering systems</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.number.numeric"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.number.page b/doc/yelp-xsl/C/l10n.number.page
index bccd033a..c739357f 100644
--- a/doc/yelp-xsl/C/l10n.number.page
+++ b/doc/yelp-xsl/C/l10n.number.page
@@ -1,16 +1,38 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.number" type="topic" style="xslt-template"><info><link 
type="guide" xref="l10n-numbers" group="templates"/><link type="guide" xref="templates" 
group="l10n"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Formats a number according to a 
localized numbering system</desc></info><title>l10n.number</title><p>Formats a number according to a 
localized numbering system</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>value</code></title>
-      <p>The numeric value of the number to format</p>
-    </item>
-    <item>
-      <title><code>format</code></title>
-      <p>The numbering system to use</p>
-    </item>
-  </terms></synopsis>
-  <comment><p>Talk about numbering systems</p></comment>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.number.cjk-ideographic"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.number">
+ <info>
+  <link type="guide" xref="l10n-numbers" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Formats a number according to a localized numbering system</desc>
+ </info>
+ <title>l10n.number</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$value</code></title>
+    <p>The numeric value of the number to format</p>
+   </item>
+   <item>
+    <title><code>$format</code></title>
+    <p>The numbering system to use</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>REMARK: Talk about numbering systems</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.number.alphabetic"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.number.cjk-ideographic"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.number.ionic"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.number.numeric"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.page b/doc/yelp-xsl/C/l10n.page
index 66c52608..37c4c80d 100644
--- a/doc/yelp-xsl/C/l10n.page
+++ b/doc/yelp-xsl/C/l10n.page
@@ -1,2 +1,93 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n" type="guide" style="xslt-stylesheet"><?xslt-private 
l10n.gettext.msg?><?xslt-private l10n.gettext.msgstr?><info><link type="guide" xref="stylesheets" 
group="l10n"/><revision version="3.18" date="2015-07-24" status="final"/><link type="xslt-defines-template" 
xref="l10n.gettext"/><link type="xslt-defines-template" xref="l10n.plural.form"/><link 
type="xslt-defines-template" xref="l10n.direction"/><link type="xslt-defines-template" 
xref="l10n.align.start"/><link type="xslt-defines-template" xref="l10n.align.end"/><link 
type="xslt-implements-mode" xref="l10n.format.mode"/><link type="xslt-defines-param" 
xref="l10n.locale"/></info><title>Localized Strings</title><p>Templates for translated strings, with format 
strings and plural forms.</p><p>This stylesheet contains templates for getting localized strings, including 
format strings and plural forms. Format strings are important for proper localization, as constructing 
sentences
  from co
 ncatenation often produces poor results in many languages.</p><p>By default, the templates in this 
stylesheet work on the translations shipped with yelp-xsl, but the templates can be reused by yelp-xsl 
extensions (or even entirely separate stylesheets) by installing XML files with the translations under the 
domains subdirectory of the directory holding this file. The format of the file is designed to work well with 
itstool's join mode.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls Keys</title><item><p><link 
xref="l10n.msgstr.key"/></p></item></list><list style="c
 ompact">
 <title>Calls Parameters</title><item><p><link xref="l10n.locale"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:node</code></p></td></tr><tr><td><p><link
 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:string</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="l10n">
+ <info>
+  <link type="guide" xref="stylesheets" group="l10n"/>
+  <desc>Templates for translated strings, with format strings and plural forms.</desc>
+  <revision version="3.18" date="2015-07-24" status="final"/>
+ </info>
+ <title>Localized Strings</title>
+ <p>This stylesheet contains templates for getting localized strings, including
+ format strings and plural forms. Format strings are important for proper
+ localization, as constructing sentences from concatenation often produces
+ poor results in many languages.</p>
+ <p>By default, the templates in this stylesheet work on the translations shipped
+ with yelp-xsl, but the templates can be reused by yelp-xsl extensions (or even
+ entirely separate stylesheets) by installing XML files with the translations
+ under the domains subdirectory of the directory holding this file. The format
+ of the file is designed to work well with itstool's join mode.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="l10n.msgstr.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="l10n.format.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:node</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:string</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/l10n.plural.form.page b/doc/yelp-xsl/C/l10n.plural.form.page
index 75c9429e..f20a5687 100644
--- a/doc/yelp-xsl/C/l10n.plural.form.page
+++ b/doc/yelp-xsl/C/l10n.plural.form.page
@@ -1,17 +1,37 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="l10n.plural.form" type="topic" 
style="xslt-template"><info><link type="guide" xref="l10n" group="templates"/><link type="guide" 
xref="templates" group="l10n"/><revision version="3.18" date="2015-07-29" status="final"/><desc>Extract the 
plural form index for a given cardinality.</desc></info><title>l10n.plural.form</title><p>Extract the plural 
form index for a given cardinality.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>number</code></title>
-      <p>The cardinality of the plural form.</p>
-    </item>
-    <item>
-      <title><code>lang</code></title>
-      <p>The locale to use when looking up the translated string.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns a numeric index of a plural form for a given language, similarly to how indexes 
are used in gettext PO files. Different languages have different rules for plurals. Some languages have no 
plurals at all, while others have as many as six different forms. This plural form index is used by <code 
style="xslt-template" xref="l10n.gettext">l10n.gettext</code> to determine the correct string to use.</p>
-  <p>The rules in this template are hand-written. They are not taken from the PO files. They are written by 
referencing the PO files in various GNOME modules, as well as the plural rules in the Unicode CLDR.</p>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="l10n.locale"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="l10n.plural.form">
+ <info>
+  <link type="guide" xref="l10n" group="templates"/>
+  <link type="guide" xref="templates" group="l10n"/>
+  <desc>Extract the plural form index for a given cardinality.</desc>
+  <revision version="3.18" date="2015-07-29" status="final"/>
+ </info>
+ <title>l10n.plural.form</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$number</code></title>
+    <p>The cardinality of the plural form.</p>
+   </item>
+   <item>
+    <title><code>$lang</code></title>
+    <p>The locale to use when looking up the translated string.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns a numeric index of a plural form for a given language,
+ similarly to how indexes are used in gettext PO files. Different languages have
+ different rules for plurals. Some languages have no plurals at all, while others
+ have as many as six different forms. This plural form index is used by
+ <code xref="l10n.gettext">l10n.gettext</code> to determine the correct string to use.</p>
+ <p>The rules in this template are hand-written. They are not taken from the PO
+ files. They are written by referencing the PO files in various GNOME modules,
+ as well as the plural rules in the Unicode CLDR.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="l10n.locale"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal-cache.page b/doc/yelp-xsl/C/mal-cache.page
index b72d05e1..a0f4f521 100644
--- a/doc/yelp-xsl/C/mal-cache.page
+++ b/doc/yelp-xsl/C/mal-cache.page
@@ -1,2 +1,79 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal-cache" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="mal"/><revision version="0.0" date="1970-01-01" status="stub"/><link 
type="topic" xref="mal-link" group="stylesheets"/><link type="xslt-defines-template" 
xref="mal.cache.id"/><link type="xslt-defines-template" xref="mal.cache.info"/></info><title>Mallard Cache 
Files</title><p>Generate Mallard cache files from cache input files.</p><p>FIXME</p><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link x
 ref="mal
 .link.linkid"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>/cache:cache</code></p></td></tr><tr><td><p/></td><td><p><code>mal:page</code></p></td></tr><tr><td><p/></td><td><p><code>mal:section</code></p></td></tr><tr><td><p/></td><td><p><code>mal:title</code></p></td></tr><tr><td><p/></td><td><p><code>node()
 | text()</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal-cache">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal"/>
+  <link type="topic" xref="mal-link" group="includes"/>
+  <desc>Generate Mallard cache files from cache input files.</desc>
+ </info>
+ <title>Mallard Cache Files</title>
+ <p>FIXME</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>/cache:cache</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:section</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:title</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>node() | text()</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal-gloss.page b/doc/yelp-xsl/C/mal-gloss.page
index 22c5a57a..12f55a71 100644
--- a/doc/yelp-xsl/C/mal-gloss.page
+++ b/doc/yelp-xsl/C/mal-gloss.page
@@ -1,2 +1,34 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal-gloss" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="mal"/><revision version="0.0" date="1970-01-01" status="stub"/><link 
type="xslt-defines-template" xref="mal.gloss.match"/><link type="xslt-defines-template" 
xref="mal.gloss.terms"/></info><title>Mallard Glossaries</title><p>Common templates for the Mallard Glossary 
extension.</p><p>This stylesheet contains utility templates for locating and linking to terms with the 
Mallard Glossary extension.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="
 compact"
<title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal-gloss">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal"/>
+  <desc>Common templates for the Mallard Glossary extension.</desc>
+ </info>
+ <title>Mallard Glossaries</title>
+ <p>This stylesheet contains utility templates for locating and linking to terms
+ with the Mallard Glossary extension.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal-if.page b/doc/yelp-xsl/C/mal-if.page
index 8e20bceb..ebe1f442 100644
--- a/doc/yelp-xsl/C/mal-if.page
+++ b/doc/yelp-xsl/C/mal-if.page
@@ -1,2 +1,47 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal-if" type="guide" style="xslt-stylesheet"><?xslt-private 
_mal.if.test.check_token?><?xslt-private _mal.if.test.flatten_token?><info><link type="guide" 
xref="stylesheets" group="mal"/><revision version="3.8" date="2012-11-05" status="final"/><link 
type="xslt-defines-template" xref="mal.if.test"/><link type="xslt-defines-param" xref="mal.if.target"/><link 
type="xslt-defines-param" xref="mal.if.platform"/><link type="xslt-defines-param" 
xref="mal.if.features"/><link type="xslt-defines-param" xref="mal.if.custom"/><link type="xslt-defines-param" 
xref="mal.if.maybe"/></info><title>Mallard Conditionals</title><p>Support for run-time conditional 
processing.</p><p>This stylesheet contains utilities for handling conditional processing in Mallard 
documents.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></
 links><l
 inks type="topic" groups="modes" style="linklist"><title>Modes</title></links><links type="topic" 
groups="templates" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal.if.custom"/></p></item><item><p><link 
xref="mal.if.features"/></p></item><item><p><link xref="mal.if.maybe"/></p></item><item><p><link 
xref="mal.if.platform"/></p></item><item><p><link xref="mal.if.target"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal-if">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal"/>
+  <desc>Support for run-time conditional processing.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>Mallard Conditionals</title>
+ <p>This stylesheet contains utilities for handling conditional processing
+ in Mallard documents.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.if.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.features"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.maybe"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.platform"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.target"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal-link.page b/doc/yelp-xsl/C/mal-link.page
index a32d5bb4..5b69f8fe 100644
--- a/doc/yelp-xsl/C/mal-link.page
+++ b/doc/yelp-xsl/C/mal-link.page
@@ -1,2 +1,96 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal-link" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal.link.target.default?><info><link type="guide" xref="stylesheets" 
group="mal"/><revision version="3.4" date="2012-01-17" status="final"/><link type="xslt-defines-template" 
xref="mal.link.linkid"/><link type="xslt-defines-template" xref="mal.link.xref.linkid"/><link 
type="xslt-defines-template" xref="mal.link.content"/><link type="xslt-defines-template" 
xref="mal.link.content.custom"/><link type="xslt-defines-template" xref="mal.link.desc"/><link 
type="xslt-defines-template" xref="mal.link.desc.custom"/><link type="xslt-defines-template" 
xref="mal.link.tooltip"/><link type="xslt-defines-template" xref="mal.link.tooltip.custom"/><link 
type="xslt-defines-template" xref="mal.link.target"/><link type="xslt-defines-template" 
xref="mal.link.target.extended"/><link type="xslt-defines-template" xref="mal.link.target.custom"/><link 
type="xslt-defines-template" xref="mal.l
 ink.guid
 elinks"/><link type="xslt-defines-template" xref="mal.link.topiclinks"/><link type="xslt-defines-template" 
xref="mal.link.seealsolinks"/><link type="xslt-defines-template" xref="mal.link.linktrails"/><link 
type="xslt-defines-template" xref="mal.link.sorttitle"/><link type="xslt-implements-mode" 
xref="mal.link.content.mode"/><link type="xslt-defines-param" xref="mal.cache.file"/><link 
type="xslt-defines-param" xref="mal.cache"/><link type="xslt-defines-param" xref="mal.link.prefix"/><link 
type="xslt-defines-param" xref="mal.link.extension"/><link type="xslt-defines-param" 
xref="mal.link.default_root"/></info><title>Mallard Links</title><p>Common linking utilities for Mallard 
documents.</p><p>This stylesheet contains various utilities for handling links in Mallard documents.  The 
templates in this stylesheet make it easier to handle the different linking mechanisms in Mallard, including 
the dynamic automatic linking systems.</p><links type="topic" groups="stylesheets" style="l
 inklist"
<title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="utils.email_address"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item><item><p><link xref="mal.cache.link.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item><item><p><link 
xref="mal.cache.file"/></p></item><item><p><link xref="mal.link.default_root"/></p></item><item><p><link 
xref="mal.link.extension"/></p></item><item><p><link xref="mal.link.prefix"/></p></ite
 m></list
<table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal.link.content.mode">mal.link.content.mode</link></p></td><td><p><code>* | 
text()</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal-link">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal"/>
+  <desc>Common linking utilities for Mallard documents.</desc>
+  <revision version="3.4" date="2012-01-17" status="final"/>
+ </info>
+ <title>Mallard Links</title>
+ <p>This stylesheet contains various utilities for handling links in Mallard
+ documents.  The templates in this stylesheet make it easier to handle the
+ different linking mechanisms in Mallard, including the dynamic automatic
+ linking systems.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.email_address"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal.link.content.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal.link.content.mode">mal.link.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>* | text()</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal-sort.page b/doc/yelp-xsl/C/mal-sort.page
index 26a989ba..43b9baf3 100644
--- a/doc/yelp-xsl/C/mal-sort.page
+++ b/doc/yelp-xsl/C/mal-sort.page
@@ -1,2 +1,56 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal-sort" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal.sort.tsort.node?><?xslt-private _mal.sort.getgroups?><info><link 
type="guide" xref="stylesheets" group="mal"/><revision status="incomplete" version="1.0" 
date="2010-07-08"/><link type="xslt-requires" xref="mal-link"/><link type="xslt-defines-template" 
xref="mal.sort.tsort"/></info><title>Mallard Topological Sort</title><p>Sort a Mallard document.</p><p>This 
stylesheet contains utilities for sorting the pages in a Mallard document based on their informational 
links.</p><links type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links 
type="topic" groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" 
groups="modes" style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" style="linklist"
<title>
 Keys</title></links><list style="compact"><title>Requires Stylesheets</title><item><p><link 
xref="mal-link"/></p></item></list><list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.xref.linkid"/></p></item><item><p><link 
xref="mal.link.topiclinks"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item><item><p><link xref="mal.link.default_root"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal-sort">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal"/>
+  <desc>Sort a Mallard document.</desc>
+  <revision version="1.0" date="2010-07-08"/>
+ </info>
+ <title>Mallard Topological Sort</title>
+ <p>This stylesheet contains utilities for sorting the pages in a Mallard
+ document based on their informational links.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.topiclinks"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.cache.file.page b/doc/yelp-xsl/C/mal.cache.file.page
index 1ce07eda..7e0dc18d 100644
--- a/doc/yelp-xsl/C/mal.cache.file.page
+++ b/doc/yelp-xsl/C/mal.cache.file.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache.file" type="topic" style="xslt-param"><info><link 
type="guide" xref="mal-link" group="parameters"/><link type="guide" xref="parameters" group="mal"/><revision 
version="3.0" date="2010-01-02" status="final"/><desc>The location of the cache 
file.</desc></info><title>mal.cache.file</title><p>The location of the cache file.</p>
-  
-  
-  <p>In order to locate and process links between pages, this stylesheet requires a Mallard cache file.  Use 
this parameter to pass the path to a valid cache file.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.cache.file">
+ <info>
+  <link type="guide" xref="mal-link" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The location of the cache file.</desc>
+  <revision version="3.0" date="2010-01-02" status="final"/>
+ </info>
+ <title>mal.cache.file</title>
+ <p>In order to locate and process links between pages, this stylesheet requires
+ a Mallard cache file.  Use this parameter to pass the path to a valid cache
+ file.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.cache.id.page b/doc/yelp-xsl/C/mal.cache.id.page
index a88ea4a6..ca4c82fc 100644
--- a/doc/yelp-xsl/C/mal.cache.id.page
+++ b/doc/yelp-xsl/C/mal.cache.id.page
@@ -1,5 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache.id" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-cache" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="0.0" date="1970-01-01" 
status="stub"/><desc/></info><title>mal.cache.id</title>
-  
-  
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.cache.id">
+ <info>
+  <link type="guide" xref="mal-cache" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+ </info>
+ <title>mal.cache.id</title>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.cache.info.page b/doc/yelp-xsl/C/mal.cache.info.page
index 8da4b69f..d8e0336b 100644
--- a/doc/yelp-xsl/C/mal.cache.info.page
+++ b/doc/yelp-xsl/C/mal.cache.info.page
@@ -1,5 +1,8 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache.info" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-cache" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="0.0" date="1970-01-01" 
status="stub"/><desc/></info><title>mal.cache.info</title>
-  
-  
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.cache.info">
+ <info>
+  <link type="guide" xref="mal-cache" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+ </info>
+ <title>mal.cache.info</title>
 </page>
diff --git a/doc/yelp-xsl/C/mal.cache.key.page b/doc/yelp-xsl/C/mal.cache.key.page
index b1b414df..6e42c0e6 100644
--- a/doc/yelp-xsl/C/mal.cache.key.page
+++ b/doc/yelp-xsl/C/mal.cache.key.page
@@ -1,7 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache.key" type="topic" style="xslt-key"><info><link 
type="guide" xref="mal-link" group="keys"/><link type="guide" xref="keys" group="mal"/><revision 
version="3.4" date="2012-01-25" status="final"/><desc>Get a page or section from the <code>id</code> 
attribute.</desc></info><title>mal.cache.key</title><p>Get a page or section from the <code>id</code> 
attribute.</p>
-  
-  
-  <p>This key returns a <code>page</code> or <code>section</code> element from a Mallard cache file from the 
<code>id</code> attribute. In cache files, the <code>id</code> attribute of <code>section</code> elements is 
set to a qualified ID by prefixing it with the containing page ID and the hash character.</p>
-  <p>The context node must be in the document <code style="xslt-param" xref="mal.cache">mal.cache</code> 
when this key is called.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="mal.cache.key">
+ <info>
+  <link type="guide" xref="mal-link" group="keys"/>
+  <link type="guide" xref="keys" group="mal"/>
+  <desc>Get a page or section from the <sys>id</sys> attribute.</desc>
+  <revision version="3.4" date="2012-01-25" status="final"/>
+ </info>
+ <title>mal.cache.key</title>
+ <p>This key returns a <sys>page</sys> or <sys>section</sys> element from a Mallard cache file from
+ the <sys>id</sys> attribute. In cache files, the <sys>id</sys> attribute of <sys>section</sys> elements
+ is set to a qualified ID by prefixing it with the containing page ID and the
+ hash character.</p>
+ <p>The context node must be in the document <code xref="mal.cache">mal.cache</code> when this key is 
called.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.cache.link.key.page b/doc/yelp-xsl/C/mal.cache.link.key.page
index 5d51c5a0..63289021 100644
--- a/doc/yelp-xsl/C/mal.cache.link.key.page
+++ b/doc/yelp-xsl/C/mal.cache.link.key.page
@@ -1,7 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache.link.key" type="topic" 
style="xslt-key"><info><link type="guide" xref="mal-link" group="keys"/><link type="guide" xref="keys" 
group="mal"/><revision version="3.4" date="2012-01-25" status="final"/><desc>Get <code>link</code> elements 
from a link type and <code>xref</code> attribute.</desc></info><title>mal.cache.link.key</title><p>Get 
<code>link</code> elements from a link type and <code>xref</code> attribute.</p>
-  
-  
-  <p>This key returns all <code>link</code> elements from a Mallard cache file from the <code>type</code> 
and <code>xref</code> attributes. They key is the concatenation of the <code>type</code> attribute, the colon 
character, and the <code>xref</code> attribute. Only <code>link</code> elements with both a <code>type</code> 
and <code>xref</code> attribute are supported.</p>
-  <p>The context node must be in the document <code style="xslt-param" xref="mal.cache">mal.cache</code> 
when this key is called.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="mal.cache.link.key">
+ <info>
+  <link type="guide" xref="mal-link" group="keys"/>
+  <link type="guide" xref="keys" group="mal"/>
+  <desc>Get <sys>link</sys> elements from a link type and <sys>xref</sys> attribute.</desc>
+  <revision version="3.4" date="2012-01-25" status="final"/>
+ </info>
+ <title>mal.cache.link.key</title>
+ <p>This key returns all <sys>link</sys> elements from a Mallard cache file from the <sys>type</sys>
+ and <sys>xref</sys> attributes. They key is the concatenation of the <sys>type</sys> attribute,
+ the colon character, and the <sys>xref</sys> attribute. Only <sys>link</sys> elements with both
+ a <sys>type</sys> and <sys>xref</sys> attribute are supported.</p>
+ <p>The context node must be in the document <code xref="mal.cache">mal.cache</code> when this key is 
called.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.cache.page b/doc/yelp-xsl/C/mal.cache.page
index f9314b2d..ba03a85d 100644
--- a/doc/yelp-xsl/C/mal.cache.page
+++ b/doc/yelp-xsl/C/mal.cache.page
@@ -1,7 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.cache" type="topic" style="xslt-param"><info><link 
type="guide" xref="mal-link" group="parameters"/><link type="guide" xref="parameters" group="mal"/><revision 
version="3.0" date="2010-01-02" status="final"/><desc>The cache document as a node 
set.</desc></info><title>mal.cache</title><p>The cache document as a node set.</p>
-  
-  
-  <p>This parameter points to the root <code>cache:cache</code> element of a Mallard cache document.  By 
default, it selects the root element from the file provided in <code style="xslt-param" 
xref="mal.cache.file">mal.cache.file</code>.</p>
-  <p>Some processing tools may create a Mallard cache document without outputting it to a file.  Those tools 
can use this parameter directly.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.cache">
+ <info>
+  <link type="guide" xref="mal-link" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The cache document as a node set.</desc>
+  <revision version="3.0" date="2010-01-02" status="final"/>
+ </info>
+ <title>mal.cache</title>
+ <p>This parameter points to the root <sys>cache:cache</sys> element of a Mallard cache
+ document.  By default, it selects the root element from the file provided in
+ <code xref="mal.cache.file">mal.cache.file</code>.</p>
+ <p>Some processing tools may create a Mallard cache document without outputting
+ it to a file.  Those tools can use this parameter directly.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.cache</code></title>
+    <p><code>document($mal.cache.file, /)/cache:cache</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.gloss.key.page b/doc/yelp-xsl/C/mal.gloss.key.page
index 70dd991c..515414ef 100644
--- a/doc/yelp-xsl/C/mal.gloss.key.page
+++ b/doc/yelp-xsl/C/mal.gloss.key.page
@@ -1,6 +1,12 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.gloss.key" type="topic" style="xslt-key"><info><link 
type="guide" xref="mal-gloss" group="keys"/><link type="guide" xref="keys" group="mal"/><revision 
version="0.0" date="1970-01-01" status="stub"/><desc>Get a <code>gloss:term</code> element from its 
<code>id</code> attribute.</desc></info><title>mal.gloss.key</title><p>Get a <code>gloss:term</code> element 
from its <code>id</code> attribute.</p>
-  
-  
-  <p>This key returns <code>gloss:term</code> elements based on their <code>id</code> attribute. This key 
only applies to elements inside a cache file. Make sure to make the cache file the context document before 
calling this key.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-key" id="mal.gloss.key">
+ <info>
+  <link type="guide" xref="mal-gloss" group="keys"/>
+  <link type="guide" xref="keys" group="mal"/>
+  <desc>Get a <sys>gloss:term</sys> element from its <sys>id</sys> attribute.</desc>
+ </info>
+ <title>mal.gloss.key</title>
+ <p>This key returns <sys>gloss:term</sys> elements based on their <sys>id</sys> attribute. This
+ key only applies to elements inside a cache file. Make sure to make the cache
+ file the context document before calling this key.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.gloss.match.page b/doc/yelp-xsl/C/mal.gloss.match.page
index 03f3cd8d..e3e5ebdf 100644
--- a/doc/yelp-xsl/C/mal.gloss.match.page
+++ b/doc/yelp-xsl/C/mal.gloss.match.page
@@ -1,17 +1,33 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.gloss.match" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-gloss" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Determine 
whether a glossary term matches a criterion.</desc></info><title>mal.gloss.match</title><p>Determine whether 
a glossary term matches a criterion.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>match</code></title>
-      <p>A <code>gloss:match</code> element containing criteria.</p>
-    </item>
-    <item>
-      <title><code>term</code></title>
-      <p>A <code>gloss:term</code> element to attempt to match.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template determines whether a glossary term matches a condition, as given by a 
<code>gloss:match</code> element. If the term matches, an empty string is output. Otherwise, a non-empty 
string is output.</p>
-  <p>To determine if a term matches a set of matches, call this template for each <code>gloss:match</code> 
element, then check if the concatenated result is empty.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.gloss.match">
+ <info>
+  <link type="guide" xref="mal-gloss" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Determine whether a glossary term matches a criterion.</desc>
+ </info>
+ <title>mal.gloss.match</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$match</code></title>
+    <p>A <sys>gloss:match</sys> element containing criteria.</p>
+   </item>
+   <item>
+    <title><code>$term</code></title>
+    <p>A <sys>gloss:term</sys> element to attempt to match.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template determines whether a glossary term matches a condition, as given
+ by a <sys>gloss:match</sys> element. If the term matches, an empty string is output.
+ Otherwise, a non-empty string is output.</p>
+ <p>To determine if a term matches a set of matches, call this template for each
+ <sys>gloss:match</sys> element, then check if the concatenated result is empty.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.gloss.terms.page b/doc/yelp-xsl/C/mal.gloss.terms.page
index 569df7a7..d6f93e1c 100644
--- a/doc/yelp-xsl/C/mal.gloss.terms.page
+++ b/doc/yelp-xsl/C/mal.gloss.terms.page
@@ -1,15 +1,46 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.gloss.terms" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-gloss" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Output the 
glossary terms for a page or section.</desc></info><title>mal.gloss.terms</title><p>Output the glossary terms 
for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The glossary <code>page</code> or <code>section</code> to output terms for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the terms that should be displayed for <code style="xslt-param">node</code>.This 
output is a result tree fragment. To use these results, call <code>exsl:node-set</code> on them. This 
template locates all terms throughout all pages and filters them based on any <code>gloss:match</code> 
elements in the <code>info</code> child of <code style="xslt-param">node</code>, and also excludes terms that 
are matched by child sections of <code style="xslt-param">node</code>.</p>
-  <p>The filtered terms are then grouped by matching ID. For each unique ID, this template outputs a 
<code>gloss:term</code> element with the corresponding <code>id</code> attribute. Each of these elements 
contains <code>title</code> elements reflecting the titles in the actual term definitions. These titles have 
duplicates removed, compared by the space-normalized string value, and are sorted.</p>
-  <p>These <code>gloss:term</code> elements then contain further <code>gloss:term</code> elements, which are 
copies of the actual terms with the same ID. These elements have an <code>xref</code> attribute added 
containing the ID of the containing page.</p>
-  <p>The top-level <code>gloss:term</code> elements and the <code>gloss:term</code> elements they contain 
are not sorted. Only the <code>title</code> elements in the top-level <code>gloss:term</code> elements are 
sorted.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.gloss.match"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.gloss.terms">
+ <info>
+  <link type="guide" xref="mal-gloss" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the glossary terms for a page or section.</desc>
+ </info>
+ <title>mal.gloss.terms</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The glossary <sys>page</sys> or <sys>section</sys> to output terms for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the terms that should be displayed for <code>$node.This</code> output
+ is a result tree fragment. To use these results, call <sys>exsl:node-set</sys> on them.
+ This template locates all terms throughout all pages and filters them based on
+ any <sys>gloss:match</sys> elements in the <sys>info</sys> child of <code>$node</code>, and also excludes
+ terms that are matched by child sections of <code>$node</code>.</p>
+ <p>The filtered terms are then grouped by matching ID. For each unique ID, this
+ template outputs a <sys>gloss:term</sys> element with the corresponding <sys>id</sys> attribute.
+ Each of these elements contains <sys>title</sys> elements reflecting the titles in the
+ actual term definitions. These titles have duplicates removed, compared by the
+ space-normalized string value, and are sorted.</p>
+ <p>These <sys>gloss:term</sys> elements then contain further <sys>gloss:term</sys> elements, which
+ are copies of the actual terms with the same ID. These elements have an <sys>xref</sys>
+ attribute added containing the ID of the containing page.</p>
+ <p>The top-level <sys>gloss:term</sys> elements and the <sys>gloss:term</sys> elements they contain
+ are not sorted. Only the <sys>title</sys> elements in the top-level <sys>gloss:term</sys>
+ elements are sorted.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.gloss.match"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.if.custom.page b/doc/yelp-xsl/C/mal.if.custom.page
index c4d75692..589b2ff3 100644
--- a/doc/yelp-xsl/C/mal.if.custom.page
+++ b/doc/yelp-xsl/C/mal.if.custom.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.custom" type="topic" style="xslt-param"><info><link 
type="guide" xref="mal-if" group="parameters"/><link type="guide" xref="parameters" group="mal"/><revision 
version="3.8" date="2012-11-05" status="final"/><desc>A custom list of supported 
tokens.</desc></info><title>mal.if.custom</title><p>A custom list of supported tokens.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens to enable for conditional processing. It is used 
by the template <code style="xslt-template" xref="mal.if.test">mal.if.test</code>. This parameter is meant to 
hold extra values enabled by hand or by a customization stylesheet.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.if.custom">
+ <info>
+  <link type="guide" xref="mal-if" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>A custom list of supported tokens.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.custom</title>
+ <p>This parameter takes a space-separated list of tokens to enable for conditional
+ processing. It is used by the template <code xref="mal.if.test">mal.if.test</code>. This parameter is meant
+ to hold extra values enabled by hand or by a customization stylesheet.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.if.custom</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.if.features.page b/doc/yelp-xsl/C/mal.if.features.page
index 263daca2..b1edfae8 100644
--- a/doc/yelp-xsl/C/mal.if.features.page
+++ b/doc/yelp-xsl/C/mal.if.features.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.features" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal-if" group="parameters"/><link type="guide" 
xref="parameters" group="mal"/><revision version="3.8" date="2012-11-05" status="final"/><desc>The list of 
supported feature tokens.</desc></info><title>mal.if.features</title><p>The list of supported feature 
tokens.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens to enable for conditional processing. It is used 
by the template <code style="xslt-template" xref="mal.if.test">mal.if.test</code>. This parameter is meant to 
hold tokens that specify the capabilities of these stylesheets. It should usually be set by the primary 
importing stylesheet.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.if.features">
+ <info>
+  <link type="guide" xref="mal-if" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The list of supported feature tokens.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.features</title>
+ <p>This parameter takes a space-separated list of tokens to enable for conditional
+ processing. It is used by the template <code xref="mal.if.test">mal.if.test</code>. This parameter is meant
+ to hold tokens that specify the capabilities of these stylesheets. It should
+ usually be set by the primary importing stylesheet.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.if.features</code></title>
+    <p><code>' mallard:1.0 '</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.if.maybe.page b/doc/yelp-xsl/C/mal.if.maybe.page
index f97b8e91..4f1bf167 100644
--- a/doc/yelp-xsl/C/mal.if.maybe.page
+++ b/doc/yelp-xsl/C/mal.if.maybe.page
@@ -1,6 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.maybe" type="topic" style="xslt-param"><info><link 
type="guide" xref="mal-if" group="parameters"/><link type="guide" xref="parameters" group="mal"/><revision 
version="3.8" date="2012-11-05" status="final"/><desc>A list of tokens that may be 
true.</desc></info><title>mal.if.maybe</title><p>A list of tokens that may be true.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens that may be true. The template <code 
style="xslt-template" xref="mal.if.test">mal.if.test</code> returns special flags when a condition may be 
true, allowing conditional processing to be deferred (for example, to CSS media selectors). This parameter 
should usually be set by the primary importing stylesheet.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.if.maybe">
+ <info>
+  <link type="guide" xref="mal-if" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>A list of tokens that may be true.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.maybe</title>
+ <p>This parameter takes a space-separated list of tokens that may be true. The
+ template <code xref="mal.if.test">mal.if.test</code> returns special flags when a condition may be true,
+ allowing conditional processing to be deferred (for example, to CSS media
+ selectors). This parameter should usually be set by the primary importing
+ stylesheet.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.if.maybe</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.if.platform.page b/doc/yelp-xsl/C/mal.if.platform.page
index e96261a0..57fdbef7 100644
--- a/doc/yelp-xsl/C/mal.if.platform.page
+++ b/doc/yelp-xsl/C/mal.if.platform.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.platform" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal-if" group="parameters"/><link type="guide" 
xref="parameters" group="mal"/><revision version="3.8" date="2012-11-05" status="final"/><desc>The list of 
supported platform tokens.</desc></info><title>mal.if.platform</title><p>The list of supported platform 
tokens.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens to enable for conditional processing. It is used 
by the template <code style="xslt-template" xref="mal.if.test">mal.if.test</code>. This parameter is meant to 
hold tokens starting with <code>platform:</code>. It should usually be set by hand or by a customization 
stylesheet.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.if.platform">
+ <info>
+  <link type="guide" xref="mal-if" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The list of supported platform tokens.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.platform</title>
+ <p>This parameter takes a space-separated list of tokens to enable for conditional
+ processing. It is used by the template <code xref="mal.if.test">mal.if.test</code>. This parameter is meant
+ to hold tokens starting with <sys>platform:</sys>. It should usually be set by hand or
+ by a customization stylesheet.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.if.platform</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.if.target.page b/doc/yelp-xsl/C/mal.if.target.page
index 5eb37b99..c2737ec7 100644
--- a/doc/yelp-xsl/C/mal.if.target.page
+++ b/doc/yelp-xsl/C/mal.if.target.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.target" type="topic" style="xslt-param"><info><link 
type="guide" xref="mal-if" group="parameters"/><link type="guide" xref="parameters" group="mal"/><revision 
version="3.8" date="2012-11-05" status="final"/><desc>The list of supported target 
tokens.</desc></info><title>mal.if.target</title><p>The list of supported target tokens.</p>
-  
-  
-  <p>This parameter takes a space-separated list of tokens to enable for conditional processing. It is used 
by the template <code style="xslt-template" xref="mal.if.test">mal.if.test</code>. This parameter is meant to 
hold tokens starting with <code>target:</code>. It should usually be set by the primary importing 
stylesheet.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.if.target">
+ <info>
+  <link type="guide" xref="mal-if" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The list of supported target tokens.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.target</title>
+ <p>This parameter takes a space-separated list of tokens to enable for conditional
+ processing. It is used by the template <code xref="mal.if.test">mal.if.test</code>. This parameter is meant
+ to hold tokens starting with <sys>target:</sys>. It should usually be set by the primary
+ importing stylesheet.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.if.target</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.if.test.page b/doc/yelp-xsl/C/mal.if.test.page
index d8e4d11b..a85799b3 100644
--- a/doc/yelp-xsl/C/mal.if.test.page
+++ b/doc/yelp-xsl/C/mal.if.test.page
@@ -1,19 +1,63 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.if.test" type="topic" style="xslt-template"><info><link 
type="guide" xref="mal-if" group="templates"/><link type="guide" xref="templates" group="mal"/><revision 
version="3.8" date="2012-11-05" status="final"/><desc>Test if a condition is 
true.</desc></info><title>mal.if.test</title><p>Test if a condition is true.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element to check the condition for.</p>
-    </item>
-    <item>
-      <title><code>test</code></title>
-      <p>The test expression.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template evaluates the test expression <code style="xslt-param">test</code>, which is taken 
automatically from the <code>test</code> or <code>if:test</code> attribute of $node. It splits the expression 
on commas into subexpressions, then splits each subexpression on spaces into tokens. A token is taken to be 
true if it's in one of the space-separated lists from <code style="xslt-param" 
xref="mal.if.target">mal.if.target</code>, <code style="xslt-param" 
xref="mal.if.platform">mal.if.platform</code>, <code style="xslt-param" 
xref="mal.if.features">mal.if.features</code>, or <code style="xslt-param" 
xref="mal.if.custom">mal.if.custom</code>. If the token starts with an exclamation point, the exclamation 
point is stripped and the resulting truth value is negated.</p>
-  <p>A subexpression is true if all its tokens is true. The full test expression is true if any 
subexpression is true. If the test expression is true, the literal string <code>'true'</code> is returned. If 
the test expression is false, the empty string is returned.</p>
-  <p>This template can handle "maybe" values: tokens that may or may not be true, and whose truth values are 
deferred to post-transform time. A token is maybe if it appears in the space-separated list <code 
style="xslt-param" xref="mal.if.maybe">mal.if.maybe</code>. If a subexpression contains a maybe value and 
does not contain any false tokens, its truth value is a special string constructed from the maybe tokens and 
starting with the string <code>if__</code>. If any subexpressions are maybe and none of the subexpressions 
are false, the return value is a space-separated list of the maybe strings.</p>
-  <p>Maybe tokens usually must be handled specifically by the importing stylesheet. It's usually not 
sufficient to just add a token to <code style="xslt-param" xref="mal.if.maybe">mal.if.maybe</code>. This 
template will handle any maybe token, but it does not handle the actual logic of dynamically showing or 
hiding content based on those tokens.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.if.test">
+ <info>
+  <link type="guide" xref="mal-if" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Test if a condition is true.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal.if.test</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element to check the condition for.</p>
+   </item>
+   <item>
+    <title><code>$test</code></title>
+    <p>The test expression.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template evaluates the test expression <code>$test</code>, which is taken automatically
+ from the <sys>test</sys> or <sys>if:test</sys> attribute of <code>$node</code>. It splits the expression on
+ commas into subexpressions, then splits each subexpression on spaces into tokens.
+ A token is taken to be true if it's in one of the space-separated lists from
+ <code xref="mal.if.target">mal.if.target</code>, <code xref="mal.if.platform">mal.if.platform</code>, <code 
xref="mal.if.features">mal.if.features</code>, or <code xref="mal.if.custom">mal.if.custom</code>.
+ If the token starts with an exclamation point, the exclamation point is stripped
+ and the resulting truth value is negated.</p>
+ <p>A subexpression is true if all its tokens is true. The full test expression is
+ true if any subexpression is true. If the test expression is true, the literal
+ string <sys>'true'</sys> is returned. If the test expression is false, the empty
+ string is returned.</p>
+ <p>This template can handle "maybe" values: tokens that may or may not be true,
+ and whose truth values are deferred to post-transform time. A token is maybe
+ if it appears in the space-separated list <code xref="mal.if.maybe">mal.if.maybe</code>. If a subexpression
+ contains a maybe value and does not contain any false tokens, its truth value
+ is a special string constructed from the maybe tokens and starting with the
+ string <sys>if__</sys>. If any subexpressions are maybe and none of the subexpressions
+ are false, the return value is a space-separated list of the maybe strings.</p>
+ <p>Maybe tokens usually must be handled specifically by the importing stylesheet.
+ It's usually not sufficient to just add a token to <code xref="mal.if.maybe">mal.if.maybe</code>. This
+ template will handle any maybe token, but it does not handle the actual logic
+ of dynamically showing or hiding content based on those tokens.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.if.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.features"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.maybe"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.platform"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.target"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.content.custom.page b/doc/yelp-xsl/C/mal.link.content.custom.page
index f0451e80..6b45ad0a 100644
--- a/doc/yelp-xsl/C/mal.link.content.custom.page
+++ b/doc/yelp-xsl/C/mal.link.content.custom.page
@@ -1,33 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.content.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><link type="guide" xref="stubs" group="mal"/><revision version="3.18" 
date="2015-06-06" status="final"/><desc>Output the content for a custom <code>link</code> 
element.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal.link.content.custom</title><p>Output the 
content for a custom <code>link</code> element.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="mal.link.content">mal.link.content</code> 
to create content for custom links. Use this template to support the <code>action</code> attribute or 
extended <code>xref</code> attributes containing slash or colon characters.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.content.custom">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the content for a custom <sys>link</sys> element.</desc>
+ </info>
+ <title>mal.link.content.custom</title>
+ <p>:Stub: true
+ @revision[version=3.18 date=2015-06-06 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal.link.content">mal.link.content</code> to create content for 
custom
+ links. Use this template to support the <sys>action</sys> attribute or extended <sys>xref</sys>
+ attributes containing slash or colon characters.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.content.mode.page b/doc/yelp-xsl/C/mal.link.content.mode.page
index efb7d859..8ac6e876 100644
--- a/doc/yelp-xsl/C/mal.link.content.mode.page
+++ b/doc/yelp-xsl/C/mal.link.content.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.content.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal-link" group="modes"/><link type="guide" xref="modes" 
group="mal"/><revision version="3.0" date="2010-01-02" status="final"/><desc>Output the content for a link 
from the contents of a <code>title</code> element.</desc></info><title>mal.link.content.mode</title><p>Output 
the content for a link from the contents of a <code>title</code> element.</p>
-  
-  
-  <p>This mode is applied to the contents of a <code>title</code> element by <code style="xslt-template" 
xref="mal.link.content">mal.link.content</code>. By default, it returns the string value of its input.  
Stylesheets that use <code style="xslt-template" xref="mal.link.content">mal.link.content</code> should map 
this mode to inline processing.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal.link.content.mode">
+ <info>
+  <link type="guide" xref="mal-link" group="modes"/>
+  <link type="guide" xref="modes" group="mal"/>
+  <desc>Output the content for a link from the contents of a <sys>title</sys> element.</desc>
+  <revision version="3.0" date="2010-01-02" status="final"/>
+ </info>
+ <title>mal.link.content.mode</title>
+ <p>This mode is applied to the contents of a <sys>title</sys> element by <code 
xref="mal.link.content">mal.link.content</code>.
+ By default, it returns the string value of its input.  Stylesheets that use
+ <code xref="mal.link.content">mal.link.content</code> should map this mode to inline processing.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.content.page b/doc/yelp-xsl/C/mal.link.content.page
index e10d3943..220711d1 100644
--- a/doc/yelp-xsl/C/mal.link.content.page
+++ b/doc/yelp-xsl/C/mal.link.content.page
@@ -1,36 +1,99 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.content" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-06" status="final"/><desc>Output the 
content for a <code>link</code> element.</desc></info><title>mal.link.content</title><p>Output the content 
for a <code>link</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the automatic text content for a link.  It should only be used for links that do 
not have specified content.  If <code style="xslt-param">xref</code> points to a valid page or section, the 
appropriate link title from that page or section will be selected, based on the list of roles in <code 
style="xslt-param">role</code>. The first role for which a matching link title is found will be used. 
Otherwise, the link title without a role is used, or the primary title. The <code style="xslt-mode" 
xref="mal.link.content.mode">mal.link.content.mode</code> mode is applied to the contents of that title.  
Stylesheets using this template should map that mode to inline processing.</p>
-  <p>For inline links, <code style="xslt-param">node</code> should be the <code>link</code> element. For 
links from a <code>links</code> element, <code style="xslt-param">node</code> should be that 
<code>links</code> element, or the containing element when the <code>links</code> element is implicit.</p>
-  <p>This template first calls <code style="xslt-template" 
xref="mal.link.content.custom">mal.link.content.custom</code> with the same arguments. If that template 
returns a non-empty result, it is used as the return value, overriding any other behavior of this 
template.</p>
-  <p>If only <code style="xslt-param">href</code> is provided, that URL is used as the text content.  If a 
target page or section cannot be found, <code style="xslt-param">xref</code> is used as the text content.</p>
-  <p>Normally, this template automatically looks up information from a targret node according to the <code 
style="xslt-param">xref</code> parameter. However, if the <code style="xslt-param">info</code> parameter is 
given, information in that node set is used instead. This is useful for external info links, where the target 
information is provided as child elements to the <code>link</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.content.custom"/></p></item><item><p><link 
xref="mal.link.xref.linkid"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal.link.content.mode"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.content">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the content for a <sys>link</sys> element.</desc>
+  <revision version="3.18" date="2015-06-06" status="final"/>
+ </info>
+ <title>mal.link.content</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the automatic text content for a link.  It should only
+ be used for links that do not have specified content.  If <code>$xref</code> points to a
+ valid page or section, the appropriate link title from that page or section
+ will be selected, based on the list of roles in <code>$role</code>. The first role for
+ which a matching link title is found will be used. Otherwise, the link title
+ without a role is used, or the primary title. The <code 
xref="mal.link.content.mode">mal.link.content.mode</code>
+ mode is applied to the contents of that title.  Stylesheets using this template
+ should map that mode to inline processing.</p>
+ <p>For inline links, <code>$node</code> should be the <sys>link</sys> element. For links from a
+ <sys>links</sys> element, <code>$node</code> should be that <sys>links</sys> element, or the containing
+ element when the <sys>links</sys> element is implicit.</p>
+ <p>This template first calls <code xref="mal.link.content.custom">mal.link.content.custom</code> with the 
same arguments.
+ If that template returns a non-empty result, it is used as the return value,
+ overriding any other behavior of this template.</p>
+ <p>If only <code>$href</code> is provided, that URL is used as the text content.  If a target
+ page or section cannot be found, <code>$xref</code> is used as the text content.</p>
+ <p>Normally, this template automatically looks up information from a targret node
+ according to the <code>$xref</code> parameter. However, if the <code>$info</code> parameter is given,
+ information in that node set is used instead. This is useful for external info
+ links, where the target information is provided as child elements to the <sys>link</sys>
+ element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal.link.content.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.default_root.page b/doc/yelp-xsl/C/mal.link.default_root.page
index 1b638cb6..9d2fcd90 100644
--- a/doc/yelp-xsl/C/mal.link.default_root.page
+++ b/doc/yelp-xsl/C/mal.link.default_root.page
@@ -1,6 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.default_root" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal-link" group="parameters"/><link type="guide" 
xref="parameters" group="mal"/><revision version="3.4" date="2012-01-17" status="final"/><desc>The default 
root ID.</desc></info><title>mal.link.default_root</title><p>The default root ID.</p>
-  
-  
-  <p>This parameter provides the default ID for the page that is taken to be the root of the document.  By 
default, <code>'index'</code> is used.  This should not be changed for normal Mallard documents.  It may be 
necessary to change it for some Mallard extension formats.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.link.default_root">
+ <info>
+  <link type="guide" xref="mal-link" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The default root ID.</desc>
+  <revision version="3.4" date="2012-01-17" status="final"/>
+ </info>
+ <title>mal.link.default_root</title>
+ <p>This parameter provides the default ID for the page that is taken to be the
+ root of the document.  By default, <sys>'index'</sys> is used.  This should not be
+ changed for normal Mallard documents.  It may be necessary to change it for
+ some Mallard extension formats.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal.link.default_root</code></title>
+    <p><code>'index'</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.desc.custom.page b/doc/yelp-xsl/C/mal.link.desc.custom.page
index deba83bb..69e836e3 100644
--- a/doc/yelp-xsl/C/mal.link.desc.custom.page
+++ b/doc/yelp-xsl/C/mal.link.desc.custom.page
@@ -1,33 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.desc.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><link type="guide" xref="stubs" group="mal"/><revision version="3.18" 
date="2015-06-06" status="final"/><desc>Output the desc content for a custom <code>link</code> 
element.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal.link.desc.custom</title><p>Output the desc 
content for a custom <code>link</code> element.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="mal.link.desc">mal.link.desc</code> to 
create content for custom links. Use this template to support the <code>action</code> attribute or extended 
<code>xref</code> attributes containing slash or colon characters.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.desc.custom">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the desc content for a custom <sys>link</sys> element.</desc>
+ </info>
+ <title>mal.link.desc.custom</title>
+ <p>:Stub: true
+ @revision[version=3.18 date=2015-06-06 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal.link.desc">mal.link.desc</code> to create content for custom 
links.
+ Use this template to support the <sys>action</sys> attribute or extended <sys>xref</sys>
+ attributes containing slash or colon characters.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.desc.page b/doc/yelp-xsl/C/mal.link.desc.page
index 2685074f..45b61682 100644
--- a/doc/yelp-xsl/C/mal.link.desc.page
+++ b/doc/yelp-xsl/C/mal.link.desc.page
@@ -1,35 +1,93 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.desc" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-06" status="final"/><desc>Output the 
desc content for a <code>link</code> element.</desc></info><title>mal.link.desc</title><p>Output the desc 
content for a <code>link</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate desc.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the secondary desc text content for a link. If <code 
style="xslt-param">xref</code> points to a valid page or section, the desc from that page or section will be 
used. The <code style="xslt-mode" xref="mal.link.content.mode">mal.link.content.mode</code> mode is applied 
to the contents of that desc. Stylesheets using this template should map that mode to inline processing.</p>
-  <p>For inline links, <code style="xslt-param">node</code> should be the <code>link</code> element. For 
links from a <code>links</code> element, <code style="xslt-param">node</code> should be that 
<code>links</code> element, or the containing element when the <code>links</code> element is implicit.</p>
-  <p>This template first calls <code style="xslt-template" 
xref="mal.link.desc.custom">mal.link.desc.custom</code> with the same arguments. If that template returns a 
non-empty result, it is used as the return value, overriding any other behavior of this template.</p>
-  <p>Normally, this template automatically looks up information from a targret node according to the <code 
style="xslt-param">xref</code> parameter. However, if the <code style="xslt-param">info</code> parameter is 
given, information in that node set is used instead. This is useful for external info links, where the target 
information is provided as child elements to the <code>link</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.desc.custom"/></p></item><item><p><link xref="mal.link.xref.linkid"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link 
xref="mal.link.content.mode"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.desc">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the desc content for a <sys>link</sys> element.</desc>
+  <revision version="3.18" date="2015-06-06" status="final"/>
+ </info>
+ <title>mal.link.desc</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate desc.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the secondary desc text content for a link. If <code>$xref</code>
+ points to a valid page or section, the desc from that page or section will be
+ used. The <code xref="mal.link.content.mode">mal.link.content.mode</code> mode is applied to the contents 
of that
+ desc. Stylesheets using this template should map that mode to inline processing.</p>
+ <p>For inline links, <code>$node</code> should be the <sys>link</sys> element. For links from a
+ <sys>links</sys> element, <code>$node</code> should be that <sys>links</sys> element, or the containing
+ element when the <sys>links</sys> element is implicit.</p>
+ <p>This template first calls <code xref="mal.link.desc.custom">mal.link.desc.custom</code> with the same 
arguments.
+ If that template returns a non-empty result, it is used as the return value,
+ overriding any other behavior of this template.</p>
+ <p>Normally, this template automatically looks up information from a targret node
+ according to the <code>$xref</code> parameter. However, if the <code>$info</code> parameter is given,
+ information in that node set is used instead. This is useful for external info
+ links, where the target information is provided as child elements to the <sys>link</sys>
+ element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.desc.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal.link.content.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.extension.page b/doc/yelp-xsl/C/mal.link.extension.page
index e6cf6a69..17c56e02 100644
--- a/doc/yelp-xsl/C/mal.link.extension.page
+++ b/doc/yelp-xsl/C/mal.link.extension.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.extension" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal-link" group="parameters"/><link type="guide" 
xref="parameters" group="mal"/><revision version="3.4" date="2012-01-17" status="final"/><desc>The filename 
extension for output files.</desc></info><title>mal.link.extension</title><p>The filename extension for 
output files.</p>
-  
-  
-  <p>When link targets are constructed by <code style="xslt-template" 
xref="mal.link.target">mal.link.target</code> from <code>xref</code> attributes, this string is appended. 
This is used to specify the file extension when creating output files from Mallard pages.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.link.extension">
+ <info>
+  <link type="guide" xref="mal-link" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>The filename extension for output files.</desc>
+  <revision version="3.4" date="2012-01-17" status="final"/>
+ </info>
+ <title>mal.link.extension</title>
+ <p>When link targets are constructed by <code xref="mal.link.target">mal.link.target</code> from 
<sys>xref</sys> attributes,
+ this string is appended. This is used to specify the file extension when creating
+ output files from Mallard pages.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.guidelinks.page b/doc/yelp-xsl/C/mal.link.guidelinks.page
index b7b3e971..240ca620 100644
--- a/doc/yelp-xsl/C/mal.link.guidelinks.page
+++ b/doc/yelp-xsl/C/mal.link.guidelinks.page
@@ -1,19 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.guidelinks" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-07" status="final"/><desc>Output the 
guide links for a page or section.</desc></info><title>mal.link.guidelinks</title><p>Output the guide links 
for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title, default 
<code>"guide"</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs all the guide links for a page or section, whether declared as guide links in the 
page or section or as topic links from another guide page.  It outputs each of the links as a 
<code>link</code> element within the Mallard namespace.  Each <code>link</code> element has an 
<code>xref</code> attribute pointing to the target page or section. Or, in the case of external links, the 
<code>link</code> element has an <code>href</code> attribute pointing to the external resource.</p>
-  <p>Each <code>link</code> element contains a <code>title</code> with <code>type="sort"</code> providing 
the sort title of the target page or section. The <code style="xslt-param">role</code> attribute is used to 
select a link title to sort on when a sort title is not present. The results are not sorted when returned 
from this template. Use <code>xsl:sort</code> on the sort titles to sort the results.</p>
-  <p>When a link comes from a guide link on <code style="xslt-param">node</code> that has an 
<code>href</code> attribute but not an <code>xref</code> attribute, it is taken to be an external link. In 
that case, the output link has an <code>href</code> attribute instead of an <code>xref</code> attribute, and 
it has an <code>info</code> child element. This element has a copy of all the child elements of the source 
<code>link</code> element.</p>
-  <p>The output is a result tree fragment.  To use these results, call <code>exsl:node-set</code> on 
them.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.xref.linkid"/></p></item><item><p><link 
xref="mal.link.sorttitle"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item><item><p><link xref="mal.cache.link.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.guidelinks">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the guide links for a page or section.</desc>
+  <revision version="3.18" date="2015-06-07" status="final"/>
+ </info>
+ <title>mal.link.guidelinks</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title, default 
<sys>"guide"</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs all the guide links for a page or section, whether
+ declared as guide links in the page or section or as topic links from another
+ guide page.  It outputs each of the links as a <sys>link</sys> element within the
+ Mallard namespace.  Each <sys>link</sys> element has an <sys>xref</sys> attribute pointing
+ to the target page or section. Or, in the case of external links, the <sys>link</sys>
+ element has an <sys>href</sys> attribute pointing to the external resource.</p>
+ <p>Each <sys>link</sys> element contains a <sys>title</sys> with <sys>type="sort"</sys> providing the
+ sort title of the target page or section. The <code>$role</code> attribute is used to
+ select a link title to sort on when a sort title is not present. The results
+ are not sorted when returned from this template. Use <sys>xsl:sort</sys> on the sort
+ titles to sort the results.</p>
+ <p>When a link comes from a guide link on <code>$node</code> that has an <sys>href</sys>
+ attribute but not an <sys>xref</sys> attribute, it is taken to be an external
+ link. In that case, the output link has an <sys>href</sys> attribute instead of
+ an <sys>xref</sys> attribute, and it has an <sys>info</sys> child element. This element
+ has a copy of all the child elements of the source <sys>link</sys> element.</p>
+ <p>The output is a result tree fragment.  To use these results, call
+ <sys>exsl:node-set</sys> on them.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.sorttitle"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.linkid.page b/doc/yelp-xsl/C/mal.link.linkid.page
index c7b5227d..c501581e 100644
--- a/doc/yelp-xsl/C/mal.link.linkid.page
+++ b/doc/yelp-xsl/C/mal.link.linkid.page
@@ -1,13 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.linkid" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.0" date="2010-01-02" status="final"/><desc>Output the 
fully qualified link ID for a page or section.</desc></info><title>mal.link.linkid</title><p>Output the fully 
qualified link ID for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to generate a link ID for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the fully qualified link ID for a page or section.  For <code>page</code> 
elements, the link ID is identical to the ID.  For <code>section</code> elements, however, the link ID is the 
containing page ID and the section ID, joined with the <code>#</code> character.</p>
-  <p>The link ID is used in Mallard cache files to ensure all <code>id</code> attributes are unique.  All of 
the templates in this stylesheet that use a link ID use this template or <code style="xslt-template" 
xref="mal.link.xref.linkid">mal.link.xref.linkid</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.linkid">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the fully qualified link ID for a page or section.</desc>
+  <revision version="3.0" date="2010-01-02" status="final"/>
+ </info>
+ <title>mal.link.linkid</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to generate a link ID for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the fully qualified link ID for a page or section.  For
+ <sys>page</sys> elements, the link ID is identical to the ID.  For <sys>section</sys> elements,
+ however, the link ID is the containing page ID and the section ID, joined with
+ the <sys>#</sys> character.</p>
+ <p>The link ID is used in Mallard cache files to ensure all <sys>id</sys> attributes are
+ unique.  All of the templates in this stylesheet that use a link ID use this
+ template or <code xref="mal.link.xref.linkid">mal.link.xref.linkid</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.linktrails.page b/doc/yelp-xsl/C/mal.link.linktrails.page
index 3bc05520..ca330ff6 100644
--- a/doc/yelp-xsl/C/mal.link.linktrails.page
+++ b/doc/yelp-xsl/C/mal.link.linktrails.page
@@ -1,25 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.linktrails" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.4" date="2012-01-18" status="final"/><desc>Output link 
trails for a page or section.</desc></info><title>mal.link.linktrails</title><p>Output link trails for a page 
or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>trail</code></title>
-      <p>The link trail leading to <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>root</code></title>
-      <p>The ID of the root page.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs lists of links, where each list is a path of topic links that leads to <code 
style="xslt-param">node</code>.  Each link list is output as a <code>link</code> element in the Mallard 
namespace with an <code>xref</code> attribute pointing to the target page or section.  Each <code>link</code> 
has a <code>title</code> element with <code>type="sort"</code> providing the sort title of the target page or 
section.</p>
-  <p>Each <code>link</code> element may also contain another <code>link</code> element providing the next 
link in the trail.  Each of these links also contains a sort titles and may also contain another link.</p>
-  <p>The results are not sorted when returned from this template.  Use <code>xsl:sort</code> on the nested 
sort titles to sort the results.  The output is a result tree fragment.  To use these results, call 
<code>exsl:node-set</code> on them.</p>
-  <p>This template calls itself recursively.  It finds the guide links for <code 
style="xslt-param">node</code> using <code style="xslt-template" 
xref="mal.link.guidelinks">mal.link.guidelinks</code>.  It then calls <code style="xslt-template" 
xref="mal.link.linktrails">mal.link.linktrails</code> on each guide, wrapping <code 
style="xslt-param">trail</code> with a link to the guide as the new <code style="xslt-param">trail</code> 
parameter.</p>
-  <p>If there are no guide links for <code style="xslt-param">node</code> and <code 
style="xslt-param">node</code> is a <code>section</code> element, this template calls itself on the 
containing page, wrapping <code style="xslt-param">trails</code> with a link to that page.  This 
<code>link</code> element has the attribute <code>child="section"</code> to indicate the link from it to its 
child is not a topic link.</p>
-  <p>Recursion stops when the ID of <code style="xslt-param">node</code> is <code 
style="xslt-param">root</code>.  Link trails are only output if they reach <code 
style="xslt-param">root</code>, which is <code style="xslt-param" 
xref="mal.link.default_root">mal.link.default_root</code> by default.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.guidelinks"/></p></item><item><p><link xref="mal.link.linktrails"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item><item><p><link 
xref="mal.link.default_root"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.linktrails">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output link trails for a page or section.</desc>
+  <revision version="3.4" date="2012-01-18" status="final"/>
+ </info>
+ <title>mal.link.linktrails</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$trail</code></title>
+    <p>The link trail leading to <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$root</code></title>
+    <p>The ID of the root page.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs lists of links, where each list is a path of topic links
+ that leads to <code>$node</code>.  Each link list is output as a <sys>link</sys> element in the
+ Mallard namespace with an <sys>xref</sys> attribute pointing to the target page or
+ section.  Each <sys>link</sys> has a <sys>title</sys> element with <sys>type="sort"</sys> providing
+ the sort title of the target page or section.</p>
+ <p>Each <sys>link</sys> element may also contain another <sys>link</sys> element providing the
+ next link in the trail.  Each of these links also contains a sort titles and
+ may also contain another link.</p>
+ <p>The results are not sorted when returned from this template.  Use <sys>xsl:sort</sys>
+ on the nested sort titles to sort the results.  The output is a result tree
+ fragment.  To use these results, call <sys>exsl:node-set</sys> on them.</p>
+ <p>This template calls itself recursively.  It finds the guide links for <code>$node</code>
+ using <code xref="mal.link.guidelinks">mal.link.guidelinks</code>.  It then calls <code 
xref="mal.link.linktrails">mal.link.linktrails</code> on each
+ guide, wrapping <code>$trail</code> with a link to the guide as the new <code>$trail</code> parameter.</p>
+ <p>If there are no guide links for <code>$node</code> and <code>$node</code> is a <sys>section</sys> 
element,
+ this template calls itself on the containing page, wrapping <code>$trails</code> with a
+ link to that page.  This <sys>link</sys> element has the attribute <sys>child="section"</sys>
+ to indicate the link from it to its child is not a topic link.</p>
+ <p>Recursion stops when the ID of <code>$node</code> is <code>$root</code>.  Link trails are only
+ output if they reach <code>$root</code>, which is <code 
xref="mal.link.default_root">mal.link.default_root</code> by default.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.guidelinks"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linktrails"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.prefix.page b/doc/yelp-xsl/C/mal.link.prefix.page
index 33191851..9cd3af1a 100644
--- a/doc/yelp-xsl/C/mal.link.prefix.page
+++ b/doc/yelp-xsl/C/mal.link.prefix.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.prefix" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal-link" group="parameters"/><link type="guide" 
xref="parameters" group="mal"/><revision version="3.4" date="2012-01-17" status="final"/><desc>A prefix for 
link targets.</desc></info><title>mal.link.prefix</title><p>A prefix for link targets.</p>
-  
-  
-  <p>When link targets are constructed by <code style="xslt-template" 
xref="mal.link.target">mal.link.target</code> from <code>xref</code> attributes, this string is prepended. 
This can be used, for example, to specify absolute directories or URLs.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal.link.prefix">
+ <info>
+  <link type="guide" xref="mal-link" group="params"/>
+  <link type="guide" xref="params" group="mal"/>
+  <desc>A prefix for link targets.</desc>
+  <revision version="3.4" date="2012-01-17" status="final"/>
+ </info>
+ <title>mal.link.prefix</title>
+ <p>When link targets are constructed by <code xref="mal.link.target">mal.link.target</code> from 
<sys>xref</sys> attributes,
+ this string is prepended. This can be used, for example, to specify absolute
+ directories or URLs.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.seealsolinks.page b/doc/yelp-xsl/C/mal.link.seealsolinks.page
index f1ad9419..4315dae3 100644
--- a/doc/yelp-xsl/C/mal.link.seealsolinks.page
+++ b/doc/yelp-xsl/C/mal.link.seealsolinks.page
@@ -1,19 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.seealsolinks" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-07" status="final"/><desc>Output the 
see-also links for a page or section.</desc></info><title>mal.link.seealsolinks</title><p>Output the see-also 
links for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title, default 
<code>"seealso"</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs all the see-also links for a page or section, whether declared in the page or 
section or in another page or section.  It outputs each of the links as a <code>link</code> element within 
the Mallard namespace.  Each <code>link</code> element has an <code>xref</code> attribute pointing to the 
target page or section. Or, in the case of external links, the <code>link</code> element has an 
<code>href</code> attribute pointing to the external resource.</p>
-  <p>Each <code>link</code> element contains a <code>title</code> with <code>type="sort"</code> providing 
the sort title of the target page or section. The <code style="xslt-param">role</code> attribute is used to 
select a link title to sort on when a sort title is not present. The results are not sorted when returned 
from this template. Use <code>xsl:sort</code> on the sort titles to sort the results.</p>
-  <p>When a link comes from a topic link on <code style="xslt-param">node</code> that has an 
<code>href</code> attribute but not an <code>xref</code> attribute, it is taken to be an external link. In 
that case, the output link has an <code>href</code> attribute instead of an <code>xref</code> attribute, and 
it has an <code>info</code> child element. This element has a copy of all the child elements of the source 
<code>link</code> element.</p>
-  <p>The output is a result tree fragment.  To use these results, call <code>exsl:node-set</code> on 
them.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.xref.linkid"/></p></item><item><p><link 
xref="mal.link.sorttitle"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item><item><p><link xref="mal.cache.link.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.seealsolinks">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the see-also links for a page or section.</desc>
+  <revision version="3.18" date="2015-06-07" status="final"/>
+ </info>
+ <title>mal.link.seealsolinks</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title, default 
<sys>"seealso"</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs all the see-also links for a page or section, whether
+ declared in the page or section or in another page or section.  It outputs
+ each of the links as a <sys>link</sys> element within the Mallard namespace.  Each
+ <sys>link</sys> element has an <sys>xref</sys> attribute pointing to the target page or section.
+ Or, in the case of external links, the <sys>link</sys> element has an <sys>href</sys> attribute
+ pointing to the external resource.</p>
+ <p>Each <sys>link</sys> element contains a <sys>title</sys> with <sys>type="sort"</sys> providing the
+ sort title of the target page or section. The <code>$role</code> attribute is used to
+ select a link title to sort on when a sort title is not present. The results
+ are not sorted when returned from this template. Use <sys>xsl:sort</sys> on the sort
+ titles to sort the results.</p>
+ <p>When a link comes from a topic link on <code>$node</code> that has an <sys>href</sys>
+ attribute but not an <sys>xref</sys> attribute, it is taken to be an external
+ link. In that case, the output link has an <sys>href</sys> attribute instead of
+ an <sys>xref</sys> attribute, and it has an <sys>info</sys> child element. This element
+ has a copy of all the child elements of the source <sys>link</sys> element.</p>
+ <p>The output is a result tree fragment.  To use these results, call
+ <sys>exsl:node-set</sys> on them.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.sorttitle"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.sorttitle.page b/doc/yelp-xsl/C/mal.link.sorttitle.page
index 5bc8ea3c..36ded438 100644
--- a/doc/yelp-xsl/C/mal.link.sorttitle.page
+++ b/doc/yelp-xsl/C/mal.link.sorttitle.page
@@ -1,16 +1,46 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.sorttitle" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.10" date="2013-07-30" status="final"/><desc>Output the 
sort title for a page or section.</desc></info><title>mal.link.sorttitle</title><p>Output the sort title for 
a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to output a sort title for.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns a sort title for a page or section as a normalized string. If <code 
style="xslt-param">node</code> defines a sort title in its <code>info</code> element, the value of that title 
is always used first. Otherwise, if <code style="xslt-param">role</code> is defined and <code 
style="xslt-param">node</code> has a link title with a matching role, that title is used. Otherwise, if <code 
style="xslt-param">node</code> has a link title with no role, that title is used. Otherwise, the primary 
title is used.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.sorttitle">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the sort title for a page or section.</desc>
+  <revision version="3.10" date="2013-07-30" status="final"/>
+ </info>
+ <title>mal.link.sorttitle</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to output a sort title for.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns a sort title for a page or section as a normalized string.
+ If <code>$node</code> defines a sort title in its <sys>info</sys> element, the value of that title
+ is always used first. Otherwise, if <code>$role</code> is defined and <code>$node</code> has a link
+ title with a matching role, that title is used. Otherwise, if <code>$node</code> has a link
+ title with no role, that title is used. Otherwise, the primary title is used.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.target.custom.page b/doc/yelp-xsl/C/mal.link.target.custom.page
index 43e6cd12..5081b112 100644
--- a/doc/yelp-xsl/C/mal.link.target.custom.page
+++ b/doc/yelp-xsl/C/mal.link.target.custom.page
@@ -1,25 +1,53 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.target.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><link type="guide" xref="stubs" group="mal"/><revision version="3.4" 
date="2012-01-17" status="final"/><desc>Output the target URL for an element with <code>action</code> or 
extended <code>xref</code> attributes.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal.link.target.custom</title><p>Output the 
target URL for an element with <code>action</code> or extended <code>xref</code> attributes.</p><note><p>This 
template is a stub. Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="mal.link.target">mal.link.target</code> to 
create URLs for custom links. Use this template to support the <code>action</code> attribute or extended 
<code>xref</code> attributes containing slash or colon characters.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.target.custom">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the target URL for an element with <sys>action</sys> or extended <sys>xref</sys> 
attributes.</desc>
+ </info>
+ <title>mal.link.target.custom</title>
+ <p>:Stub: true
+ @revision[version=3.4 date=2012-01-17 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal.link.target">mal.link.target</code> to create URLs for custom 
links.
+ Use this template to support the <sys>action</sys> attribute or extended <sys>xref</sys>
+ attributes containing slash or colon characters.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.target.extended.page b/doc/yelp-xsl/C/mal.link.target.extended.page
index cb73fe13..7793ee26 100644
--- a/doc/yelp-xsl/C/mal.link.target.extended.page
+++ b/doc/yelp-xsl/C/mal.link.target.extended.page
@@ -1,25 +1,54 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.target.extended" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><link type="guide" xref="stubs" group="mal"/><revision version="3.28" 
date="2017-08-11" status="final"/><desc>Output the target URL for an element with an extended 
<code>xref</code> attribute.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal.link.target.extended</title><p>Output the 
target URL for an element with an extended <code>xref</code> attribute.</p><note><p>This template is a stub. 
Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="mal.link.target">mal.link.target</code> to 
create URLs for links with a <code>/</code> or <code>:</code> in the <code>xref</code> attribute. By default, 
it just outputs the value of <code style="xslt-param">href</code>. Override this template to provide behavior 
for extended <code>xref</code> attributes.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.target.extended">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the target URL for an element with an extended <sys>xref</sys> attribute.</desc>
+ </info>
+ <title>mal.link.target.extended</title>
+ <p>:Stub: true
+ @revision[version=3.28 date=2017-08-11 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal.link.target">mal.link.target</code> to create URLs for links 
with
+ a <sys>/</sys> or <sys>:</sys> in the <sys>xref</sys> attribute. By default, it just outputs the
+ value of <code>$href</code>. Override this template to provide behavior for extended
+ <sys>xref</sys> attributes.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.target.page b/doc/yelp-xsl/C/mal.link.target.page
index d102ed45..ad9bc384 100644
--- a/doc/yelp-xsl/C/mal.link.target.page
+++ b/doc/yelp-xsl/C/mal.link.target.page
@@ -1,27 +1,68 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.target" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.28" date="2017-08-11" status="final"/><desc>Output the 
target URL for a <code>link</code> or other linking 
element.</desc></info><title>mal.link.target</title><p>Output the target URL for a <code>link</code> or other 
linking element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a URL for a <code>link</code> element or another element using linking 
attributes.  If <code style="xslt-param">xref</code> points to a valid page or section, it uses a file name 
based on the ID of the target page plus <code style="xslt-param" 
xref="mal.link.extension">mal.link.extension</code>. Otherwise, the link will point to <code 
style="xslt-param">href</code>.</p>
-  <p>For inline links, <code style="xslt-param">node</code> should be the <code>link</code> element. For 
links from a <code>links</code> element, <code style="xslt-param">node</code> should be that 
<code>links</code> element, or the containing element when the <code>links</code> element is implicit.</p>
-  <p>This template first calls <code style="xslt-template" 
xref="mal.link.target.custom">mal.link.target.custom</code> with the same arguments. If that template returns 
a non-empty string, it is used as the return value, overriding any other behavior of this template.</p>
-  <p>If <code style="xslt-param">xref</code> contains a <code>/</code> or <code>:</code> character, this 
template calls <code style="xslt-template" xref="mal.link.target.extended">mal.link.target.extended</code>, 
which by default just uses <code style="xslt-param">href</code> instead. Override that template to provide 
extended xref behavior.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.target.custom"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.target">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the target URL for a <sys>link</sys> or other linking element.</desc>
+  <revision version="3.28" date="2017-08-11" status="final"/>
+ </info>
+ <title>mal.link.target</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a URL for a <sys>link</sys> element or another element using
+ linking attributes.  If <code>$xref</code> points to a valid page or section, it uses
+ a file name based on the ID of the target page plus <code 
xref="mal.link.extension">mal.link.extension</code>.
+ Otherwise, the link will point to <code>$href</code>.</p>
+ <p>For inline links, <code>$node</code> should be the <sys>link</sys> element. For links from a
+ <sys>links</sys> element, <code>$node</code> should be that <sys>links</sys> element, or the containing
+ element when the <sys>links</sys> element is implicit.</p>
+ <p>This template first calls <code xref="mal.link.target.custom">mal.link.target.custom</code> with the 
same arguments.
+ If that template returns a non-empty string, it is used as the return value,
+ overriding any other behavior of this template.</p>
+ <p>If <code>$xref</code> contains a <sys>/</sys> or <sys>:</sys> character, this template calls
+ <code xref="mal.link.target.extended">mal.link.target.extended</code>, which by default just uses 
<code>$href</code> instead.
+ Override that template to provide extended xref behavior.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.target.custom"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.tooltip.custom.page b/doc/yelp-xsl/C/mal.link.tooltip.custom.page
index 0f180cd5..9313ffc6 100644
--- a/doc/yelp-xsl/C/mal.link.tooltip.custom.page
+++ b/doc/yelp-xsl/C/mal.link.tooltip.custom.page
@@ -1,33 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.tooltip.custom" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><link type="guide" xref="stubs" group="mal"/><revision version="3.18" 
date="2015-06-06" status="final"/><desc>Output a tooltip for a custom <code>link</code> element.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal.link.tooltip.custom</title><p>Output a 
tooltip for a custom <code>link</code> element.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" xref="mal.link.tooltip">mal.link.tooltip</code> 
to create tooltips for custom links. Use this template to support the <code>action</code> attribute or 
extended <code>xref</code> attributes containing slash or colon characters.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.tooltip.custom">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output a tooltip for a custom <sys>link</sys> element.</desc>
+ </info>
+ <title>mal.link.tooltip.custom</title>
+ <p>:Stub: true
+ @revision[version=3.18 date=2015-06-06 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal.link.tooltip">mal.link.tooltip</code> to create tooltips for 
custom
+ links. Use this template to support the <sys>action</sys> attribute or extended <sys>xref</sys>
+ attributes containing slash or colon characters.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.link.tooltip.page b/doc/yelp-xsl/C/mal.link.tooltip.page
index 33583564..1d79266d 100644
--- a/doc/yelp-xsl/C/mal.link.tooltip.page
+++ b/doc/yelp-xsl/C/mal.link.tooltip.page
@@ -1,36 +1,95 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.tooltip" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-06" status="final"/><desc>Output a 
tooltip for a <code>link</code> element.</desc></info><title>mal.link.tooltip</title><p>Output a tooltip for 
a <code>link</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>link</code> or other element creating the link.</p>
-    </item>
-    <item>
-      <title><code>action</code></title>
-      <p>The <code>action</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>href</code></title>
-      <p>The <code>href</code> attribute of <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>info</code></title>
-      <p>An <code>info</code> element that overrides the info found in a target node.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a text-only tooltip for a link. If <code style="xslt-param">xref</code> points to 
a valid page or section, the text title from that page or section will be used. If the target does not 
specify a text title, the primary title is used.</p>
-  <p>For inline links, <code style="xslt-param">node</code> should be the <code>link</code> element. For 
links from a <code>links</code> element, <code style="xslt-param">node</code> should be that 
<code>links</code> element, or the containing element when the <code>links</code> element is implicit.</p>
-  <p>This template first calls <code style="xslt-template" 
xref="mal.link.tooltip.custom">mal.link.tooltip.custom</code> with the same arguments. If that template 
returns a non-empty string, it is used as the return value, overriding any other behavior of this 
template.</p>
-  <p>If only <code style="xslt-param">href</code> is provided, that URL is used as the tooltip. If a target 
page or section cannot be found, <code style="xslt-param">xref</code> is used as the text content. Special 
tooltips may be provided for certain URI schemes.</p>
-  <p>Normally, this template automatically looks up information from a targret node according to the <code 
style="xslt-param">xref</code> parameter. However, if the <code style="xslt-param">info</code> parameter is 
given, information in that node set is used instead. This is useful for external info links, where the target 
information is provided as child elements to the <code>link</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.tooltip.custom"/></p></item><item><p><link 
xref="mal.link.xref.linkid"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="utils.email_address"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.link.tooltip">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output a tooltip for a <sys>link</sys> element.</desc>
+  <revision version="3.18" date="2015-06-06" status="final"/>
+ </info>
+ <title>mal.link.tooltip</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>link</sys> or other element creating the link.</p>
+   </item>
+   <item>
+    <title><code>$action</code></title>
+    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$href</code></title>
+    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$info</code></title>
+    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a text-only tooltip for a link. If <code>$xref</code> points to a
+ valid page or section, the text title from that page or section will be used.
+ If the target does not specify a text title, the primary title is used.</p>
+ <p>For inline links, <code>$node</code> should be the <sys>link</sys> element. For links from a
+ <sys>links</sys> element, <code>$node</code> should be that <sys>links</sys> element, or the containing
+ element when the <sys>links</sys> element is implicit.</p>
+ <p>This template first calls <code xref="mal.link.tooltip.custom">mal.link.tooltip.custom</code> with the 
same arguments.
+ If that template returns a non-empty string, it is used as the return value,
+ overriding any other behavior of this template.</p>
+ <p>If only <code>$href</code> is provided, that URL is used as the tooltip. If a target
+ page or section cannot be found, <code>$xref</code> is used as the text content. Special
+ tooltips may be provided for certain URI schemes.</p>
+ <p>Normally, this template automatically looks up information from a targret node
+ according to the <code>$xref</code> parameter. However, if the <code>$info</code> parameter is given,
+ information in that node set is used instead. This is useful for external info
+ links, where the target information is provided as child elements to the <sys>link</sys>
+ element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip.custom"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.email_address"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.topiclinks.page b/doc/yelp-xsl/C/mal.link.topiclinks.page
index 271ac00e..36f48d2b 100644
--- a/doc/yelp-xsl/C/mal.link.topiclinks.page
+++ b/doc/yelp-xsl/C/mal.link.topiclinks.page
@@ -1,25 +1,90 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.topiclinks" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.18" date="2015-06-06" status="final"/><desc>Output the 
topic links for a page or section.</desc></info><title>mal.link.topiclinks</title><p>Output the topic links 
for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>page</code> or <code>section</code> element to generate links for.</p>
-    </item>
-    <item>
-      <title><code>groups</code></title>
-      <p>The list of all valid link groups for <code style="xslt-param">node</code>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title, default 
<code>"topic"</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs all the topic links for a guide page or section, whether declared as topic links 
in the page or section or as guide links from another page or section.  It outputs each of the links as a 
<code>link</code> element within the Mallard namespace.  Each <code>link</code> element has an 
<code>xref</code> attribute pointing to the target page or section. Or, in the case of external links, the 
<code>link</code> element has an <code>href</code> attribute pointing to the external resource.</p>
-  <p>Each <code>link</code> element contains a <code>title</code> with <code>type="sort"</code> providing 
the sort title of the target page or section. The <code style="xslt-param">role</code> attribute is used to 
select a link title to sort on when a sort title is not present. The results are not sorted when returned 
from this template. Use <code>xsl:sort</code> on the sort titles to sort the results.</p>
-  <p>Each <code>link</code> element also contains a <code>group</code> attribute.  The <code>group</code> 
attribute is normalized.  It will either point to a link group declared in <code 
style="xslt-param">groups</code>, or it will be set to <code>#default</code>.  Each <code>link</code> element 
also contains a <code>groupsort</code> attribute giving the numerical position of the <code>group</code> 
attribute in the normalized group list for <code style="xslt-param">node</code>.</p>
-  <p>The <code style="xslt-param">groups</code> parameter can be calculated automatically from <code 
style="xslt-param">node</code>.</p>
-  <p>When a link comes from a topic link on <code style="xslt-param">node</code> that has an 
<code>href</code> attribute but not an <code>xref</code> attribute, it is taken to be an external link. In 
that case, the output link has an <code>href</code> attribute instead of an <code>xref</code> attribute, and 
it has an <code>info</code> child element. This element has a copy of all the child elements of the source 
<code>link</code> element.</p>
-  <p>The output is a result tree fragment.  To use these results, call <code>exsl:node-set</code> on 
them.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.xref.linkid"/></p></item><item><p><link 
xref="mal.link.sorttitle"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item><item><p><link xref="mal.cache.link.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.topiclinks">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the topic links for a page or section.</desc>
+  <revision version="3.18" date="2015-06-06" status="final"/>
+ </info>
+ <title>mal.link.topiclinks</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>page</sys> or <sys>section</sys> element to generate links for.</p>
+   </item>
+   <item>
+    <title><code>$groups</code></title>
+    <p>The list of all valid link groups for <code>$node</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title, default 
<sys>"topic"</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs all the topic links for a guide page or section, whether
+ declared as topic links in the page or section or as guide links from another
+ page or section.  It outputs each of the links as a <sys>link</sys> element within the
+ Mallard namespace.  Each <sys>link</sys> element has an <sys>xref</sys> attribute pointing
+ to the target page or section. Or, in the case of external links, the <sys>link</sys>
+ element has an <sys>href</sys> attribute pointing to the external resource.</p>
+ <p>Each <sys>link</sys> element contains a <sys>title</sys> with <sys>type="sort"</sys> providing the
+ sort title of the target page or section. The <code>$role</code> attribute is used to
+ select a link title to sort on when a sort title is not present. The results
+ are not sorted when returned from this template. Use <sys>xsl:sort</sys> on the sort
+ titles to sort the results.</p>
+ <p>Each <sys>link</sys> element also contains a <sys>group</sys> attribute.  The <sys>group</sys>
+ attribute is normalized.  It will either point to a link group declared
+ in <code>$groups</code>, or it will be set to <sys>#default</sys>.  Each <sys>link</sys> element also
+ contains a <sys>groupsort</sys> attribute giving the numerical position of the
+ <sys>group</sys> attribute in the normalized group list for <code>$node</code>.</p>
+ <p>The <code>$groups</code> parameter can be calculated automatically from <code>$node</code>.</p>
+ <p>When a link comes from a topic link on <code>$node</code> that has an <sys>href</sys>
+ attribute but not an <sys>xref</sys> attribute, it is taken to be an external
+ link. In that case, the output link has an <sys>href</sys> attribute instead of
+ an <sys>xref</sys> attribute, and it has an <sys>info</sys> child element. This element
+ has a copy of all the child elements of the source <sys>link</sys> element.</p>
+ <p>The output is a result tree fragment.  To use these results, call
+ <sys>exsl:node-set</sys> on them.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.sorttitle"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.xref.linkid"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal.link.xref.linkid.page b/doc/yelp-xsl/C/mal.link.xref.linkid.page
index 37490a4a..b6a66cec 100644
--- a/doc/yelp-xsl/C/mal.link.xref.linkid.page
+++ b/doc/yelp-xsl/C/mal.link.xref.linkid.page
@@ -1,17 +1,45 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.link.xref.linkid" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-link" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision version="3.0" date="2010-01-02" status="final"/><desc>Output the 
fully qualified link ID for an <code>xref</code> 
attribute.</desc></info><title>mal.link.xref.linkid</title><p>Output the fully qualified link ID for an 
<code>xref</code> attribute.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element containing an <code>xref</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>The <code>xref</code> value to generate a link ID from.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs the fully qualified link ID for an <code>xref</code> attribute. This may simply 
be <code style="xslt-param">xref</code>, but if <code style="xslt-param">xref</code> starts with the 
<code>#</code> character, it is prefixed with the ID of the page that contains <code 
style="xslt-param">node</code>.</p>
-  <p>See <code style="xslt-template" xref="mal.link.linkid">mal.link.linkid</code> for more on link IDs.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal.link.xref.linkid">
+ <info>
+  <link type="guide" xref="mal-link" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Output the fully qualified link ID for an <sys>xref</sys> attribute.</desc>
+  <revision version="3.0" date="2010-01-02" status="final"/>
+ </info>
+ <title>mal.link.xref.linkid</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element containing an <sys>xref</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>The <sys>xref</sys> value to generate a link ID from.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs the fully qualified link ID for an <sys>xref</sys> attribute.
+ This may simply be <code>$xref</code>, but if <code>$xref</code> starts with the <sys>#</sys> character, it
+ is prefixed with the ID of the page that contains <code>$node</code>.</p>
+ <p>See <code xref="mal.link.linkid">mal.link.linkid</code> for more on link IDs.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.file"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.prefix"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal.sort.tsort.page b/doc/yelp-xsl/C/mal.sort.tsort.page
index 56ef4a96..99cf616b 100644
--- a/doc/yelp-xsl/C/mal.sort.tsort.page
+++ b/doc/yelp-xsl/C/mal.sort.tsort.page
@@ -1,15 +1,45 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal.sort.tsort" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal-sort" group="templates"/><link type="guide" 
xref="templates" group="mal"/><revision status="incomplete" version="1.0" date="2010-07-08"/><desc>Sort pages 
based on topic and next links.</desc></info><title>mal.sort.tsort</title><p>Sort pages based on topic and 
next links.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The current <code>page</code> in the Mallard cache file.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links to pages sorted according to their topic and next links. Pages occur after 
the first guide that references them, in their sort order for that guide. Page series constructed with next 
links always appear in order at the sort position of their first page.</p>
-  <p>This template outputs <code>link</code> elements with <code>xref</code> attributes pointing to the 
target page. The output is a result tree fragment.  To use these results, call <code>exsl:node-set</code> on 
them.</p>
-  <p>You can specify a starting node with the <code style="xslt-param">node</code> parameter. By default, it 
uses the node pointed to by <code style="xslt-param" 
xref="mal.link.default_root">mal.link.default_root</code>.</p>
-  <p>This template does not include any nodes that are not reachable through topic or next links.</p>
-<list style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.link.default_root"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal.sort.tsort">
+ <info>
+  <link type="guide" xref="mal-sort" group="templates"/>
+  <link type="guide" xref="templates" group="mal"/>
+  <desc>Sort pages based on topic and next links.</desc>
+  <revision version="1.0" date="2010-07-08"/>
+ </info>
+ <title>mal.sort.tsort</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The current <sys>page</sys> in the Mallard cache file.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links to pages sorted according to their topic and
+ next links. Pages occur after the first guide that references them, in
+ their sort order for that guide. Page series constructed with next links
+ always appear in order at the sort position of their first page.</p>
+ <p>This template outputs <sys>link</sys> elements with <sys>xref</sys> attributes pointing to
+ the target page. The output is a result tree fragment.  To use these results,
+ call <sys>exsl:node-set</sys> on them.</p>
+ <p>You can specify a starting node with the <code>$node</code> parameter. By default, it
+ uses the node pointed to by <code xref="mal.link.default_root">mal.link.default_root</code>.</p>
+ <p>This template does not include any nodes that are not reachable through
+ topic or next links.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-api.page b/doc/yelp-xsl/C/mal2html-api.page
index ef1b50e6..54bedb94 100644
--- a/doc/yelp-xsl/C/mal2html-api.page
+++ b/doc/yelp-xsl/C/mal2html-api.page
@@ -1,2 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-api" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-defines-template" xref="mal2html.api.links.function"/><link 
type="xslt-defines-template" xref="mal2html.api.links.function.c"/></info><title>Mallard to HTML - API 
Extension</title><p>Support for Mallard API extension elements.</p><p>This stylesheet contains templates to 
support features from the Mallard API extension.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><l
 ist styl
 e="compact"><title>Calls Templates</title><item><p><link xref="mal2html.links.ul"/></p></item><item><p><link 
xref="utils.repeat_string"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link xref="mal2html.inline.mode"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-api">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Support for Mallard API extension elements.</desc>
+ </info>
+ <title>Mallard to HTML - API Extension</title>
+ <p>This stylesheet contains templates to support features from the Mallard API
+ extension.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.ul"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-block.page b/doc/yelp-xsl/C/mal2html-block.page
index cd68abc1..0709d058 100644
--- a/doc/yelp-xsl/C/mal2html-block.page
+++ b/doc/yelp-xsl/C/mal2html-block.page
@@ -1,2 +1,309 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-block" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal2html.choose.mode?><info><link type="guide" xref="stylesheets" 
group="mal2html"/><revision version="1.0" date="2010-06-03" status="final"/><link 
type="xslt-defines-template" xref="mal2html.pre"/><link type="xslt-implements-mode" 
xref="mal2html.block.mode"/><link type="xslt-implements-mode" xref="html.syntax.class.mode"/><link 
type="xslt-implements-mode" xref="l10n.format.mode"/></info><title>Mallard to HTML - Blocks</title><p>Handle 
simple Mallard block elements.</p><p>This stylesheet contains templates for handling most Mallard block 
elements, except the list and table elements.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="top
 ic" grou
 ps="templates" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="mal.if.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="utils.linenumbering"/></p></item><item><p><link 
xref="html.syntax.class"/></p></item><item><p><link xref="utils.strip_newlines"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.mode"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.syntax.highlight"/></p></item><item><p><link 
xref="mal2html.editor_mode"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="html.syntax.class.mode">html.syntax.class.mode</link></p></td><td>
 <p><code
mal:code | mal:screen</code></p></td></tr><tr><td><p><link 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:comment.name</code></p></td></tr><tr><td><p><link

xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:comment.date</code></p></td></tr><tr><td><p><link

xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link

xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>text()</code></p></td></tr><tr><td><p><link

xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:desc</code></p></td></tr><tr><td><p><link

xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:code</code></p></td></tr><tr><td><p><link

xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:comment</code></p></td></tr><tr><td><p><link
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:comme
 nt/mal:c
 ite</code></p></td></tr><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:div</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:example</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:figure</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:listing</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:note</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:info</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:p</code></p></td></tr><tr><td><p><link
 xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:quote</code></p></
 td></tr>
 <tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:quote/mal:cite</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:screen</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:synopsis</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:title</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>if:choose</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>if:if</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-block">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle simple Mallard block elements.</desc>
+  <revision version="1.0" date="2010-06-03" status="final"/>
+ </info>
+ <title>Mallard to HTML - Blocks</title>
+ <p>This stylesheet contains templates for handling most Mallard block elements,
+ except the list and table elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.class"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.in"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.figure.zoom.out"/></p>
+  </item>
+  <item>
+   <p><link xref="icons.svg.note"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.linenumbering"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.strip_newlines"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="_mal2html.choose.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="_mal2html.choose.mode">_mal2html.choose.mode</code></p>
+    </td>
+    <td>
+     <p><code>if:when</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="_mal2html.choose.mode">_mal2html.choose.mode</code></p>
+    </td>
+    <td>
+     <p><code>if:else</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="_mal2html.choose.mode">_mal2html.choose.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.syntax.class.mode">html.syntax.class.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:code | mal:screen</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:comment.name</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:comment.date</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:desc</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:code</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:comment</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:comment/mal:cite</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:div</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:example</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:figure</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:listing</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:note</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:info</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:p</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:quote</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:quote/mal:cite</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:screen</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:synopsis</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:title</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>if:choose</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>if:if</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-gloss.page b/doc/yelp-xsl/C/mal2html-gloss.page
index 77584516..8cf502e7 100644
--- a/doc/yelp-xsl/C/mal2html-gloss.page
+++ b/doc/yelp-xsl/C/mal2html-gloss.page
@@ -1,2 +1,93 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-gloss" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="0.0" 
date="1970-01-01" status="stub"/><link type="xslt-defines-template" xref="mal2html.gloss.terms"/><link 
type="xslt-implements-mode" xref="mal2html.inline.mode"/></info><title>Mallard to HTML - 
Glossaries</title><p>Support the Mallard Glossary extension.</p><p>This stylesheet contains templates and 
supporting JavaScript to support the Mallard Glossary extension in HTML.</p><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links
<list s
 tyle="compact"><title>Calls Templates</title><item><p><link 
xref="mal.gloss.terms"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.gloss.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>gloss:term</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-gloss">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Support the Mallard Glossary extension.</desc>
+ </info>
+ <title>Mallard to HTML - Glossaries</title>
+ <p>This stylesheet contains templates and supporting JavaScript to support the
+ Mallard Glossary extension in HTML.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.gloss.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.gloss.terms"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>gloss:term</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-inline.page b/doc/yelp-xsl/C/mal2html-inline.page
index 90db2fb2..809f6bd7 100644
--- a/doc/yelp-xsl/C/mal2html-inline.page
+++ b/doc/yelp-xsl/C/mal2html-inline.page
@@ -1,2 +1,274 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-inline" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="3.8" 
date="2012-11-13" status="final"/><link type="xslt-defines-template" xref="mal2html.span"/><link 
type="xslt-implements-mode" xref="mal.link.content.mode"/><link type="xslt-implements-mode" 
xref="mal2html.inline.mode"/><link type="xslt-implements-mode" 
xref="mal2html.inline.content.mode"/></info><title>Mallard to HTML - Inlines</title><p>Handle simple Mallard 
inline elements.</p><p>This stylesheet contains templates to handle most Mallard inline elements. It also 
maps <code style="xslt-mode" xref="mal.link.content.mode">mal.link.content.mode</code> to <code 
style="xslt-mode" xref="mal2html.inline.mode">mal2html.inline.mode</code>.</p><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Par
 ameters<
 /title></links><links type="topic" groups="modes" style="linklist"><title>Modes</title></links><links 
type="topic" groups="templates" style="linklist"><title>Templates</title></links><links type="topic" 
groups="keys" style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link 
xref="l10n.direction"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal.link.content.mode">mal.link.content.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</link></p></td><td><p><code>node()</code></p></td></tr><tr><td><p><link
 xref="mal2html.inline.content.mod
 e">mal2h
 tml.inline.content.mode</link></p></td><td><p><code>mal:guiseq</code></p></td></tr><tr><td><p><link 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</link></p></td><td><p><code>mal:key</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</link></p></td><td><p><code>mal:keyseq</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</link></p></td><td><p><code>mal:link</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>*</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:app</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:cmd</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:code</code></p></td></tr><tr><
 td><p><l
 ink 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:date</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:em</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:file</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:gui</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:guiseq</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:input</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>e:hi</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:key</code></p></td></tr><tr><td><p><link
 xref="
 mal2html
 
.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:keyseq</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:link</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:output</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:span</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:sys</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:var</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>text()</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-inline">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle simple Mallard inline elements.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>Mallard to HTML - Inlines</title>
+ <p>This stylesheet contains templates to handle most Mallard inline elements.
+ It also maps <code xref="mal.link.content.mode">mal.link.content.mode</code> to <code 
xref="mal2html.inline.mode">mal2html.inline.mode</code>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.content.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal.link.content.mode">mal.link.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>node()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:guiseq</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:key</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:keyseq</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:link</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:app</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:cmd</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:code</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:date</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:em</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:file</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:gui</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:guiseq</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:input</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>e:hi</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:key</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:keyseq</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:link</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:output</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:span</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:sys</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:var</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-links.page b/doc/yelp-xsl/C/mal2html-links.page
index e768b53d..c1a8885b 100644
--- a/doc/yelp-xsl/C/mal2html-links.page
+++ b/doc/yelp-xsl/C/mal2html-links.page
@@ -1,2 +1,160 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-links" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal2html.links.section.ul?><?xslt-private 
_mal2html.links.mouseovers?><?xslt-private _mal2html.links.grid?><?xslt-private 
_mal2html.links.norwich?><?xslt-private _mal2html.links.divs?><?xslt-private 
_mal2html.links.divs.nolink.mode?><?xslt-private _mal2html.links.button?><?xslt-private 
_mal2html.links.heading?><info><link type="guide" xref="stylesheets" group="mal2html"/><revision 
version="0.0" date="1970-01-01" status="stub"/><link type="xslt-defines-template" 
xref="mal2html.links.links"/><link type="xslt-defines-template" xref="mal2html.links.ul"/><link 
type="xslt-defines-template" xref="mal2html.links.ul.li"/><link type="xslt-defines-template" 
xref="mal2html.links.guide"/><link type="xslt-defines-template" xref="mal2html.links.prevnext"/><link 
type="xslt-defines-template" xref="mal2html.links.section"/><link type="xslt-defines-template" 
xref="mal2html.link
 s.seeals
 o"/><link type="xslt-defines-template" xref="mal2html.links.series"/><link type="xslt-defines-template" 
xref="mal2html.links.series.prev"/><link type="xslt-defines-template" 
xref="mal2html.links.series.next"/><link type="xslt-defines-template" 
xref="mal2html.links.topic"/></info><title>Mallard to HTML - Links</title><p>This stylesheet contains 
templates to handle automatic linking, both using the Mallard links element and implicitly.</p><links 
type="topic" groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.class.attr"/></p></item><item><p><link xre
 f="mal2h
 tml.ui.expander.data"/></p></item><item><p><link 
xref="mal2html.api.links.function"/></p></item><item><p><link 
xref="mal2html.ui.links.tiles"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item><item><p><link 
xref="mal2html.editor.badge"/></p></item><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.desc"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link xref="mal2html.block.mode"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item><item><p><link 
xref="mal.cache.link.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal.cache"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead>
 <tbody><
 tr><td><p/></td><td><p><code>mal:links</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'guide']</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'prevnext']</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'section']</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'seealso']</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'series']</code></p></td></tr><tr><td><p/></td><td><p><code>mal:links[@type = 
'topic']</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-links">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+ </info>
+ <title>Mallard to HTML - Links</title>
+ <p>This stylesheet contains templates to handle automatic linking, both using the
+ Mallard links element and implicitly.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.desc"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.api.links.function"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor.badge"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.links.tiles"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="_mal2html.links.divs.nolink.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'guide']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'prevnext']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'section']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'seealso']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'series']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:links[@type = 'topic']</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="_mal2html.links.divs.nolink.mode">_mal2html.links.divs.nolink.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="_mal2html.links.divs.nolink.mode">_mal2html.links.divs.nolink.mode</code></p>
+    </td>
+    <td>
+     <p><code>*[@href]</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-list.page b/doc/yelp-xsl/C/mal2html-list.page
index e600226c..77683a11 100644
--- a/doc/yelp-xsl/C/mal2html-list.page
+++ b/doc/yelp-xsl/C/mal2html-list.page
@@ -1,2 +1,133 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-list" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="1.0" 
date="2010-06-04" status="final"/><link type="xslt-defines-template" xref="mal.list.start"/><link 
type="xslt-implements-mode" xref="mal2html.block.mode"/><link type="xslt-implements-mode" 
xref="mal2html.tree.mode"/></info><title>Mallard to HTML - Lists</title><p>Handle Mallard list 
elements.</p><p>This stylesheet contains templates for the <code>list</code>, <code>steps</code>, 
<code>terms</code>, and <code>tree</code> elements in <code style="xslt-mode" 
xref="mal2html.block.mode">mal2html.block.mode</code>. It handles the parent list elements, as well as any 
special processing for child <code>item</code> elements.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></
 links><l
 inks type="topic" groups="modes" style="linklist"><title>Modes</title></links><links type="topic" 
groups="templates" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="mal.if.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="html.lang.attrs"/></p></item><item><p><link 
xref="l10n.direction"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link 
xref="mal2html.inline.mode"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>mal:list/mal:item</code></p></td></tr><tr><td><p/></td><td><p><code>mal:steps/mal:item</code></p></td></tr><tr><td><p/></td><td><p><code>mal:terms/mal:item</code></p></td></tr><tr><td
<p><lin
 k 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:list</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:steps</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:terms</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:tree</code></p></td></tr><tr><td><p><link
 
xref="mal2html.tree.mode">mal2html.tree.mode</link></p></td><td><p><code>mal:item</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-list">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle Mallard list elements.</desc>
+  <revision version="1.0" date="2010-06-04" status="final"/>
+ </info>
+ <title>Mallard to HTML - Lists</title>
+ <p>This stylesheet contains templates for the <sys>list</sys>, <sys>steps</sys>, <sys>terms</sys>, and
+ <sys>tree</sys> elements in <code xref="mal2html.block.mode">mal2html.block.mode</code>. It handles the 
parent list elements,
+ as well as any special processing for child <sys>item</sys> elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.tree.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:list/mal:item</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:steps/mal:item</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:terms/mal:item</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:list</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:steps</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:terms</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:tree</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.tree.mode">mal2html.tree.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:item</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-math.page b/doc/yelp-xsl/C/mal2html-math.page
index 48b671f3..9ad1893b 100644
--- a/doc/yelp-xsl/C/mal2html-math.page
+++ b/doc/yelp-xsl/C/mal2html-math.page
@@ -1,2 +1,108 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-math" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="3.8" 
date="2012-11-13" status="final"/><link type="xslt-implements-mode" xref="mal2html.math.mode"/><link 
type="xslt-implements-mode" xref="mal2html.block.mode"/><link type="xslt-implements-mode" 
xref="mal2html.inline.mode"/></info><title>Mallard to HTML - MathML</title><p>Handle MathML in Mallard 
documents.</p><p>This stylesheet matches embedded MathML in <code style="xslt-mode" 
xref="mal2html.block.mode">mal2html.block.mode</code> and <code style="xslt-mode" 
xref="mal2html.inline.mode">mal2html.inline.mode</code> and processes it in <code style="xslt-mode" 
xref="mal2html.math.mode">mal2html.math.mode</code>. The matched templates for the <code>mml:math</code> 
element automatically set the <code>display</code> attribute based on whether the element is in block or 
inline context.</p><links type="
 topic" g
 roups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.if.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mml:math</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mml:math</code></p></td></tr><tr><td><p><link
 xr
 ef="mal2
 html.math.mode">mal2html.math.mode</link></p></td><td><p><code>mml:*</code></p></td></tr><tr><td><p><link 
xref="mal2html.math.mode">mal2html.math.mode</link></p></td><td><p><code>text()</code></p></td></tr><tr><td><p><link
 
xref="mal2html.math.mode">mal2html.math.mode</link></p></td><td><p><code>*</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-math">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle MathML in Mallard documents.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>Mallard to HTML - MathML</title>
+ <p>This stylesheet matches embedded MathML in <code xref="mal2html.block.mode">mal2html.block.mode</code> 
and
+ <code xref="mal2html.inline.mode">mal2html.inline.mode</code> and processes it in <code 
xref="mal2html.math.mode">mal2html.math.mode</code>. The
+ matched templates for the <sys>mml:math</sys> element automatically set the
+ <sys>display</sys> attribute based on whether the element is in block or inline
+ context.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.math.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mml:math</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mml:math</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.math.mode">mal2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>mml:*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.math.mode">mal2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.math.mode">mal2html.math.mode</code></p>
+    </td>
+    <td>
+     <p><code>*</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-media.page b/doc/yelp-xsl/C/mal2html-media.page
index 5bfbc4dc..67a5549d 100644
--- a/doc/yelp-xsl/C/mal2html-media.page
+++ b/doc/yelp-xsl/C/mal2html-media.page
@@ -1,2 +1,163 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-media" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="3.8" 
date="2012-11-05" status="final"/><link type="xslt-defines-template" xref="mal2html.media.image"/><link 
type="xslt-defines-template" xref="mal2html.media.video"/><link type="xslt-defines-template" 
xref="mal2html.media.audio"/><link type="xslt-implements-mode" xref="mal2html.block.mode"/><link 
type="xslt-implements-mode" xref="mal2html.ttml.mode"/><link type="xslt-implements-mode" 
xref="mal2html.inline.mode"/><link type="xslt-implements-mode" 
xref="mal2html.inline.content.mode"/></info><title>Mallard to HTML - Media Elements</title><p>Handle Mallard 
media elements.</p><p>This stylesheet contains templates for handling Mallard <code>media</code> elements. It 
also handles TTML inside block audio and video <code>media</code> elements.</p><links type="topic" 
groups="stylesheets" style="linklist"
<title>
 Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="html.media.controls"/></p></item><item><p><link 
xref="ttml.profile"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="html.lang.attrs"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link 
xref="mal2html.inline.mode"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><c
 ode>tt:*
 </code></p></td></tr><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:media</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</link></p></td><td><p><code>mal:media</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>tt:span</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>tt:br</code></p></td></tr><tr><td><p><link
 
xref="mal2html.inline.mode">mal2html.inline.mode</link></p></td><td><p><code>mal:media</code></p></td></tr><tr><td><p><link
 
xref="mal2html.ttml.mode">mal2html.ttml.mode</link></p></td><td><p><code>tt:tt</code></p></td></tr><tr><td><p><link
 
xref="mal2html.ttml.mode">mal2html.ttml.mode</link></p></td><td><p><code>tt:body</code></p></td></tr><tr><td><p><link
 xref="mal2html.ttml.mode">mal2html.ttml.mode</link></p></td><td><p><code>tt:div</code></p
</td></
 tr><tr><td><p><link 
xref="mal2html.ttml.mode">mal2html.ttml.mode</link></p></td><td><p><code>tt:p</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-media">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle Mallard media elements.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>Mallard to HTML - Media Elements</title>
+ <p>This stylesheet contains templates for handling Mallard <sys>media</sys> elements.
+ It also handles TTML inside block audio and video <sys>media</sys> elements.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.span"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.profile"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.profile.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.time.range"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ttml.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:media</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:media</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:span</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:br</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.inline.mode">mal2html.inline.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:media</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.ttml.mode">mal2html.ttml.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:tt</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.ttml.mode">mal2html.ttml.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:body</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.ttml.mode">mal2html.ttml.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:div</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.ttml.mode">mal2html.ttml.mode</code></p>
+    </td>
+    <td>
+     <p><code>tt:p</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-page.page b/doc/yelp-xsl/C/mal2html-page.page
index 313880a5..19102e6e 100644
--- a/doc/yelp-xsl/C/mal2html-page.page
+++ b/doc/yelp-xsl/C/mal2html-page.page
@@ -1,2 +1,274 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-page" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal2html.page.about.credits?><info><link type="guide" 
xref="stylesheets" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><link 
type="xslt-defines-template" xref="mal2html.page.about"/><link type="xslt-defines-template" 
xref="mal2html.page.linktrails"/><link type="xslt-defines-template" 
xref="mal2html.page.linktrails.empty"/><link type="xslt-defines-template" 
xref="mal2html.page.linktrails.trail"/><link type="xslt-defines-template" 
xref="mal2html.page.linktrails.trail.prefix"/><link type="xslt-defines-template" 
xref="mal2html.page.linktrails.link"/><link type="xslt-defines-template" xref="mal2html.editor.badge"/><link 
type="xslt-defines-template" xref="mal2html.editor.banner"/><link type="xslt-defines-template" 
xref="_html.sidebar.contents.ul"/><link type="xslt-defines-template" xref="mal2html.section"/><link 
type="xslt-implements-mo
 de" xref
 ="l10n.format.mode"/><link type="xslt-implements-mode" xref="html.title.mode"/><link 
type="xslt-implements-mode" xref="html.header.mode"/><link type="xslt-implements-mode" 
xref="html.footer.mode"/><link type="xslt-implements-mode" xref="html.sidebar.contents.mode"/><link 
type="xslt-implements-mode" xref="html.sidebar.sections.mode"/><link type="xslt-implements-mode" 
xref="html.body.mode"/><link type="xslt-implements-mode" xref="mal2html.title.mode"/><link 
type="xslt-implements-mode" xref="html.css.mode"/><link type="xslt-implements-mode" 
xref="html.js.mode"/><link type="xslt-defines-param" xref="mal2html.editor_mode"/></info><title>Mallard to 
HTML - Pages</title><p>Handle pages, sections, and top-level data.</p><p>This stylesheet contains templates 
to process Mallard <code>page</code> and <code>section</code> elements, including implementations of the 
interfaces provided by the common <file xref="html">html</file> stylesheet.</p><links type="topic" 
groups="stylesheets" style
 ="linkli
 st"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.gettext"/></p></item><item><p><link 
xref="mal.link.linktrails"/></p></item><item><p><link xref="html.linktrails.empty"/></p></item><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item><item><p><link 
xref="_mal2html.links.section.ul"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="mal2html.links.topic"/></p></item><item><p><link 
xref="mal2html.links.gui
 de"/></p
</item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="color.bg"/></p></item><item><p><link 
xref="color.bg.blue"/></p></item><item><p><link xref="color.bg.gray"/></p></item><item><p><link 
xref="color.bg.red"/></p></item><item><p><link xref="color.bg.yellow"/></p></item><item><p><link 
xref="color.blue"/></p></item><item><p><link xref="color.fg"/></p></item><item><p><link 
xref="color.fg.blue"/></p></item><item><p><link xref="color.fg.dark"/></p></item><item><p><link 
xref="color.gray"/></p></item><item><p><link xref="color.red"/></p></item><item><p><link 
xref="color.yellow"/></p></item><item><p><link xref="mal.cache"/></p></item><item><p><link 
xref="mal.link.default_root"/></p></item
<item><
 p><link xref="mal2html.editor_mode"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>mal:page
 | mal:section</code></p></td></tr><tr><td><p><link 
xref="html.body.mode">html.body.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link
 xref="html.css.mode">html.css.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link 
xref="html.footer.mode">html.footer.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link
 
xref="html.header.mode">html.header.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link
 xref="html.js.mode">html.js.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link 
xref="html.sidebar.contents.mode">html.sidebar.contents.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link
 xref="html.sidebar.sections.mode">html
 .sidebar
 .sections.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link 
xref="html.title.mode">html.title.mode</link></p></td><td><p><code>mal:page</code></p></td></tr><tr><td><p><link
 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:copyright.years</code></p></td></tr><tr><td><p><link
 
xref="l10n.format.mode">l10n.format.mode</link></p></td><td><p><code>msg:copyright.name</code></p></td></tr><tr><td><p><link
 xref="mal2html.title.mode">mal2html.title.mode</link></p></td><td><p><code>mal:title | 
mal:subtitle</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-page">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle pages, sections, and top-level data.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>Mallard to HTML - Pages</title>
+ <p>This stylesheet contains templates to process Mallard <sys>page</sys> and <sys>section</sys>
+ elements, including implementations of the interfaces provided by the common
+ <code xref="html">html</code> stylesheet.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.post"/></p>
+  </item>
+  <item>
+   <p><link xref="html.content.pre"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.empty"/></p>
+  </item>
+  <item>
+   <p><link xref="html.linktrails.prefix"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.end"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.align.start"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.guidelinks"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linktrails"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.seealsolinks"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.topiclinks"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.gloss.terms"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.guide"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.prevnext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.seealso"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.topic"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.title.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:page | mal:section</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.body.mode">html.body.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.css.mode">html.css.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.footer.mode">html.footer.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.header.mode">html.header.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.js.mode">html.js.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.contents.mode">html.sidebar.contents.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.sidebar.sections.mode">html.sidebar.sections.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="html.title.mode">html.title.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:page</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:copyright.years</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="l10n.format.mode">l10n.format.mode</code></p>
+    </td>
+    <td>
+     <p><code>msg:copyright.name</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.title.mode">mal2html.title.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:title | mal:subtitle</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-svg.page b/doc/yelp-xsl/C/mal2html-svg.page
index 5357a344..fd6cccb1 100644
--- a/doc/yelp-xsl/C/mal2html-svg.page
+++ b/doc/yelp-xsl/C/mal2html-svg.page
@@ -1,2 +1,89 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-svg" type="guide" 
style="xslt-stylesheet"><info><link type="guide" xref="stylesheets" group="mal2html"/><revision version="1.0" 
date="2010-06-04" status="final"/><link type="xslt-implements-mode" xref="mal2html.svg.mode"/><link 
type="xslt-implements-mode" xref="mal2html.block.mode"/></info><title>Mallard to HTML - SVG</title><p>Handle 
embedded SVG.</p><p>This stylesheet matches embedded SVG in <code style="xslt-mode" 
xref="mal2html.block.mode">mal2html.block.mode</code> and processes it in <code style="xslt-mode" 
xref="mal2html.svg.mode">mal2html.svg.mode</code>.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links t
 ype="top
 ic" groups="keys" style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.if.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>svg:svg</code></p></td></tr><tr><td><p><link
 
xref="mal2html.svg.mode">mal2html.svg.mode</link></p></td><td><p><code>svg:*</code></p></td></tr><tr><td><p><link
 
xref="mal2html.svg.mode">mal2html.svg.mode</link></p></td><td><p><code>text()</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-svg">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Handle embedded SVG.</desc>
+  <revision version="1.0" date="2010-06-04" status="final"/>
+ </info>
+ <title>Mallard to HTML - SVG</title>
+ <p>This stylesheet matches embedded SVG in <code xref="mal2html.block.mode">mal2html.block.mode</code> and 
processes it
+ in <code xref="mal2html.svg.mode">mal2html.svg.mode</code>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.svg.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>svg:svg</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.svg.mode">mal2html.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>svg:*</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.svg.mode">mal2html.svg.mode</code></p>
+    </td>
+    <td>
+     <p><code>text()</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-table.page b/doc/yelp-xsl/C/mal2html-table.page
index 43645ecd..5ab36c79 100644
--- a/doc/yelp-xsl/C/mal2html-table.page
+++ b/doc/yelp-xsl/C/mal2html-table.page
@@ -1,2 +1,103 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-table" type="guide" 
style="xslt-stylesheet"><?xslt-private rowspans?><info><link type="guide" xref="stylesheets" 
group="mal2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-implements-mode" 
xref="mal2html.block.mode"/></info><title>Mallard to HTML - Table Elements</title><comment><p>Describe this 
module</p></comment><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="mal.if.test"/></p></item><item><p><link 
xref="html.class.attr"/></p></item><item
<p><lin
 k xref="utils.repeat_string"/></p></item></list><list style="compact"><title>Calls 
Modes</title><item><p><link xref="mal2html.block.mode"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p/></td><td><p><code>mal:tbody</code></p></td></tr><tr><td><p/></td><td><p><code>mal:thead</code></p></td></tr><tr><td><p/></td><td><p><code>mal:tfoot</code></p></td></tr><tr><td><p/></td><td><p><code>mal:tr</code></p></td></tr><tr><td><p/></td><td><p><code>mal:td
 | mal:th</code></p></td></tr><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>mal:table</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-table">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+ </info>
+ <title>Mallard to HTML - Table Elements</title>
+ <p>REMARK: Describe this module</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:tbody</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:thead</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:tfoot</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:tr</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td/>
+    <td>
+     <p><code>mal:td | mal:th</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>mal:table</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html-ui.page b/doc/yelp-xsl/C/mal2html-ui.page
index 5f218e22..66ab1f8d 100644
--- a/doc/yelp-xsl/C/mal2html-ui.page
+++ b/doc/yelp-xsl/C/mal2html-ui.page
@@ -1,2 +1,104 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html-ui" type="guide" 
style="xslt-stylesheet"><?xslt-private _mal2html.ui.links.hover?><info><link type="guide" xref="stylesheets" 
group="mal2html"/><revision version="0.0" date="1970-01-01" status="stub"/><link type="xslt-defines-template" 
xref="mal2html.ui.expander.data"/><link type="xslt-defines-template" xref="mal2html.ui.links.tiles"/><link 
type="xslt-defines-template" xref="mal2html.ui.links.img"/><link type="xslt-defines-template" 
xref="mal2html.ui.links.img.src"/><link type="xslt-defines-template" 
xref="mal2html.ui.links.img.attrs"/><link type="xslt-implements-mode" 
xref="mal2html.block.mode"/></info><title>Mallard to HTML - UI Extension</title><p>Support for Mallard UI 
extension elements.</p><p>This stylesheet contains templates to support features from the Mallard UI 
extension.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" st
 yle="lin
 klist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Templates</title><item><p><link xref="l10n.direction"/></p></item><item><p><link 
xref="mal.link.target"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item><item><p><link 
xref="mal.link.content"/></p></item><item><p><link xref="mal.link.desc"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="_mal2html.links.divs.nolink.mode"/></p></item><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="co
 mpact"><
 title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list><table><title>Implements 
Templates</title><thead><tr><th><p>Mode</p></th><th><p>Match</p></th></tr></thead><tbody><tr><td><p><link 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>uix:thumb</code></p></td></tr><tr><td><p><link
 
xref="mal2html.block.mode">mal2html.block.mode</link></p></td><td><p><code>uix:overlay</code></p></td></tr></tbody></table></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html-ui">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <desc>Support for Mallard UI extension elements.</desc>
+ </info>
+ <title>Mallard to HTML - UI Extension</title>
+ <p>This stylesheet contains templates to support features from the Mallard UI
+ extension.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.desc"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="_mal2html.links.divs.nolink.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+ <table rules="rows">
+  <title>Implements Templates</title>
+  <thead>
+   <tr>
+    <th>
+     <p>Mode</p>
+    </th>
+    <th>
+     <p>Match</p>
+    </th>
+   </tr>
+  </thead>
+  <tbody>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>uix:thumb</code></p>
+    </td>
+   </tr>
+   <tr>
+    <td>
+     <p><code xref="mal2html.block.mode">mal2html.block.mode</code></p>
+    </td>
+    <td>
+     <p><code>uix:overlay</code></p>
+    </td>
+   </tr>
+  </tbody>
+ </table>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.api.links.function.c.page 
b/doc/yelp-xsl/C/mal2html.api.links.function.c.page
index 3a861e92..0a8eda7e 100644
--- a/doc/yelp-xsl/C/mal2html.api.links.function.c.page
+++ b/doc/yelp-xsl/C/mal2html.api.links.function.c.page
@@ -1,16 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.api.links.function.c" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-api" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Output 
links as a synopsis of C functions.</desc></info><title>mal2html.api.links.function.c</title><p>Output links 
as a synopsis of C functions.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of topic links already filtered by group.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links as a synopsis of C functions. It is called by <code style="xslt-template" 
xref="mal2html.api.links.function">mal2html.api.links.function</code> when the <code>api:mime</code> 
attribute of <code style="xslt-param">node</code> is <code>text/x-csrc</code> or <code>text/x-chdr</code>. 
The target nodes of <code style="xslt-param">links</code> are expected to have at least an 
<code>api:name</code> element. Any links whose target does not have an <code>api:name</code> element will be 
passed to <code style="xslt-template" xref="mal2html.links.ul">mal2html.links.ul</code> after the 
synopsis.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="utils.repeat_string"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item><item><p><link 
xref="mal2html.links.ul"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.mode"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.api.links.function.c">
+ <info>
+  <link type="guide" xref="mal2html-api" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links as a synopsis of C functions.</desc>
+ </info>
+ <title>mal2html.api.links.function.c</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of topic links already filtered by group.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links as a synopsis of C functions. It is called by
+ <code xref="mal2html.api.links.function">mal2html.api.links.function</code> when the <sys>api:mime</sys> 
attribute of <code>$node</code> is
+ <sys>text/x-csrc</sys> or <sys>text/x-chdr</sys>. The target nodes of <code>$links</code> are expected
+ to have at least an <sys>api:name</sys> element. Any links whose target does not
+ have an <sys>api:name</sys> element will be passed to <code 
xref="mal2html.links.ul">mal2html.links.ul</code> after
+ the synopsis.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.ul"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.api.links.function.page b/doc/yelp-xsl/C/mal2html.api.links.function.page
index 1c42eb4d..81c90efa 100644
--- a/doc/yelp-xsl/C/mal2html.api.links.function.page
+++ b/doc/yelp-xsl/C/mal2html.api.links.function.page
@@ -1,17 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.api.links.function" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-api" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Output 
links as a synopsis of functions.</desc></info><title>mal2html.api.links.function</title><p>Output links as a 
synopsis of functions.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of topic links already filtered by group.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links as a synopsis according to the programming language specified by the 
<code>api:mime</code> attribute of <code style="xslt-param">node</code>. If <code>api:mime</code> is 
recognized, one of the language-specific templates in this stylesheet is called. Otherwise, the links are 
passed to <code style="xslt-template" xref="mal2html.links.ul">mal2html.links.ul</code>.</p>
-  <p>This template does not handle titles or other wrapper information for <code>links</code> elements. It 
should be called by an appropriate template that handles the <code>links</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.api.links.function.c"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.api.links.function">
+ <info>
+  <link type="guide" xref="mal2html-api" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links as a synopsis of functions.</desc>
+ </info>
+ <title>mal2html.api.links.function</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of topic links already filtered by group.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links as a synopsis according to the programming language
+ specified by the <sys>api:mime</sys> attribute of <code>$node</code>. If <sys>api:mime</sys> is recognized,
+ one of the language-specific templates in this stylesheet is called. Otherwise,
+ the links are passed to <code xref="mal2html.links.ul">mal2html.links.ul</code>.</p>
+ <p>This template does not handle titles or other wrapper information for <sys>links</sys>
+ elements. It should be called by an appropriate template that handles the
+ <sys>links</sys> element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.api.links.function.c"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.ul"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.block.mode.page b/doc/yelp-xsl/C/mal2html.block.mode.page
index e3bb0275..e878c507 100644
--- a/doc/yelp-xsl/C/mal2html.block.mode.page
+++ b/doc/yelp-xsl/C/mal2html.block.mode.page
@@ -1,14 +1,22 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.block.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-block" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="1.0" date="2010-06-03" status="final"/><desc>Process 
Mallard elements in block mode.</desc></info><title>mal2html.block.mode</title><p>Process Mallard elements in 
block mode.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>restricted</code></title>
-      <p>Whether this is restricted block mode.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is applied to elements in block context. It should be called by templates for pages, 
sections, and block container elements. Certain elements may appear in both block an inline mode, and the 
processing expectations for those elements is different depending on context.</p>
-  <p>Implementations of this mode should generally output a wrapper div and process the child elements, 
either in <code style="xslt-mode" xref="mal2html.block.mode">mal2html.block.mode</code> or <code 
style="xslt-mode" xref="mal2html.inline.mode">mal2html.inline.mode</code>, or using special processing for 
particular content models.</p>
-  <p>When this mode encounters unknown content, templates in the same mode are applied to the children, but 
the <code style="xslt-param">restricted</code> parameter is set to <code>true</code>. When <code 
style="xslt-param">restricted</code> is <code>true</code>, unknown block elements are ignored. This is in 
accordance with the Mallard specification on fallback block content.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.block.mode">
+ <info>
+  <link type="guide" xref="mal2html-block" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Process Mallard elements in block mode.</desc>
+  <revision version="1.0" date="2010-06-03" status="final"/>
+ </info>
+ <title>mal2html.block.mode</title>
+ <p><code>$restricted</code>: Whether this is restricted block mode.</p>
+ <p>This mode is applied to elements in block context. It should be called by
+ templates for pages, sections, and block container elements. Certain elements
+ may appear in both block an inline mode, and the processing expectations for
+ those elements is different depending on context.</p>
+ <p>Implementations of this mode should generally output a wrapper div and process
+ the child elements, either in <code xref="mal2html.block.mode">mal2html.block.mode</code> or <code 
xref="mal2html.inline.mode">mal2html.inline.mode</code>,
+ or using special processing for particular content models.</p>
+ <p>When this mode encounters unknown content, templates in the same mode are
+ applied to the children, but the <code>$restricted</code> parameter is set to <sys>true</sys>.
+ When <code>$restricted</code> is <sys>true</sys>, unknown block elements are ignored. This is
+ in accordance with the Mallard specification on fallback block content.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.editor.badge.page b/doc/yelp-xsl/C/mal2html.editor.badge.page
index 27f4fc7b..30067f68 100644
--- a/doc/yelp-xsl/C/mal2html.editor.badge.page
+++ b/doc/yelp-xsl/C/mal2html.editor.badge.page
@@ -1,12 +1,76 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.editor.badge" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output a 
badge for a link showing the revision status of the 
target.</desc></info><title>mal2html.editor.badge</title><p>Output a badge for a link showing the revision 
status of the target.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>target</code></title>
-      <p>The page or section being linked to.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template may be called by link formatters to output a badge showing the revision status of the 
linked-to page or section. It only outputs a badge if <code style="xslt-param" 
xref="mal2html.editor_mode">mal2html.editor_mode</code> is <code>true</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="mal2html.editor_mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.editor.badge">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output a badge for a link showing the revision status of the target.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.editor.badge</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$target</code></title>
+    <p>The page or section being linked to.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template may be called by link formatters to output a badge showing the
+ revision status of the linked-to page or section. It only outputs a badge if
+ <code xref="mal2html.editor_mode">mal2html.editor_mode</code> is <sys>true</sys>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.editor.banner.page b/doc/yelp-xsl/C/mal2html.editor.banner.page
index dbff072f..592df89c 100644
--- a/doc/yelp-xsl/C/mal2html.editor.banner.page
+++ b/doc/yelp-xsl/C/mal2html.editor.banner.page
@@ -1,12 +1,82 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.editor.banner" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output a 
banner with the revision status of a page.</desc></info><title>mal2html.editor.banner</title><p>Output a 
banner with the revision status of a page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The top-level <code>page</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by the <code style="xslt-mode" xref="html.body.mode">html.body.mode</code> 
implementation for <code>page</code> elements. It outputs a banner providing information about the revision 
status of <code style="xslt-param">node</code>. It only outputs a banner if <code style="xslt-param" 
xref="mal2html.editor_mode">mal2html.editor_mode</code> is <code>true</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal2html.editor_mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.editor.banner">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output a banner with the revision status of a page.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.editor.banner</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The top-level <sys>page</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by the <code xref="html.body.mode">html.body.mode</code> implementation for 
<sys>page</sys>
+ elements. It outputs a banner providing information about the revision status
+ of <code>$node</code>. It only outputs a banner if <code 
xref="mal2html.editor_mode">mal2html.editor_mode</code> is <sys>true</sys>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.editor_mode.page b/doc/yelp-xsl/C/mal2html.editor_mode.page
index 0496a64e..dce49cb4 100644
--- a/doc/yelp-xsl/C/mal2html.editor_mode.page
+++ b/doc/yelp-xsl/C/mal2html.editor_mode.page
@@ -1,6 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.editor_mode" type="topic" 
style="xslt-param"><info><link type="guide" xref="mal2html-page" group="parameters"/><link type="guide" 
xref="parameters" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Add 
information that's useful to writers and editors.</desc></info><title>mal2html.editor_mode</title><p>Add 
information that's useful to writers and editors.</p>
-  
-  
-  <p>When this parameter is set to true, these stylesheets will output editorial comments, status markers, 
and other information that's useful to writers and editors.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="mal2html.editor_mode">
+ <info>
+  <link type="guide" xref="mal2html-page" group="params"/>
+  <link type="guide" xref="params" group="mal2html"/>
+  <desc>Add information that's useful to writers and editors.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.editor_mode</title>
+ <p>When this parameter is set to true, these stylesheets will output editorial
+ comments, status markers, and other information that's useful to writers and
+ editors.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>mal2html.editor_mode</code></title>
+    <p><code>false()</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.gloss.terms.page b/doc/yelp-xsl/C/mal2html.gloss.terms.page
index e270658c..be0bd210 100644
--- a/doc/yelp-xsl/C/mal2html.gloss.terms.page
+++ b/doc/yelp-xsl/C/mal2html.gloss.terms.page
@@ -1,12 +1,52 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.gloss.terms" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-gloss" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="0.0" date="1970-01-01" status="stub"/><desc>Display the 
glossary terms for a page or section.</desc></info><title>mal2html.gloss.terms</title><p>Display the glossary 
terms for a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The glossary <code>page</code> or <code>section</code> to output terms for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template shows the glossary terms for a page or section. It collects the terms with the <code 
style="xslt-template" xref="mal.gloss.terms">mal.gloss.terms</code> template, sorts them, and merges terms 
with the same primary title. Terms that are not defined in the same page as <code 
style="xslt-param">node</code> include a link to their defining page.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.gloss.terms"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.gloss.terms">
+ <info>
+  <link type="guide" xref="mal2html-gloss" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Display the glossary terms for a page or section.</desc>
+ </info>
+ <title>mal2html.gloss.terms</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The glossary <sys>page</sys> or <sys>section</sys> to output terms for.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template shows the glossary terms for a page or section. It collects the
+ terms with the <code xref="mal.gloss.terms">mal.gloss.terms</code> template, sorts them, and merges terms 
with
+ the same primary title. Terms that are not defined in the same page as <code>$node</code>
+ include a link to their defining page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.gloss.terms"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.inline.content.mode.page 
b/doc/yelp-xsl/C/mal2html.inline.content.mode.page
index 029e95ff..4527346b 100644
--- a/doc/yelp-xsl/C/mal2html.inline.content.mode.page
+++ b/doc/yelp-xsl/C/mal2html.inline.content.mode.page
@@ -1,6 +1,14 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.inline.content.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-inline" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="1.0" date="2010-06-03" status="final"/><desc>Output the 
contents of an inline element.</desc></info><title>mal2html.inline.content.mode</title><p>Output the contents 
of an inline element.</p>
-  
-  
-  <p>This template outputs the contents of the inline element it matches. It is usually called by <code 
style="xslt-template" xref="mal2html.span">mal2html.span</code> to allow elements like <code>guiseq</code>, 
<code>keyseq</code>, and <code>link</code> output special inner contents while still using the generic 
wrapper template.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" 
id="mal2html.inline.content.mode">
+ <info>
+  <link type="guide" xref="mal2html-inline" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Output the contents of an inline element.</desc>
+  <revision version="1.0" date="2010-06-03" status="final"/>
+ </info>
+ <title>mal2html.inline.content.mode</title>
+ <p>This template outputs the contents of the inline element it matches. It is
+ usually called by <code xref="mal2html.span">mal2html.span</code> to allow elements like <sys>guiseq</sys>, 
<sys>keyseq</sys>,
+ and <sys>link</sys> output special inner contents while still using the generic wrapper
+ template.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.inline.mode.page b/doc/yelp-xsl/C/mal2html.inline.mode.page
index 3a644962..e05f1241 100644
--- a/doc/yelp-xsl/C/mal2html.inline.mode.page
+++ b/doc/yelp-xsl/C/mal2html.inline.mode.page
@@ -1,7 +1,19 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.inline.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-inline" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="3.8" date="2012-11-13" status="final"/><desc>Process 
Mallard elements in inline mode.</desc></info><title>mal2html.inline.mode</title><p>Process Mallard elements 
in inline mode.</p>
-  
-  
-  <p>This mode is applied to elements in inline context. It is be called by certain block elements and 
inline elements to process child content. Certain elements may appear in both block and inline mode, and the 
processing expectations for those elements is different depending on context.</p>
-  <p>Implementations of this mode should handle ubiquitous linking, text directionality, and other common 
inline features. Note that the <code style="xslt-template" xref="mal2html.span">mal2html.span</code> template 
handles these things automatically, and is suitable for most inline elements. You can use the <code 
style="xslt-mode" xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code> to output special 
content for the child elements.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.inline.mode">
+ <info>
+  <link type="guide" xref="mal2html-inline" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Process Mallard elements in inline mode.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>mal2html.inline.mode</title>
+ <p>This mode is applied to elements in inline context. It is be called by certain
+ block elements and inline elements to process child content. Certain elements
+ may appear in both block and inline mode, and the processing expectations for
+ those elements is different depending on context.</p>
+ <p>Implementations of this mode should handle ubiquitous linking, text directionality,
+ and other common inline features. Note that the <code xref="mal2html.span">mal2html.span</code> template 
handles
+ these things automatically, and is suitable for most inline elements. You can use
+ the <code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code> to output special content 
for the child
+ elements.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.links.guide.page b/doc/yelp-xsl/C/mal2html.links.guide.page
index 8742707b..eaec8c3a 100644
--- a/doc/yelp-xsl/C/mal2html.links.guide.page
+++ b/doc/yelp-xsl/C/mal2html.links.guide.page
@@ -1,20 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.guide" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2012-02-23" status="final"/><desc>Output 
guide links from a page or section.</desc></info><title>mal2html.links.guide</title><p>Output guide links 
from a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code>, <code>page</code>, or <code>section</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>depth</code></title>
-      <p>The depth level for the HTML header element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links from <code style="xslt-template" 
xref="mal.link.guidelinks">mal.link.guidelinks</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs guide links for a page or section. It does not extract the links itself. They 
must be passed in with the <code style="xslt-param">links</code> parameter.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.links.links"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.guide">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output guide links from a page or section.</desc>
+  <revision version="3.4" date="2012-02-23" status="final"/>
+ </info>
+ <title>mal2html.links.guide</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys>, <sys>page</sys>, or <sys>section</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$depth</code></title>
+    <p>The depth level for the HTML header element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links from <code xref="mal.link.guidelinks">mal.link.guidelinks</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs guide links for a page or section. It does not extract
+ the links itself. They must be passed in with the <code>$links</code> parameter.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.links"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.links.page b/doc/yelp-xsl/C/mal2html.links.links.page
index b941bec8..970290bf 100644
--- a/doc/yelp-xsl/C/mal2html.links.links.page
+++ b/doc/yelp-xsl/C/mal2html.links.links.page
@@ -1,34 +1,78 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.links" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.10" date="2013-07-30" status="final"/><desc>Output 
links in one of a number of formats.</desc></info><title>mal2html.links.links</title><p>Output links in one 
of a number of formats.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code>, <code>page</code>, or <code>section</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>depth</code></title>
-      <p>The depth level for the HTML header element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links, as from a template in <file xref="mal-link">mal-link</file>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>divs</code></title>
-      <p>Whether to default to divs instead of a list.</p>
-    </item>
-    <item>
-      <title><code>title</code></title>
-      <p>A default title to use if no <code>title</code> element is found.</p>
-    </item>
-  </terms></synopsis>
-  <p>This is a common formatting template used by some <code>links</code> element handlers. It selects an 
appropriate way to render the links based on style hints and extension attributes on <code 
style="xslt-param">node</code>. This template (or the templates it calls) will pass through 
<code>class</code> and <code>data-*</code> attributes found on the <code>link</code> elements to the 
top-level container element of each output link.</p>
-  <p>This template handles link sorting.</p>
-  <p>If <code style="xslt-param">node</code> is a <code>links</code> element with a <code>title</code> 
element, that <code>title</code> element will be processed as the title. Otherwise, the optional <code 
style="xslt-param">title</code> parameter will be used if provided.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="mal2html.ui.expander.data"/></p></item><item><p><link 
xref="mal2html.api.links.function"/></p></item><item><p><link 
xref="mal2html.ui.links.tiles"/></p></item><item><p><link xref="mal2html.links.ul"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link xref="mal2html.block.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.links">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links in one of a number of formats.</desc>
+  <revision version="3.10" date="2013-07-30" status="final"/>
+ </info>
+ <title>mal2html.links.links</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys>, <sys>page</sys>, or <sys>section</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$depth</code></title>
+    <p>The depth level for the HTML header element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links, as from a template in <code xref="mal-link">mal-link</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$divs</code></title>
+    <p>Whether to default to divs instead of a list.</p>
+   </item>
+   <item>
+    <title><code>$title</code></title>
+    <p>A default title to use if no <sys>title</sys> element is found.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This is a common formatting template used by some <sys>links</sys> element handlers.
+ It selects an appropriate way to render the links based on style hints and
+ extension attributes on <code>$node</code>. This template (or the templates it calls)
+ will pass through <sys>class</sys> and <sys>data-*</sys> attributes found on the <sys>link</sys>
+ elements to the top-level container element of each output link.</p>
+ <p>This template handles link sorting.</p>
+ <p>If <code>$node</code> is a <sys>links</sys> element with a <sys>title</sys> element, that 
<sys>title</sys>
+ element will be processed as the title. Otherwise, the optional <code>$title</code>
+ parameter will be used if provided.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.api.links.function"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.ul"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.links.tiles"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.prevnext.page b/doc/yelp-xsl/C/mal2html.links.prevnext.page
index 35e5413a..362f3d99 100644
--- a/doc/yelp-xsl/C/mal2html.links.prevnext.page
+++ b/doc/yelp-xsl/C/mal2html.links.prevnext.page
@@ -1,13 +1,53 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.prevnext" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="1.0" date="2011-06-15" status="final"/><desc>Output 
links to the previous and next pages.</desc></info><title>mal2html.links.prevnext</title><p>Output links to 
the previous and next pages.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> or <code>page</code> element to link from.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links to the previous and next page in a Mallard series, if they exist. The block 
containing the links is end-floated by default. The links use the text "Previous" and "Next", although the 
actual page titles are used for tooltips.</p>
-  <p>If the <code>links</code> element has the style hint <code>top</code>, it will be inserted before the 
page title, instead of in its position on the page. This is handled by the calling functions in <file 
xref="mal2html-page">mal2html-page</file>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.link.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.prevnext">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links to the previous and next pages.</desc>
+  <revision version="1.0" date="2011-06-15" status="final"/>
+ </info>
+ <title>mal2html.links.prevnext</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> or <sys>page</sys> element to link from.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links to the previous and next page in a Mallard series,
+ if they exist. The block containing the links is end-floated by default. The
+ links use the text "Previous" and "Next", although the actual page titles are
+ used for tooltips.</p>
+ <p>If the <sys>links</sys> element has the style hint <sys>top</sys>, it will be inserted before
+ the page title, instead of in its position on the page. This is handled by the
+ calling functions in <code xref="mal2html-page">mal2html-page</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.section.page b/doc/yelp-xsl/C/mal2html.links.section.page
index 4d0704f2..6464498b 100644
--- a/doc/yelp-xsl/C/mal2html.links.section.page
+++ b/doc/yelp-xsl/C/mal2html.links.section.page
@@ -1,16 +1,43 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.section" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="1.0" date="2011-06-15" status="final"/><desc>Output 
links to subsections.</desc></info><title>mal2html.links.section</title><p>Output links to subsections.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The section <code>links</code> element.</p>
-    </item>
-    <item>
-      <title><code>depth</code></title>
-      <p>The depth level for the HTML header element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links to the child sections of the <code>page</code> or <code>section</code> 
element containing <code style="xslt-param">node</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.ui.expander.data"/></p></item></list><list style="compact"><title>Calls 
Modes</title><item><p><link xref="mal2html.block.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.section">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links to subsections.</desc>
+  <revision version="1.0" date="2011-06-15" status="final"/>
+ </info>
+ <title>mal2html.links.section</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The section <sys>links</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$depth</code></title>
+    <p>The depth level for the HTML header element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links to the child sections of the <sys>page</sys> or <sys>section</sys>
+ element containing <code>$node</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.seealso.page b/doc/yelp-xsl/C/mal2html.links.seealso.page
index 978ad336..c66f11e0 100644
--- a/doc/yelp-xsl/C/mal2html.links.seealso.page
+++ b/doc/yelp-xsl/C/mal2html.links.seealso.page
@@ -1,20 +1,44 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.seealso" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2012-02-23" status="final"/><desc>Output 
seealso links from a page or section.</desc></info><title>mal2html.links.seealso</title><p>Output seealso 
links from a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code>, <code>page</code>, or <code>section</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>depth</code></title>
-      <p>The depth level for the HTML header element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links from <code style="xslt-template" 
xref="mal.link.seealsolinks">mal.link.seealsolinks</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs seealso links for a page or section. It does not extract the links itself. They 
must be passed in with the <code style="xslt-param">links</code> parameter.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.links.links"/></p></item><item><p><link xref="l10n.gettext"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.seealso">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output seealso links from a page or section.</desc>
+  <revision version="3.4" date="2012-02-23" status="final"/>
+ </info>
+ <title>mal2html.links.seealso</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys>, <sys>page</sys>, or <sys>section</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$depth</code></title>
+    <p>The depth level for the HTML header element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links from <code xref="mal.link.seealsolinks">mal.link.seealsolinks</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs seealso links for a page or section. It does not extract
+ the links itself. They must be passed in with the <code>$links</code> parameter.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.links"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.series.next.page b/doc/yelp-xsl/C/mal2html.links.series.next.page
index 62622262..69e6d680 100644
--- a/doc/yelp-xsl/C/mal2html.links.series.next.page
+++ b/doc/yelp-xsl/C/mal2html.links.series.next.page
@@ -1,16 +1,57 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.series.next" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="1.0" date="2011-06-15" status="final"/><desc>Output 
following links to pages in a series.</desc></info><title>mal2html.links.series.next</title><p>Output 
following links to pages in a series.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The current <code>page</code> element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>The series <code>links</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" 
xref="mal2html.links.series">mal2html.links.series</code> to output the pages after the starting page in the 
series. This template finds the next page for the page <code style="xslt-param">node</code>. It outputs a 
link to that page, then calls itself recursively on that page.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item><item><p><link 
xref="mal2html.links.series.next"/></p></item></list><list style="compact"><title>Calls 
Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.series.next">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output following links to pages in a series.</desc>
+  <revision version="1.0" date="2011-06-15" status="final"/>
+ </info>
+ <title>mal2html.links.series.next</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The current <sys>page</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>The series <sys>links</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal2html.links.series">mal2html.links.series</code> to output the 
pages after
+ the starting page in the series. This template finds the next page for the page
+ <code>$node</code>. It outputs a link to that page, then calls itself recursively on that
+ page.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.series.next"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.series.page b/doc/yelp-xsl/C/mal2html.links.series.page
index 861ad60f..a90dd11c 100644
--- a/doc/yelp-xsl/C/mal2html.links.series.page
+++ b/doc/yelp-xsl/C/mal2html.links.series.page
@@ -1,13 +1,51 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.series" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="1.0" date="2011-06-15" status="final"/><desc>Output 
links to pages in a series.</desc></info><title>mal2html.links.series</title><p>Output links to pages in a 
series.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> or <code>page</code> element to start from.</p>
-    </item>
-  </terms></synopsis>
-  <p>A series in Mallard is a list of page such that each page in the list has a next link to the following 
page. This template outputs links to each page in a series. The current page is output in its place, 
althought it is not a link.</p>
-  <p>This template calls <code style="xslt-template" 
xref="mal2html.links.series.prev">mal2html.links.series.prev</code> and <code style="xslt-template" 
xref="mal2html.links.series.next">mal2html.links.series.next</code> to find and output the links.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.ui.expander.data"/></p></item><item><p><link 
xref="mal2html.links.series.prev"/></p></item><item><p><link xref="mal.link.content"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link xref="mal2html.block.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.series">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links to pages in a series.</desc>
+  <revision version="1.0" date="2011-06-15" status="final"/>
+ </info>
+ <title>mal2html.links.series</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> or <sys>page</sys> element to start from.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>A series in Mallard is a list of page such that each page in the list has a
+ next link to the following page. This template outputs links to each page in
+ a series. The current page is output in its place, althought it is not a link.</p>
+ <p>This template calls <code xref="mal2html.links.series.prev">mal2html.links.series.prev</code> and
+ <code xref="mal2html.links.series.next">mal2html.links.series.next</code> to find and output the links.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.series.next"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.series.prev"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.series.prev.page b/doc/yelp-xsl/C/mal2html.links.series.prev.page
index 72e3080b..b8d96496 100644
--- a/doc/yelp-xsl/C/mal2html.links.series.prev.page
+++ b/doc/yelp-xsl/C/mal2html.links.series.prev.page
@@ -1,16 +1,60 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.series.prev" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="1.0" date="2011-06-15" status="final"/><desc>Output 
preceding links to pages in a series.</desc></info><title>mal2html.links.series.prev</title><p>Output 
preceding links to pages in a series.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The current <code>page</code> element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>The series <code>links</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" 
xref="mal2html.links.series">mal2html.links.series</code> to output the pages before the starting page in the 
series. This template finds the previous page for the page <code style="xslt-param">node</code>. It then 
calls itself recursively on that page, and outputs a link to it.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linkid"/></p></item><item><p><link 
xref="mal2html.links.series.prev"/></p></item><item><p><link 
xref="mal.link.target"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item><item><p><link 
xref="mal.link.content"/></p></item></list><list style="compact"><title>Calls Keys</title><item><p><link 
xref="mal.cache.key"/></p></item><item><p><link xref="mal.cache.link.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.series.prev">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output preceding links to pages in a series.</desc>
+  <revision version="1.0" date="2011-06-15" status="final"/>
+ </info>
+ <title>mal2html.links.series.prev</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The current <sys>page</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>The series <sys>links</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal2html.links.series">mal2html.links.series</code> to output the 
pages before
+ the starting page in the series. This template finds the previous page for the
+ page <code>$node</code>. It then calls itself recursively on that page, and outputs a link
+ to it.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache.link.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.linkid"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.links.series.prev"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.topic.page b/doc/yelp-xsl/C/mal2html.links.topic.page
index b8d7374b..d049de6c 100644
--- a/doc/yelp-xsl/C/mal2html.links.topic.page
+++ b/doc/yelp-xsl/C/mal2html.links.topic.page
@@ -1,28 +1,53 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.topic" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2012-02-23" status="final"/><desc>Output 
topic links from a page or section.</desc></info><title>mal2html.links.topic</title><p>Output topic links 
from a page or section.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code>, <code>page</code>, or <code>section</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>depth</code></title>
-      <p>The depth level for the HTML header element.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links from <code style="xslt-template" 
xref="mal.link.topiclinks">mal.link.topiclinks</code>.</p>
-    </item>
-    <item>
-      <title><code>groups</code></title>
-      <p>The list of link groups for this <code>links</code> element.</p>
-    </item>
-    <item>
-      <title><code>allgroups</code></title>
-      <p>The list of all valid groups for the page or section.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs topic links for a page or section. It does not extract the links itself. They 
must be passed in with the <code style="xslt-param">links</code> parameter. This template only outputs links 
which have a group that matches <code style="xslt-param">groups</code>. The <code 
style="xslt-param">groups</code> parameter is not expected to have the implicit groups <code>first</code>, 
<code>default</code>, and <code>last</code>. These are added automatically by this template when determining 
which links to output.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.links.links"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.topic">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output topic links from a page or section.</desc>
+  <revision version="3.4" date="2012-02-23" status="final"/>
+ </info>
+ <title>mal2html.links.topic</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys>, <sys>page</sys>, or <sys>section</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$depth</code></title>
+    <p>The depth level for the HTML header element.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links from <code xref="mal.link.topiclinks">mal.link.topiclinks</code>.</p>
+   </item>
+   <item>
+    <title><code>$groups</code></title>
+    <p>The list of link groups for this <sys>links</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$allgroups</code></title>
+    <p>The list of all valid groups for the page or section.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs topic links for a page or section. It does not extract
+ the links itself. They must be passed in with the <code>$links</code> parameter. This
+ template only outputs links which have a group that matches <code>$groups</code>. The
+ <code>$groups</code> parameter is not expected to have the implicit groups <sys>first</sys>,
+ <sys>default</sys>, and <sys>last</sys>. These are added automatically by this template
+ when determining which links to output.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.links.links"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.ul.li.page b/doc/yelp-xsl/C/mal2html.links.ul.li.page
index 145accee..2cbde96c 100644
--- a/doc/yelp-xsl/C/mal2html.links.ul.li.page
+++ b/doc/yelp-xsl/C/mal2html.links.ul.li.page
@@ -1,32 +1,71 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.ul.li" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.10" date="2013-07-30" status="final"/><desc>Output a 
list item with a link.</desc></info><title>mal2html.links.ul.li</title><p>Output a list item with a link.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>link</code></title>
-      <p>The <code>link</code> element from a list of links.</p>
-    </item>
-    <item>
-      <title><code>xref</code></title>
-      <p>An <code>xref</code> string pointing to the target node.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>bold</code></title>
-      <p>Whether to bold the link titles.</p>
-    </item>
-    <item>
-      <title><code>nodesc</code></title>
-      <p>Whether to omit descriptions.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" 
xref="mal2html.links.ul">mal2html.links.ul</code> to output a list item with a link for each target.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.target"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item><item><p><link 
xref="mal.link.content"/></p></item><item><p><link xref="mal2html.editor.badge"/></p></item></list><list 
style="compact"><title>Calls Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list 
style="compact"><title>Calls Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.links.ul.li">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output a list item with a link.</desc>
+  <revision version="3.10" date="2013-07-30" status="final"/>
+ </info>
+ <title>mal2html.links.ul.li</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$link</code></title>
+    <p>The <sys>link</sys> element from a list of links.</p>
+   </item>
+   <item>
+    <title><code>$xref</code></title>
+    <p>An <sys>xref</sys> string pointing to the target node.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$bold</code></title>
+    <p>Whether to bold the link titles.</p>
+   </item>
+   <item>
+    <title><code>$nodesc</code></title>
+    <p>Whether to omit descriptions.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code xref="mal2html.links.ul">mal2html.links.ul</code> to output a list item 
with
+ a link for each target.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.desc"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor.badge"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.links.ul.page b/doc/yelp-xsl/C/mal2html.links.ul.page
index a4f241a7..652aed44 100644
--- a/doc/yelp-xsl/C/mal2html.links.ul.page
+++ b/doc/yelp-xsl/C/mal2html.links.ul.page
@@ -1,29 +1,51 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.links.ul" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-links" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.28" date="2017-08-04" status="final"/><desc>Output 
links in an HTML <code>ul</code> element.</desc></info><title>mal2html.links.ul</title><p>Output links in an 
HTML <code>ul</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links, as from a template in <file xref="mal-link">mal-link</file>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A space-separated list of link roles, used to select the appropriate title.</p>
-    </item>
-    <item>
-      <title><code>bold</code></title>
-      <p>Whether to bold the link titles.</p>
-    </item>
-    <item>
-      <title><code>nodesc</code></title>
-      <p>Whether to omit descriptions.</p>
-    </item>
-  </terms></synopsis>
-  <p>This is a common formatting template used by some <code>links</code> element handlers. It outputs an 
HTML <code>ul</code> element and calls <code style="xslt-template" 
xref="mal2html.links.ul.li">mal2html.links.ul.li</code> on each link to output a list item with a link.</p>
-  <p>This template handles link sorting.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.links.ul.li"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal2html.links.ul">
+ <info>
+  <link type="guide" xref="mal2html-links" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links in an HTML <sys>ul</sys> element.</desc>
+  <revision version="3.28" date="2017-08-04" status="final"/>
+ </info>
+ <title>mal2html.links.ul</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links, as from a template in <code xref="mal-link">mal-link</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A space-separated list of link roles, used to select the appropriate title.</p>
+   </item>
+   <item>
+    <title><code>$bold</code></title>
+    <p>Whether to bold the link titles.</p>
+   </item>
+   <item>
+    <title><code>$nodesc</code></title>
+    <p>Whether to omit descriptions.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This is a common formatting template used by some <sys>links</sys> element handlers.
+ It outputs an HTML <sys>ul</sys> element and calls <code 
xref="mal2html.links.ul.li">mal2html.links.ul.li</code> on each
+ link to output a list item with a link.</p>
+ <p>This template handles link sorting.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.links.ul.li"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.math.mode.page b/doc/yelp-xsl/C/mal2html.math.mode.page
index 577187bc..b97578fb 100644
--- a/doc/yelp-xsl/C/mal2html.math.mode.page
+++ b/doc/yelp-xsl/C/mal2html.math.mode.page
@@ -1,6 +1,16 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.math.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-math" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="3.8" date="2012-11-13" status="final"/><desc>Output MathML 
and handle Mallard extensions.</desc></info><title>mal2html.math.mode</title><p>Output MathML and handle 
Mallard extensions.</p>
-  
-  
-  <p>This mode is used for processing MathML embedded into Mallard documents. For most types of MathML 
content, it simply copies the input directly, except it outputs the MathML in a way that allows the namespace 
to stripped for non-XML output. It checks for Mallard linking using the <code>mal:xref</code> attribute and 
transforms this to a MathML <code>href</code> attribute. It also converts <code>xlink:href</code> attributes 
from MathML 2 to <code>href</code> attributes for MathML 3.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.math.mode">
+ <info>
+  <link type="guide" xref="mal2html-math" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Output MathML and handle Mallard extensions.</desc>
+  <revision version="3.8" date="2012-11-13" status="final"/>
+ </info>
+ <title>mal2html.math.mode</title>
+ <p>This mode is used for processing MathML embedded into Mallard documents. For
+ most types of MathML content, it simply copies the input directly, except it
+ outputs the MathML in a way that allows the namespace to stripped for non-XML
+ output. It checks for Mallard linking using the <sys>mal:xref</sys> attribute and
+ transforms this to a MathML <sys>href</sys> attribute. It also converts <sys>xlink:href</sys>
+ attributes from MathML 2 to <sys>href</sys> attributes for MathML 3.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.media.audio.page b/doc/yelp-xsl/C/mal2html.media.audio.page
index b9b1e1c3..85348baf 100644
--- a/doc/yelp-xsl/C/mal2html.media.audio.page
+++ b/doc/yelp-xsl/C/mal2html.media.audio.page
@@ -1,16 +1,45 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.media.audio" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-media" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output an 
<code>audio</code> element for an audio object.</desc></info><title>mal2html.media.audio</title><p>Output an 
<code>audio</code> element for an audio object.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The Mallard <code>media</code> element.</p>
-    </item>
-    <item>
-      <title><code>inline</code></title>
-      <p>Whether <code style="xslt-param">node</code> is inline.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>audio</code> element for a Mallard <code>media</code> element with 
the <code>type</code> attribute set to <code>"audio"</code>. It converts any fallback content in the source 
to the <code>audio</code> element's fallback content. If <code style="xslt-param">inline</code> is 
<code>false</code>, this template will process TTML child content.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.media.controls"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item><item><p><link 
xref="mal2html.ttml.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.media.audio">
+ <info>
+  <link type="guide" xref="mal2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output an <sys>audio</sys> element for an audio object.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.media.audio</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The Mallard <sys>media</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$inline</code></title>
+    <p>Whether <code>$node</code> is inline.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>audio</sys> element for a Mallard <sys>media</sys> element
+ with the <sys>type</sys> attribute set to <sys>"audio"</sys>. It converts any fallback content
+ in the source to the <sys>audio</sys> element's fallback content. If <code>$inline</code> is
+ <sys>false</sys>, this template will process TTML child content.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ttml.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.media.image.page b/doc/yelp-xsl/C/mal2html.media.image.page
index e825d8f8..d43ad3fb 100644
--- a/doc/yelp-xsl/C/mal2html.media.image.page
+++ b/doc/yelp-xsl/C/mal2html.media.image.page
@@ -1,16 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.media.image" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-media" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output an 
<code>img</code> element for an image.</desc></info><title>mal2html.media.image</title><p>Output an 
<code>img</code> element for an image.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The Mallard <code>media</code> element.</p>
-    </item>
-    <item>
-      <title><code>inline</code></title>
-      <p>Whether <code style="xslt-param">node</code> is inline.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>img</code> element for a Mallard <code>media</code> element with 
the <code>type</code> attribute set to <code>"image"</code> (or with no <code>type</code> attribute). If 
<code style="xslt-param">node</code> has fallback content, it is used for the <code>alt</code> attribute.</p>
-<list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.media.image">
+ <info>
+  <link type="guide" xref="mal2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output an <sys>img</sys> element for an image.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.media.image</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The Mallard <sys>media</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$inline</code></title>
+    <p>Whether <code>$node</code> is inline.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>img</sys> element for a Mallard <sys>media</sys> element
+ with the <sys>type</sys> attribute set to <sys>"image"</sys> (or with no <sys>type</sys> attribute).
+ If <code>$node</code> has fallback content, it is used for the <sys>alt</sys> attribute.</p>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.media.video.page b/doc/yelp-xsl/C/mal2html.media.video.page
index 1b84b231..e6492f6c 100644
--- a/doc/yelp-xsl/C/mal2html.media.video.page
+++ b/doc/yelp-xsl/C/mal2html.media.video.page
@@ -1,17 +1,48 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.media.video" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-media" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output a 
<code>video</code> element for a video.</desc></info><title>mal2html.media.video</title><p>Output a 
<code>video</code> element for a video.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The Mallard <code>media</code> element.</p>
-    </item>
-    <item>
-      <title><code>inline</code></title>
-      <p>Whether <code style="xslt-param">node</code> is inline.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>video</code> element for a Mallard <code>media</code> element with 
the <code>type</code> attribute set to <code>"video"</code>. It converts any fallback content in the source 
to the <code>video</code> element's fallback content. If <code style="xslt-param">inline</code> is 
<code>false</code>, this template will process TTML child content.</p>
-  <p>If <code style="xslt-param">node</code> has a child image <code>media</code> element with the 
<code>style</code> attribute set to <code>"poster"</code>, that image will be used for the 
<code>poster</code> attribute on the HTML <code>video</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.media.controls"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item><item><p><link xref="mal2html.inline.mode"/></p></item><item><p><link 
xref="mal2html.ttml.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.media.video">
+ <info>
+  <link type="guide" xref="mal2html-media" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output a <sys>video</sys> element for a video.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.media.video</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The Mallard <sys>media</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$inline</code></title>
+    <p>Whether <code>$node</code> is inline.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>video</sys> element for a Mallard <sys>media</sys> element
+ with the <sys>type</sys> attribute set to <sys>"video"</sys>. It converts any fallback content
+ in the source to the <sys>video</sys> element's fallback content. If <code>$inline</code> is
+ <sys>false</sys>, this template will process TTML child content.</p>
+ <p>If <code>$node</code> has a child image <sys>media</sys> element with the <sys>style</sys> attribute set
+ to <sys>"poster"</sys>, that image will be used for the <sys>poster</sys> attribute on the
+ HTML <sys>video</sys> element.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.media.controls"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ttml.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page b/doc/yelp-xsl/C/mal2html.page
index e82956db..ec055214 100644
--- a/doc/yelp-xsl/C/mal2html.page
+++ b/doc/yelp-xsl/C/mal2html.page
@@ -1,2 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="mal2html"/><revision version="3.8" date="2012-11-05" 
status="final"/><link type="xslt-defines-param" xref="html.xhtml"/><link type="xslt-defines-param" 
xref="mal.if.target"/></info><title>Mallard to HTML</title><p>Transform Mallard to HTML.</p><p>This top-level 
stylesheet includes all the necessary stylesheets to transform Mallard documents into HTML. It imports <file 
xref="mal2xhtml">mal2xhtml</file>, overrides parameters, and sets a namespace alias to output non-XML HTML. 
In particular, this stylesheet sets <code style="xslt-param" xref="html.xhtml">html.xhtml</code> to 
<code>false</code> and <code style="xslt-param" xref="mal.if.target">mal.if.target</code> to 
<code>'target:html'</code>.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" style="
 linklist
 "><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2html">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2html"/>
+  <link type="topic" xref="l10n" group="imports"/>
+  <link type="topic" xref="color" group="imports"/>
+  <link type="topic" xref="icons" group="imports"/>
+  <link type="topic" xref="html" group="imports"/>
+  <link type="topic" xref="ttml" group="imports"/>
+  <link type="topic" xref="utils" group="imports"/>
+  <link type="topic" xref="mal-gloss" group="imports"/>
+  <link type="topic" xref="mal-if" group="imports"/>
+  <link type="topic" xref="mal-link" group="imports"/>
+  <link type="topic" xref="mal2html-api" group="includes"/>
+  <link type="topic" xref="mal2html-block" group="includes"/>
+  <link type="topic" xref="mal2html-gloss" group="includes"/>
+  <link type="topic" xref="mal2html-inline" group="includes"/>
+  <link type="topic" xref="mal2html-links" group="includes"/>
+  <link type="topic" xref="mal2html-list" group="includes"/>
+  <link type="topic" xref="mal2html-math" group="includes"/>
+  <link type="topic" xref="mal2html-media" group="includes"/>
+  <link type="topic" xref="mal2html-page" group="includes"/>
+  <link type="topic" xref="mal2html-svg" group="includes"/>
+  <link type="topic" xref="mal2html-table" group="includes"/>
+  <link type="topic" xref="mal2html-ui" group="includes"/>
+  <desc>Transform Mallard to HTML.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>Mallard to HTML</title>
+ <p>This top-level stylesheet includes all the necessary stylesheets to transform
+ Mallard documents into HTML. It imports <code xref="mal2xhtml">mal2xhtml</code>, overrides parameters, and
+ sets a namespace alias to output non-XML HTML. In particular, this stylesheet
+ sets <code xref="html.xhtml">html.xhtml</code> to <sys>false</sys> and <code 
xref="mal.if.target">mal.if.target</code> to <sys>'target:html'</sys>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.about.page b/doc/yelp-xsl/C/mal2html.page.about.page
index e42d34cb..366c8f6e 100644
--- a/doc/yelp-xsl/C/mal2html.page.about.page
+++ b/doc/yelp-xsl/C/mal2html.page.about.page
@@ -1,12 +1,82 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.about" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Output the 
copyrights, credits, and license information at the bottom of a 
page.</desc></info><title>mal2html.page.about</title><p>Output the copyrights, credits, and license 
information at the bottom of a page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The top-level <code>page</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs copyright information, credits, and license information for the page. By default 
it is called by the <code style="xslt-mode" xref="html.footer.mode">html.footer.mode</code> implementation 
for the <code>page</code> element. Information is extracted from the <code>info</code> element of <code 
style="xslt-param">node</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.gettext"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.block.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.about">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output the copyrights, credits, and license information at the bottom of a page.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.page.about</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The top-level <sys>page</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs copyright information, credits, and license information for
+ the page. By default it is called by the <code xref="html.footer.mode">html.footer.mode</code> 
implementation for
+ the <sys>page</sys> element. Information is extracted from the <sys>info</sys> element of 
<code>$node</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.gettext"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.block.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.linktrails.empty.page 
b/doc/yelp-xsl/C/mal2html.page.linktrails.empty.page
index 07e4a8e4..69c3e0b5 100644
--- a/doc/yelp-xsl/C/mal2html.page.linktrails.empty.page
+++ b/doc/yelp-xsl/C/mal2html.page.linktrails.empty.page
@@ -1,14 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.linktrails.empty" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><link type="guide" xref="stubs" group="mal2html"/><revision version="3.20" 
date="2015-09-17" status="final"/><desc>Deprecated stub to output something when no link trails are 
present.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal2html.page.linktrails.empty</title><p>Deprecated
 stub to output something when no link trails are present.</p><note><p>This template is a stub. 
Customizations may override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The top-level <code>page</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is deprecated. Use <code style="xslt-template" 
xref="html.linktrails.empty">html.linktrails.empty</code> instead. By default, this template calls <code 
style="xslt-template" xref="html.linktrails.empty">html.linktrails.empty</code>, passing the <code 
style="xslt-param">node</code> parameter.</p>
-  <p>This template is a stub. It is called by <code style="xslt-param">mal2html.page.linktrails</code> when 
there are no link trails to output. Some customizations prepend extra site links to link trails. This 
template allows them to output those links even when no link trails would otherwise be present.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.linktrails.empty"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.linktrails.empty">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Deprecated stub to output something when no link trails are present.</desc>
+ </info>
+ <title>mal2html.page.linktrails.empty</title>
+ <p>:Stub: true
+ @revision[version=3.20 date=2015-09-17 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The top-level <sys>page</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is deprecated. Use <code xref="html.linktrails.empty">html.linktrails.empty</code> 
instead. By default,
+ this template calls <code xref="html.linktrails.empty">html.linktrails.empty</code>, passing the 
<code>$node</code> parameter.</p>
+ <p>This template is a stub. It is called by <code>$mal2html.page.linktrails</code> when there
+ are no link trails to output. Some customizations prepend extra site links to
+ link trails. This template allows them to output those links even when no link
+ trails would otherwise be present.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.linktrails.empty"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.linktrails.link.page 
b/doc/yelp-xsl/C/mal2html.page.linktrails.link.page
index 4ed20254..36179db3 100644
--- a/doc/yelp-xsl/C/mal2html.page.linktrails.link.page
+++ b/doc/yelp-xsl/C/mal2html.page.linktrails.link.page
@@ -1,17 +1,96 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.linktrails.link" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2011-11-19" status="final"/><desc>Output a 
link and the following links in a link 
trail.</desc></info><title>mal2html.page.linktrails.link</title><p>Output a link and the following links in a 
link trail.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>link</code> element from <code style="xslt-template" 
xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
-    </item>
-    <item>
-      <title><code>direction</code></title>
-      <p>The text directionality.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is called by <code style="xslt-template" 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code> to output the links in a trail. 
Link trails returned by <code style="xslt-template" xref="mal.link.linktrails">mal.link.linktrails</code> are 
returned as nested <code>link</code> elements. This template takes one of those elements, outputs an HTML 
<code>a</code> element, then calls itself recursively on the child <code>link</code> element, if it 
exists.</p>
-  <p>The <code style="xslt-param">direction</code> parameter specifies the current text directionality. If 
not provided, it is computed automatically with <code style="xslt-template" 
xref="l10n.direction">l10n.direction</code>. It determines the separators used between links.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item><item><p><link xref="mal.link.target"/></p></item><item><p><link 
xref="mal.link.tooltip"/></p></item><item><p><link xref="mal.link.content"/></p></item><item><p><link 
xref="mal2html.page.linktrails.link"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.linktrails.link">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output a link and the following links in a link trail.</desc>
+  <revision version="3.4" date="2011-11-19" status="final"/>
+ </info>
+ <title>mal2html.page.linktrails.link</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>link</sys> element from <code xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
+   </item>
+   <item>
+    <title><code>$direction</code></title>
+    <p>The text directionality.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is called by <code 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code> to output the links
+ in a trail. Link trails returned by <code xref="mal.link.linktrails">mal.link.linktrails</code> are 
returned as nested
+ <sys>link</sys> elements. This template takes one of those elements, outputs an HTML <sys>a</sys>
+ element, then calls itself recursively on the child <sys>link</sys> element, if it exists.</p>
+ <p>The <code>$direction</code> parameter specifies the current text directionality. If not
+ provided, it is computed automatically with <code xref="l10n.direction">l10n.direction</code>. It 
determines the
+ separators used between links.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.page.linktrails.link"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.linktrails.page b/doc/yelp-xsl/C/mal2html.page.linktrails.page
index 8647dc0c..75974688 100644
--- a/doc/yelp-xsl/C/mal2html.page.linktrails.page
+++ b/doc/yelp-xsl/C/mal2html.page.linktrails.page
@@ -1,12 +1,83 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.linktrails" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2011-11-19" status="final"/><desc>Ouput 
trails of guide links for a page.</desc></info><title>mal2html.page.linktrails</title><p>Ouput trails of 
guide links for a page.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The top-level <code>page</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs all of the link trails for the page <code style="xslt-param">node</code>. It gets 
the trails from <code style="xslt-param">mal.link.linktrails</code>. If the result is non-empty, it outputs a 
wrapper <code>div</code>, sorts the trails, and calls <code style="xslt-template" 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code> on each one. Otherwise, it calls 
the stub template <code style="xslt-template" 
xref="mal2html.page.linktrails.empty">mal2html.page.linktrails.empty</code>.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.linktrails"/></p></item><item><p><link 
xref="mal2html.page.linktrails.trail"/></p></item><item><p><link 
xref="mal2html.page.linktrails.empty"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.linktrails">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Ouput trails of guide links for a page.</desc>
+  <revision version="3.4" date="2011-11-19" status="final"/>
+ </info>
+ <title>mal2html.page.linktrails</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The top-level <sys>page</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs all of the link trails for the page <code>$node</code>. It gets the
+ trails from <code>$mal.link.linktrails</code>. If the result is non-empty, it outputs a
+ wrapper <sys>div</sys>, sorts the trails, and calls <code 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code>
+ on each one. Otherwise, it calls the stub template <code 
xref="mal2html.page.linktrails.empty">mal2html.page.linktrails.empty</code>.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.linktrails"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.page.linktrails.empty"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.page.linktrails.trail"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.linktrails.trail.page 
b/doc/yelp-xsl/C/mal2html.page.linktrails.trail.page
index 2043058d..d9ff34df 100644
--- a/doc/yelp-xsl/C/mal2html.page.linktrails.trail.page
+++ b/doc/yelp-xsl/C/mal2html.page.linktrails.trail.page
@@ -1,12 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.linktrails.trail" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.20" date="2015-09-19" status="final"/><desc>Output 
one trail of guide links.</desc></info><title>mal2html.page.linktrails.trail</title><p>Output one trail of 
guide links.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>link</code> element from <code style="xslt-template" 
xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>div</code> element containing all the links in a single link trail. 
It calls <code style="xslt-template" xref="html.linktrails.prefix">html.linktrails.prefix</code> (by way of  
<code style="xslt-template" 
xref="mal2html.page.linktrails.trail.prefix">mal2html.page.linktrails.trail.prefix</code>) to output a custom 
boilerplate prefix, then calls <code style="xslt-template" 
xref="mal2html.page.linktrails.link">mal2html.page.linktrails.link</code> to output the actual links.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.page.linktrails.trail.prefix"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.linktrails.trail">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output one trail of guide links.</desc>
+  <revision version="3.20" date="2015-09-19" status="final"/>
+ </info>
+ <title>mal2html.page.linktrails.trail</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>link</sys> element from <code xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>div</sys> element containing all the links in a
+ single link trail. It calls <code xref="html.linktrails.prefix">html.linktrails.prefix</code> (by way of 
+ <code xref="mal2html.page.linktrails.trail.prefix">mal2html.page.linktrails.trail.prefix</code>) to output 
a custom boilerplate prefix,
+ then calls <code xref="mal2html.page.linktrails.link">mal2html.page.linktrails.link</code> to output the 
actual links.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.page.linktrails.link"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.page.linktrails.trail.prefix"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.page.linktrails.trail.prefix.page 
b/doc/yelp-xsl/C/mal2html.page.linktrails.trail.prefix.page
index cc38348a..24f0f055 100644
--- a/doc/yelp-xsl/C/mal2html.page.linktrails.trail.prefix.page
+++ b/doc/yelp-xsl/C/mal2html.page.linktrails.trail.prefix.page
@@ -1,14 +1,80 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.page.linktrails.trail.prefix" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><link type="guide" xref="stubs" group="mal2html"/><revision version="3.20" 
date="2015-09-17" status="final"/><desc>Deprecated stub to output extra content before a link 
trail.</desc><stub 
xmlns="http://projects.gnome.org/yelp/xsldoc/"/></info><title>mal2html.page.linktrails.trail.prefix</title><p>Deprecated
 stub to output extra content before a link trail.</p><note><p>This template is a stub. Customizations may 
override it for
-            additional functionality.</p></note>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>link</code> element from <code style="xslt-template" 
xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template is deprecated. Use <code style="xslt-template" 
xref="html.linktrails.prefix">html.linktrails.prefix</code> instead. By default, this template calls <code 
style="xslt-template" xref="html.linktrails.prefix">html.linktrails.prefix</code>, passing the <code 
style="xslt-param">node</code> parameter.</p>
-  <p>This template is a stub. It is called by <code style="xslt-template" 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code> for each link trail before the 
normal links are output with <code style="xslt-template" 
xref="mal2html.page.linktrails.link">mal2html.page.linktrails.link</code>. This template is useful for adding 
extra site links at the beginning of each link trail.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.linktrails.prefix"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.page.linktrails.trail.prefix">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Deprecated stub to output extra content before a link trail.</desc>
+ </info>
+ <title>mal2html.page.linktrails.trail.prefix</title>
+ <p>:Stub: true
+ @revision[version=3.20 date=2015-09-17 status=final]</p>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>link</sys> element from <code xref="mal.link.linktrails">mal.link.linktrails</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template is deprecated. Use <code xref="html.linktrails.prefix">html.linktrails.prefix</code> 
instead. By default,
+ this template calls <code xref="html.linktrails.prefix">html.linktrails.prefix</code>, passing the 
<code>$node</code> parameter.</p>
+ <p>This template is a stub. It is called by <code 
xref="mal2html.page.linktrails.trail">mal2html.page.linktrails.trail</code> for
+ each link trail before the normal links are output with
+ <code xref="mal2html.page.linktrails.link">mal2html.page.linktrails.link</code>. This template is useful 
for adding extra site
+ links at the beginning of each link trail.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.linktrails.prefix"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.pre.page b/doc/yelp-xsl/C/mal2html.pre.page
index bfac9b3a..2c70b3df 100644
--- a/doc/yelp-xsl/C/mal2html.pre.page
+++ b/doc/yelp-xsl/C/mal2html.pre.page
@@ -1,13 +1,53 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.pre" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-block" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.12" date="2013-11-02" status="final"/><desc>Output an 
HTML <code>pre</code> element.</desc></info><title>mal2html.pre</title><p>Output an HTML <code>pre</code> 
element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source element to output a <code>pre</code> for.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>pre</code> element along with a wrapper <code>div</code> element 
for CSS styling. It should be called for verbatim block elements. It will automatically strip leading and 
trailing newlines using <code style="xslt-template" 
xref="utils.strip_newlines">utils.strip_newlines</code>.</p>
-  <p>If <code style="xslt-param" xref="html.syntax.highlight">html.syntax.highlight</code> is 
<code>true</code>, this template automatically outputs syntax highlighting support based on the 
<code>mime</code> attribute of <code style="xslt-param">node</code>, using <code style="xslt-template" 
xref="html.syntax.class">html.syntax.class</code> to determine the correct highlighter.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.if.test"/></p></item><item><p><link xref="html.class.attr"/></p></item><item><p><link 
xref="utils.linenumbering"/></p></item><item><p><link xref="html.syntax.class"/></p></item><item><p><link 
xref="utils.strip_newlines"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.mode"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.syntax.highlight"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal2html.pre">
+ <info>
+  <link type="guide" xref="mal2html-block" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output an HTML <sys>pre</sys> element.</desc>
+  <revision version="3.12" date="2013-11-02" status="final"/>
+ </info>
+ <title>mal2html.pre</title>
+ <p><code>$node</code>: The source element to output a <sys>pre</sys> for.</p>
+ <p>This template outputs an HTML <sys>pre</sys> element along with a wrapper <sys>div</sys> element
+ for CSS styling. It should be called for verbatim block elements. It will
+ automatically strip leading and trailing newlines using <code 
xref="utils.strip_newlines">utils.strip_newlines</code>.</p>
+ <p>If <code xref="html.syntax.highlight">html.syntax.highlight</code> is <sys>true</sys>, this template 
automatically outputs
+ syntax highlighting support based on the <sys>mime</sys> attribute of <code>$node</code>, using
+ <code xref="html.syntax.class">html.syntax.class</code> to determine the correct highlighter.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.syntax.highlight"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="html.syntax.class"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.if.test"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.linenumbering"/></p>
+  </item>
+  <item>
+   <p><link xref="utils.strip_newlines"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.section.page b/doc/yelp-xsl/C/mal2html.section.page
index 5ae47929..d3e4c5cf 100644
--- a/doc/yelp-xsl/C/mal2html.section.page
+++ b/doc/yelp-xsl/C/mal2html.section.page
@@ -1,12 +1,78 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.section" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-page" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2012-01-26" status="final"/><desc>Output 
HTML for a Mallard <code>section</code> element.</desc></info><title>mal2html.section</title><p>Output HTML 
for a Mallard <code>section</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>section</code> element.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs HTML for a <code>section</code> element. It it called by the templates that 
handle <code>page</code> and <code>section</code> elements.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="mal2html.ui.expander.data"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal2html.section">
+ <info>
+  <link type="guide" xref="mal2html-page" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output HTML for a Mallard <sys>section</sys> element.</desc>
+  <revision version="3.4" date="2012-01-26" status="final"/>
+ </info>
+ <title>mal2html.section</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>section</sys> element.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs HTML for a <sys>section</sys> element. It it called by the
+ templates that handle <sys>page</sys> and <sys>section</sys> elements.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="color.bg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.bg.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="color.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.blue"/></p>
+  </item>
+  <item>
+   <p><link xref="color.fg.dark"/></p>
+  </item>
+  <item>
+   <p><link xref="color.gray"/></p>
+  </item>
+  <item>
+   <p><link xref="color.red"/></p>
+  </item>
+  <item>
+   <p><link xref="color.yellow"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.default_root"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.editor_mode"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.expander.data"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.span.page b/doc/yelp-xsl/C/mal2html.span.page
index 38d6e165..38709c72 100644
--- a/doc/yelp-xsl/C/mal2html.span.page
+++ b/doc/yelp-xsl/C/mal2html.span.page
@@ -1,17 +1,50 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.span" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-inline" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.10" date="2013-07-10" status="final"/><desc>Output an 
HTML <code>span</code> element.</desc></info><title>mal2html.span</title><p>Output an HTML <code>span</code> 
element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source element to output a <code>span</code> for.</p>
-    </item>
-    <item>
-      <title><code>class</code></title>
-      <p>An additional string to prepend to the <code>class</code> attribute.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>span</code> element for a source element. It creates a 
<code>class</code> attribute automatically by passing the local name of <code style="xslt-param">node</code> 
and the <code style="xslt-param">class</code> parameter to <code style="xslt-template" 
xref="html.class.attr">html.class.attr</code>. To output the contents of <code 
style="xslt-param">node</code>, it applies the mode <code style="xslt-mode" 
xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code> to <code 
style="xslt-param">node</code>.</p>
-  <p>This template automatically handles ubiquitous linking if <code style="xslt-param">node</code> contains 
an <code>xref</code> or <code>href</code> attribute.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="html.class.attr"/></p></item><item><p><link xref="html.lang.attrs"/></p></item><item><p><link 
xref="mal.link.target"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.content.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="mal2html.span">
+ <info>
+  <link type="guide" xref="mal2html-inline" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output an HTML <sys>span</sys> element.</desc>
+  <revision version="3.10" date="2013-07-10" status="final"/>
+ </info>
+ <title>mal2html.span</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The source element to output a <sys>span</sys> for.</p>
+   </item>
+   <item>
+    <title><code>$class</code></title>
+    <p>An additional string to prepend to the <sys>class</sys> attribute.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>span</sys> element for a source element. It creates
+ a <sys>class</sys> attribute automatically by passing the local name of <code>$node</code> and the
+ <code>$class</code> parameter to <code xref="html.class.attr">html.class.attr</code>. To output the 
contents of <code>$node</code>, it
+ applies the mode <code xref="mal2html.inline.content.mode">mal2html.inline.content.mode</code> to 
<code>$node</code>.</p>
+ <p>This template automatically handles ubiquitous linking if <code>$node</code> contains
+ an <sys>xref</sys> or <sys>href</sys> attribute.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="html.class.attr"/></p>
+  </item>
+  <item>
+   <p><link xref="html.lang.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.content.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.svg.mode.page b/doc/yelp-xsl/C/mal2html.svg.mode.page
index 8b30c9f9..0f08b671 100644
--- a/doc/yelp-xsl/C/mal2html.svg.mode.page
+++ b/doc/yelp-xsl/C/mal2html.svg.mode.page
@@ -1,6 +1,15 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.svg.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-svg" group="modes"/><link type="guide" xref="modes" 
group="mal2html"/><revision version="3.18" date="2015-05-04" status="final"/><desc>Output SVG and handle 
Mallard extensions.</desc></info><title>mal2html.svg.mode</title><p>Output SVG and handle Mallard 
extensions.</p>
-  
-  
-  <p>This mode is used for processing SVG embedded into Mallard documents. For most types of SVG content, it 
simply copies the input directly, except it outputs the SVG in a way that allows the namespace to stripped 
for non-XML output. It checks for Mallard linking using the <code>mal:xref</code> attribute and transforms 
this to an XLink <code>xlink:href</code> attribute.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.svg.mode">
+ <info>
+  <link type="guide" xref="mal2html-svg" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Output SVG and handle Mallard extensions.</desc>
+  <revision version="3.18" date="2015-05-04" status="final"/>
+ </info>
+ <title>mal2html.svg.mode</title>
+ <p>This mode is used for processing SVG embedded into Mallard documents. For most
+ types of SVG content, it simply copies the input directly, except it outputs
+ the SVG in a way that allows the namespace to stripped for non-XML output. It
+ checks for Mallard linking using the <sys>mal:xref</sys> attribute and transforms this
+ to an XLink <sys>xlink:href</sys> attribute.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.title.mode.page b/doc/yelp-xsl/C/mal2html.title.mode.page
index 1c894749..00bad3f0 100644
--- a/doc/yelp-xsl/C/mal2html.title.mode.page
+++ b/doc/yelp-xsl/C/mal2html.title.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.title.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-page" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="3.10" date="2013-07-10" status="final"/><desc>Output 
headings for titles and subtitles.</desc></info><title>mal2html.title.mode</title><p>Output headings for 
titles and subtitles.</p>
-  
-  
-  <p>This template is called on <code>title</code> and <code>subtitle</code> elements that appear as direct 
child content of <code>page</code> or <code>section</code> elements. Normal block titles are processed in 
<code style="xslt-mode" xref="mal2html.block.mode">mal2html.block.mode</code>.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.title.mode">
+ <info>
+  <link type="guide" xref="mal2html-page" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Output headings for titles and subtitles.</desc>
+  <revision version="3.10" date="2013-07-10" status="final"/>
+ </info>
+ <title>mal2html.title.mode</title>
+ <p>This template is called on <sys>title</sys> and <sys>subtitle</sys> elements that appear as
+ direct child content of <sys>page</sys> or <sys>section</sys> elements. Normal block titles
+ are processed in <code xref="mal2html.block.mode">mal2html.block.mode</code>.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.tree.mode.page b/doc/yelp-xsl/C/mal2html.tree.mode.page
index 754cebbe..0ec9a90f 100644
--- a/doc/yelp-xsl/C/mal2html.tree.mode.page
+++ b/doc/yelp-xsl/C/mal2html.tree.mode.page
@@ -1,16 +1,28 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.tree.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-list" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="1.0" date="2010-06-04" status="final"/><desc>Process an 
<code>item</code> element inside a 
<code>tree</code>.</desc></info><title>mal2html.tree.mode</title><p>Process an <code>item</code> element 
inside a <code>tree</code>.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>lines</code></title>
-      <p>Whether to draw lines indicating hierarchy.</p>
-    </item>
-    <item>
-      <title><code>prefix</code></title>
-      <p>The line markers used by the parent <code>item</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This mode is used for processing <code>item</code> elements in <code>tree</code> elements. It is 
applied by the template for <code>tree</code> and recursively calls itself. If the parent <code>tree</code> 
has the style hint <code>"lines"</code>, the <code style="xslt-param">lines</code> parameter will be 
<code>true</code>. In this case, this template calculates a prefix based on its position and neighboring 
<code>item</code> elements, and passes that prefix to child elements.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.tree.mode">
+ <info>
+  <link type="guide" xref="mal2html-list" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Process an <sys>item</sys> element inside a <sys>tree</sys>.</desc>
+  <revision version="1.0" date="2010-06-04" status="final"/>
+ </info>
+ <title>mal2html.tree.mode</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$lines</code></title>
+    <p>Whether to draw lines indicating hierarchy.</p>
+   </item>
+   <item>
+    <title><code>$prefix</code></title>
+    <p>The line markers used by the parent <sys>item</sys>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This mode is used for processing <sys>item</sys> elements in <sys>tree</sys> elements. It is
+ applied by the template for <sys>tree</sys> and recursively calls itself. If the parent
+ <sys>tree</sys> has the style hint <sys>"lines"</sys>, the <code>$lines</code> parameter will be 
<sys>true</sys>.
+ In this case, this template calculates a prefix based on its position and
+ neighboring <sys>item</sys> elements, and passes that prefix to child elements.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.ttml.mode.page b/doc/yelp-xsl/C/mal2html.ttml.mode.page
index d1561edc..8ac01266 100644
--- a/doc/yelp-xsl/C/mal2html.ttml.mode.page
+++ b/doc/yelp-xsl/C/mal2html.ttml.mode.page
@@ -1,6 +1,13 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ttml.mode" type="topic" 
style="xslt-mode"><info><link type="guide" xref="mal2html-media" group="modes"/><link type="guide" 
xref="modes" group="mal2html"/><revision version="3.8" date="2012-11-05" status="final"/><desc>Process TTML 
subtitles in a Mallard <code>media</code> element.</desc></info><title>mal2html.ttml.mode</title><p>Process 
TTML subtitles in a Mallard <code>media</code> element.</p>
-  
-  
-  <p>This mode is applied to TTML elements inside block audio and video elements. It outputs HTML elements 
that are hidden by default and shown dynamically as the parent media element is played.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-mode" id="mal2html.ttml.mode">
+ <info>
+  <link type="guide" xref="mal2html-media" group="modes"/>
+  <link type="guide" xref="modes" group="mal2html"/>
+  <desc>Process TTML subtitles in a Mallard <sys>media</sys> element.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>mal2html.ttml.mode</title>
+ <p>This mode is applied to TTML elements inside block audio and video elements.
+ It outputs HTML elements that are hidden by default and shown dynamically as
+ the parent media element is played.</p>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.ui.expander.data.page b/doc/yelp-xsl/C/mal2html.ui.expander.data.page
index 8a1ad7ae..44cb9224 100644
--- a/doc/yelp-xsl/C/mal2html.ui.expander.data.page
+++ b/doc/yelp-xsl/C/mal2html.ui.expander.data.page
@@ -1,17 +1,49 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ui.expander.data" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-ui" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.4" date="2012-02-25" status="final"/><desc>Output 
data for an expander.</desc></info><title>mal2html.ui.expander.data</title><p>Output data for an expander.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The source element to output data for.</p>
-    </item>
-    <item>
-      <title><code>expander</code></title>
-      <p>Whether <code style="xslt-param">node</code> is actually an expander.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs an HTML <code>div</code> element with the <code>class</code> attribute set to 
<code>"yelp-data yelp-data-ui-expander"</code>. All <code>yelp-data</code> elements are hidden by the CSS. 
The div contains information about text directionality, the default expanded state, and optionally additional 
titles for the expanded and collapsed states.</p>
-  <p>The expander information is only output if the <code style="xslt-param">expander</code> parameter is 
<code>true</code>. This parameter can be calculated automatically, but it will give false negatives for 
blocks that produce automatic titles.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="l10n.direction"/></p></item></list><list style="compact"><title>Calls Modes</title><item><p><link 
xref="mal2html.inline.mode"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.ui.expander.data">
+ <info>
+  <link type="guide" xref="mal2html-ui" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output data for an expander.</desc>
+  <revision version="3.4" date="2012-02-25" status="final"/>
+ </info>
+ <title>mal2html.ui.expander.data</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The source element to output data for.</p>
+   </item>
+   <item>
+    <title><code>$expander</code></title>
+    <p>Whether <code>$node</code> is actually an expander.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs an HTML <sys>div</sys> element with the <sys>class</sys> attribute set to
+ <sys>"yelp-data yelp-data-ui-expander"</sys>. All <sys>yelp-data</sys> elements are hidden by
+ the CSS. The div contains information about text directionality, the default
+ expanded state, and optionally additional titles for the expanded and collapsed
+ states.</p>
+ <p>The expander information is only output if the <code>$expander</code> parameter is <sys>true</sys>.
+ This parameter can be calculated automatically, but it will give false negatives
+ for blocks that produce automatic titles.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="l10n.direction"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="mal2html.inline.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.ui.links.img.attrs.page b/doc/yelp-xsl/C/mal2html.ui.links.img.attrs.page
index 303004e5..364f3ebe 100644
--- a/doc/yelp-xsl/C/mal2html.ui.links.img.attrs.page
+++ b/doc/yelp-xsl/C/mal2html.ui.links.img.attrs.page
@@ -1,24 +1,41 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ui.links.img.attrs" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-ui" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.28" date="2017-08-11" status="final"/><desc>Output 
the <code>width</code> and <code>height</code> attributes for a thumbnail 
image.</desc></info><title>mal2html.ui.links.img.attrs</title><p>Output the <code>width</code> and 
<code>height</code> attributes for a thumbnail image.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>thumb</code></title>
-      <p>A <code>uix:thumb</code> element.</p>
-    </item>
-    <item>
-      <title><code>width</code></title>
-      <p>The width to fit thumbnails into.</p>
-    </item>
-    <item>
-      <title><code>height</code></title>
-      <p>The height to fit thumbnails into.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs <code>width</code> and <code>height</code> attributes for the HTML 
<code>img</code> element created from <code style="xslt-param">thumb</code>, based on the 
<code>uix:overflow</code> attribute on <code style="xslt-param">node</code>. The <code 
style="xslt-param">width</code> and <code style="xslt-param">height</code> parameters can be computed 
automatically from the <code style="xslt-param">node</code> element.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.ui.links.img.attrs">
+ <info>
+  <link type="guide" xref="mal2html-ui" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output the <sys>width</sys> and <sys>height</sys> attributes for a thumbnail image.</desc>
+  <revision version="3.28" date="2017-08-11" status="final"/>
+ </info>
+ <title>mal2html.ui.links.img.attrs</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$thumb</code></title>
+    <p>A <sys>uix:thumb</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$width</code></title>
+    <p>The width to fit thumbnails into.</p>
+   </item>
+   <item>
+    <title><code>$height</code></title>
+    <p>The height to fit thumbnails into.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs <sys>width</sys> and <sys>height</sys> attributes for the HTML <sys>img</sys>
+ element created from <code>$thumb</code>, based on the <sys>uix:overflow</sys> attribute on 
<code>$node</code>.
+ The <code>$width</code> and <code>$height</code> parameters can be computed automatically from the
+ <code>$node</code> element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.ui.links.img.page b/doc/yelp-xsl/C/mal2html.ui.links.img.page
index eede7668..6b39e080 100644
--- a/doc/yelp-xsl/C/mal2html.ui.links.img.page
+++ b/doc/yelp-xsl/C/mal2html.ui.links.img.page
@@ -1,31 +1,64 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ui.links.img" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-ui" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.28" date="2017-08-11" status="final"/><desc>Output an 
image for a link using UI thumbnails.</desc></info><title>mal2html.ui.links.img</title><p>Output an image for 
a link using UI thumbnails.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>thumbs</code></title>
-      <p>A list of candidate <code>uix:thumb</code> elements.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A link role, used to select the appropriate thumbnail.</p>
-    </item>
-    <item>
-      <title><code>width</code></title>
-      <p>The width to fit thumbnails into.</p>
-    </item>
-    <item>
-      <title><code>height</code></title>
-      <p>The height to fit thumbnails into.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template selects the best-fit thumbnail from <code style="xslt-param">thumbs</code>, based on how 
well the aspect ratio and dimensions of each image matches the <code style="xslt-param">width</code> and 
<code style="xslt-param">height</code> parameters. It outputs an HTML <code>img</code> element for the 
best-fit thumbnail. It calls <code style="xslt-param">mal2thml.ui.links.img.src</code> to output the 
<code>src</code> attribute, and calls <code style="xslt-param">mal2html.ui.links.img.attrs</code> to output 
<code>width</code> and <code>height</code> attributes.</p>
-  <p>Before checking for a best-fit thumbnail on dimensions, this template first looks for 
<code>uix:thumb</code> elements with the <code>type</code> attribute set to <code>"links"</code>. Within 
those, it looks for <code>uix:thumb</code> elements whose <code>role</code> attribute matches the <code 
style="xslt-param">role</code> parameter. This is similar to how link titles are selected.</p>
-  <p>If the <code style="xslt-param">thumbs</code> parameter is empty, this template attempts to use a 
default thumbnail provided by a <code>uix:thumb</code> child element of <code 
style="xslt-param">node</code>.</p>
-  <p>The <code style="xslt-param">width</code> and <code style="xslt-param">height</code> parameters can be 
computed automatically from the <code style="xslt-param">node</code> element.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal2html.ui.links.img.src"/></p></item><item><p><link 
xref="mal2html.ui.links.img.attrs"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.ui.links.img">
+ <info>
+  <link type="guide" xref="mal2html-ui" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output an image for a link using UI thumbnails.</desc>
+  <revision version="3.28" date="2017-08-11" status="final"/>
+ </info>
+ <title>mal2html.ui.links.img</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$thumbs</code></title>
+    <p>A list of candidate <sys>uix:thumb</sys> elements.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A link role, used to select the appropriate thumbnail.</p>
+   </item>
+   <item>
+    <title><code>$width</code></title>
+    <p>The width to fit thumbnails into.</p>
+   </item>
+   <item>
+    <title><code>$height</code></title>
+    <p>The height to fit thumbnails into.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template selects the best-fit thumbnail from <code>$thumbs</code>, based on how well
+ the aspect ratio and dimensions of each image matches the <code>$width</code> and <code>$height</code>
+ parameters. It outputs an HTML <sys>img</sys> element for the best-fit thumbnail. It
+ calls <code>$mal2thml.ui.links.img.src</code> to output the <sys>src</sys> attribute, and calls
+ <code>$mal2html.ui.links.img.attrs</code> to output <sys>width</sys> and <sys>height</sys> attributes.</p>
+ <p>Before checking for a best-fit thumbnail on dimensions, this template first
+ looks for <sys>uix:thumb</sys> elements with the <sys>type</sys> attribute set to <sys>"links"</sys>.
+ Within those, it looks for <sys>uix:thumb</sys> elements whose <sys>role</sys> attribute
+ matches the <code>$role</code> parameter. This is similar to how link titles are
+ selected.</p>
+ <p>If the <code>$thumbs</code> parameter is empty, this template attempts to use a default
+ thumbnail provided by a <sys>uix:thumb</sys> child element of <code>$node</code>.</p>
+ <p>The <code>$width</code> and <code>$height</code> parameters can be computed automatically from the
+ <code>$node</code> element.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal2html.ui.links.img.attrs"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.links.img.src"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2html.ui.links.img.src.page b/doc/yelp-xsl/C/mal2html.ui.links.img.src.page
index 1860f90e..5f1af3e0 100644
--- a/doc/yelp-xsl/C/mal2html.ui.links.img.src.page
+++ b/doc/yelp-xsl/C/mal2html.ui.links.img.src.page
@@ -1,24 +1,40 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ui.links.img.src" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-ui" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.28" date="2017-08-11" status="final"/><desc>Output 
the <code>src</code> attribute for a thumbnail 
image.</desc></info><title>mal2html.ui.links.img.src</title><p>Output the <code>src</code> attribute for a 
thumbnail image.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>thumb</code></title>
-      <p>A <code>uix:thumb</code> element.</p>
-    </item>
-    <item>
-      <title><code>width</code></title>
-      <p>The width to fit thumbnails into.</p>
-    </item>
-    <item>
-      <title><code>height</code></title>
-      <p>The height to fit thumbnails into.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs <code>src</code> attribute for the HTML <code>img</code> element created from 
<code style="xslt-param">thumb</code>. By default, it just copies the <code>src</code> attribute of <code 
style="xslt-param">thumb</code>. Override this template if you need to support multi-directory output.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.ui.links.img.src">
+ <info>
+  <link type="guide" xref="mal2html-ui" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output the <sys>src</sys> attribute for a thumbnail image.</desc>
+  <revision version="3.28" date="2017-08-11" status="final"/>
+ </info>
+ <title>mal2html.ui.links.img.src</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$thumb</code></title>
+    <p>A <sys>uix:thumb</sys> element.</p>
+   </item>
+   <item>
+    <title><code>$width</code></title>
+    <p>The width to fit thumbnails into.</p>
+   </item>
+   <item>
+    <title><code>$height</code></title>
+    <p>The height to fit thumbnails into.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs <sys>src</sys> attribute for the HTML <sys>img</sys> element created
+ from <code>$thumb</code>. By default, it just copies the <sys>src</sys> attribute of <code>$thumb</code>.
+ Override this template if you need to support multi-directory output.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/mal2html.ui.links.tiles.page b/doc/yelp-xsl/C/mal2html.ui.links.tiles.page
index 0381784f..6eb7a886 100644
--- a/doc/yelp-xsl/C/mal2html.ui.links.tiles.page
+++ b/doc/yelp-xsl/C/mal2html.ui.links.tiles.page
@@ -1,21 +1,68 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2html.ui.links.tiles" type="topic" 
style="xslt-template"><info><link type="guide" xref="mal2html-ui" group="templates"/><link type="guide" 
xref="templates" group="mal2html"/><revision version="3.28" date="2015-10-22" status="volatile"/><desc>Output 
links as thumbnail tiles.</desc></info><title>mal2html.ui.links.tiles</title><p>Output links as thumbnail 
tiles.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>links</code> element to link from.</p>
-    </item>
-    <item>
-      <title><code>links</code></title>
-      <p>A list of links, as from a template in <file xref="mal-link">mal-link</file>.</p>
-    </item>
-    <item>
-      <title><code>role</code></title>
-      <p>A link role, used to select the appropriate title and thumbnail.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs links as thumbnail tiles. For each link, it outputs a <code>div</code> element 
with a thumbnail, title, and desc (unless the <code>nodesc</code> style hint is used). This template calls 
<code style="xslt-template" xref="mal2html.ui.links.img">mal2html.ui.links.img</code> to find the best-match 
thumbnail and output the HTML <code>img</code> element for each link.</p>
-  <p>This template handles link sorting.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="mal.link.target"/></p></item><item><p><link xref="mal.link.tooltip"/></p></item><item><p><link 
xref="mal.link.content"/></p></item><item><p><link xref="mal.link.desc"/></p></item></list><list 
style="compact"><title>Calls Modes</title><item><p><link 
xref="_mal2html.links.divs.nolink.mode"/></p></item></list><list style="compact"><title>Calls 
Keys</title><item><p><link xref="mal.cache.key"/></p></item></list><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="mal.cache"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="mal2html.ui.links.tiles">
+ <info>
+  <link type="guide" xref="mal2html-ui" group="templates"/>
+  <link type="guide" xref="templates" group="mal2html"/>
+  <desc>Output links as thumbnail tiles.</desc>
+  <revision version="3.28" date="2015-10-22" status="volatile"/>
+ </info>
+ <title>mal2html.ui.links.tiles</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>A <sys>links</sys> element to link from.</p>
+   </item>
+   <item>
+    <title><code>$links</code></title>
+    <p>A list of links, as from a template in <code xref="mal-link">mal-link</code>.</p>
+   </item>
+   <item>
+    <title><code>$role</code></title>
+    <p>A link role, used to select the appropriate title and thumbnail.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs links as thumbnail tiles. For each link, it outputs
+ a <sys>div</sys> element with a thumbnail, title, and desc (unless the <sys>nodesc</sys>
+ style hint is used). This template calls <code xref="mal2html.ui.links.img">mal2html.ui.links.img</code> to 
find
+ the best-match thumbnail and output the HTML <sys>img</sys> element for each link.</p>
+ <p>This template handles link sorting.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="mal.cache"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Keys</title>
+  <item>
+   <p><link xref="mal.cache.key"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="mal.link.content"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.desc"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.target"/></p>
+  </item>
+  <item>
+   <p><link xref="mal.link.tooltip"/></p>
+  </item>
+  <item>
+   <p><link xref="mal2html.ui.links.img"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Modes</title>
+  <item>
+   <p><link xref="_mal2html.links.divs.nolink.mode"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/mal2xhtml.page b/doc/yelp-xsl/C/mal2xhtml.page
index 0fba3f58..84158bb8 100644
--- a/doc/yelp-xsl/C/mal2xhtml.page
+++ b/doc/yelp-xsl/C/mal2xhtml.page
@@ -1,2 +1,61 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="mal2xhtml" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="mal2xhtml"/><revision version="3.8" date="2012-11-05" 
status="final"/><link type="topic" xref="mal2html-api" group="stylesheets"/><link type="topic" 
xref="mal2html-block" group="stylesheets"/><link type="topic" xref="mal2html-gloss" 
group="stylesheets"/><link type="topic" xref="mal2html-inline" group="stylesheets"/><link type="topic" 
xref="mal2html-links" group="stylesheets"/><link type="topic" xref="mal2html-list" group="stylesheets"/><link 
type="topic" xref="mal2html-math" group="stylesheets"/><link type="topic" xref="mal2html-media" 
group="stylesheets"/><link type="topic" xref="mal2html-page" group="stylesheets"/><link type="topic" 
xref="mal2html-svg" group="stylesheets"/><link type="topic" xref="mal2html-table" group="stylesheets"/><link 
type="topic" xref="mal2html-ui" group="stylesheets"/><link type="xslt-defines-param" xref
 ="ttml.f
 eatures"/><link type="xslt-defines-param" xref="mal.if.target"/><link type="xslt-defines-param" 
xref="mal.if.features"/><link type="xslt-defines-param" xref="mal.if.maybe"/><link type="xslt-defines-param" 
xref="mal.link.extension"/></info><title>Mallard to XHTML</title><p>Transform Mallard to XHTML.</p><p>This 
top-level stylesheet includes all the necessary stylesheets to transform Mallard documents into XHTML. This 
stylesheet sets the parameters <code style="xslt-param" xref="mal.if.target">mal.if.target</code>, <code 
style="xslt-param" xref="mal.if.features">mal.if.features</code>, <code style="xslt-param" 
xref="mal.if.maybe">mal.if.maybe</code>, <code style="xslt-param" 
xref="mal.link.extension">mal.link.extension</code>, and <code style="xslt-param" 
xref="ttml.features">ttml.features</code>.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></lin
 ks><link
 s type="topic" groups="modes" style="linklist"><title>Modes</title></links><links type="topic" 
groups="templates" style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="html.extension"/></p></item><item><p><link 
xref="ttml.features"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="mal2xhtml">
+ <info>
+  <link type="guide" xref="stylesheets" group="mal2xhtml"/>
+  <link type="topic" xref="l10n" group="imports"/>
+  <link type="topic" xref="color" group="imports"/>
+  <link type="topic" xref="icons" group="imports"/>
+  <link type="topic" xref="html" group="imports"/>
+  <link type="topic" xref="ttml" group="imports"/>
+  <link type="topic" xref="utils" group="imports"/>
+  <link type="topic" xref="mal-gloss" group="imports"/>
+  <link type="topic" xref="mal-if" group="imports"/>
+  <link type="topic" xref="mal-link" group="imports"/>
+  <link type="topic" xref="mal2html-api" group="includes"/>
+  <link type="topic" xref="mal2html-block" group="includes"/>
+  <link type="topic" xref="mal2html-gloss" group="includes"/>
+  <link type="topic" xref="mal2html-inline" group="includes"/>
+  <link type="topic" xref="mal2html-links" group="includes"/>
+  <link type="topic" xref="mal2html-list" group="includes"/>
+  <link type="topic" xref="mal2html-math" group="includes"/>
+  <link type="topic" xref="mal2html-media" group="includes"/>
+  <link type="topic" xref="mal2html-page" group="includes"/>
+  <link type="topic" xref="mal2html-svg" group="includes"/>
+  <link type="topic" xref="mal2html-table" group="includes"/>
+  <link type="topic" xref="mal2html-ui" group="includes"/>
+  <desc>Transform Mallard to XHTML.</desc>
+  <revision version="3.8" date="2012-11-05" status="final"/>
+ </info>
+ <title>Mallard to XHTML</title>
+ <p>This top-level stylesheet includes all the necessary stylesheets to transform
+ Mallard documents into XHTML. This stylesheet sets the parameters
+ <code xref="mal.if.target">mal.if.target</code>, <code xref="mal.if.features">mal.if.features</code>, <code 
xref="mal.if.maybe">mal.if.maybe</code>, <code xref="mal.link.extension">mal.link.extension</code>,
+ and <code xref="ttml.features">ttml.features</code>.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="html.extension"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/modes.page b/doc/yelp-xsl/C/modes.page
index 2ca97532..63c2faaa 100644
--- a/doc/yelp-xsl/C/modes.page
+++ b/doc/yelp-xsl/C/modes.page
@@ -1,46 +1,42 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="modes">
-  <info>
-    <link type="guide" xref="index"/>
-    <title type="link">Modes</title>
-    <title type="link" role="topic">XSLT Modes</title>
-  </info>
-
-  <title>XSLT Modes</title>
-
-  <links type="topic" style="linklist" groups="mal2html">
-    <title>Mallard to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="mal">
-    <title>Mallard Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="db2html">
-    <title>DocBook to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="db">
-    <title>DocBook Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="html">
-    <title>HTML Output</title>
-  </links>
-  <links type="topic" style="linklist" groups="ttml">
-    <title>TTML Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="l10n">
-    <title>Localization</title>
-  </links>
-  <links type="topic" style="linklist" groups="color">
-    <title>Colors</title>
-  </links>
-  <links type="topic" style="linklist" groups="icons">
-    <title>Icons</title>
-  </links>
-  <links type="topic" style="linklist" groups="utils">
-    <title>Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="#first #default #last">
-    <title>Other</title>
-  </links>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="modes">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Modes</title>
+  <title type="link" role="topic">XSLT Modes</title>
+ </info>
+ <title>XSLT Modes</title>
+ <links type="topic" style="linklist" groups="mal2html">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html">
+  <title>HTML Output</title>
+ </links>
+ <links type="topic" style="linklist" groups="ttml">
+  <title>TTML Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="l10n">
+  <title>Localization</title>
+ </links>
+ <links type="topic" style="linklist" groups="color">
+  <title>Colors</title>
+ </links>
+ <links type="topic" style="linklist" groups="icons">
+  <title>Icons</title>
+ </links>
+ <links type="topic" style="linklist" groups="utils">
+  <title>Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first" id="last">
+  <title>Other</title>
+ </links>
 </page>
diff --git a/doc/yelp-xsl/C/params.page b/doc/yelp-xsl/C/params.page
new file mode 100644
index 00000000..1c497473
--- /dev/null
+++ b/doc/yelp-xsl/C/params.page
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="params">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Parameters</title>
+  <title type="link" role="topic">XSLT Parameters</title>
+ </info>
+ <title>XSLT Parameters</title>
+ <links type="topic" style="linklist" groups="mal2html">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html">
+  <title>HTML Output</title>
+ </links>
+ <links type="topic" style="linklist" groups="ttml">
+  <title>TTML Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="l10n">
+  <title>Localization</title>
+ </links>
+ <links type="topic" style="linklist" groups="color">
+  <title>Colors</title>
+ </links>
+ <links type="topic" style="linklist" groups="icons">
+  <title>Icons</title>
+ </links>
+ <links type="topic" style="linklist" groups="utils">
+  <title>Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first" id="last">
+  <title>Other</title>
+ </links>
+</page>
diff --git a/doc/yelp-xsl/C/stubs.page b/doc/yelp-xsl/C/stubs.page
index 7a3f509b..c26bf97a 100644
--- a/doc/yelp-xsl/C/stubs.page
+++ b/doc/yelp-xsl/C/stubs.page
@@ -1,46 +1,42 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="stubs">
-  <info>
-    <link type="guide" xref="index"/>
-    <title type="link">Stubs</title>
-    <title type="link" role="topic">XSLT Template Stubs</title>
-  </info>
-
-  <title>XSLT Template Stubs</title>
-
-  <links type="topic" style="linklist" groups="mal2html">
-    <title>Mallard to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="mal">
-    <title>Mallard Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="db2html">
-    <title>DocBook to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="db">
-    <title>DocBook Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="html">
-    <title>HTML Output</title>
-  </links>
-  <links type="topic" style="linklist" groups="ttml">
-    <title>TTML Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="l10n">
-    <title>Localization</title>
-  </links>
-  <links type="topic" style="linklist" groups="color">
-    <title>Colors</title>
-  </links>
-  <links type="topic" style="linklist" groups="icons">
-    <title>Icons</title>
-  </links>
-  <links type="topic" style="linklist" groups="utils">
-    <title>Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="#first #default #last">
-    <title>Other</title>
-  </links>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="stubs">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Stubs</title>
+  <title type="link" role="topic">XSLT Template Stubs</title>
+ </info>
+ <title>XSLT Template Stubs</title>
+ <links type="topic" style="linklist" groups="mal2html">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html">
+  <title>HTML Output</title>
+ </links>
+ <links type="topic" style="linklist" groups="ttml">
+  <title>TTML Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="l10n">
+  <title>Localization</title>
+ </links>
+ <links type="topic" style="linklist" groups="color">
+  <title>Colors</title>
+ </links>
+ <links type="topic" style="linklist" groups="icons">
+  <title>Icons</title>
+ </links>
+ <links type="topic" style="linklist" groups="utils">
+  <title>Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first" id="last">
+  <title>Other</title>
+ </links>
 </page>
diff --git a/doc/yelp-xsl/C/stylesheets.page b/doc/yelp-xsl/C/stylesheets.page
index 392d8414..2af84b53 100644
--- a/doc/yelp-xsl/C/stylesheets.page
+++ b/doc/yelp-xsl/C/stylesheets.page
@@ -1,31 +1,27 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="stylesheets">
-  <info>
-    <link type="guide" xref="index"/>
-    <title type="link">Stylesheets</title>
-    <title type="link" role="topic">XSLT Stylesheets</title>
-  </info>
-
-  <title>XSLT Stylesheets</title>
-
-  <links type="topic" style="linklist" groups="mal2html mal2xhtml">
-    <title>Mallard to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="mal">
-    <title>Mallard Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="db2html db2xhtml">
-    <title>DocBook to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="db">
-    <title>DocBook Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="html ttml l10n color icons utils">
-    <title>Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="#first #default #last">
-    <title>Other</title>
-  </links>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="stylesheets">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Stylesheets</title>
+  <title type="link" role="topic">XSLT Stylesheets</title>
+ </info>
+ <title>XSLT Stylesheets</title>
+ <links type="topic" style="linklist" groups="mal2html mal2xhtml">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html db2xhtml">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html ttml l10n color icons utils">
+  <title>Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first #default #last">
+  <title>Other</title>
+ </links>
 </page>
diff --git a/doc/yelp-xsl/C/templates.page b/doc/yelp-xsl/C/templates.page
index e8ffb376..2b378d8c 100644
--- a/doc/yelp-xsl/C/templates.page
+++ b/doc/yelp-xsl/C/templates.page
@@ -1,46 +1,42 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/";
-      type="guide"
-      id="templates">
-  <info>
-    <link type="guide" xref="index"/>
-    <title type="link">Templates</title>
-    <title type="link" role="topic">XSLT Templates</title>
-  </info>
-
-  <title>XSLT Templates</title>
-
-  <links type="topic" style="linklist" groups="mal2html">
-    <title>Mallard to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="mal">
-    <title>Mallard Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="db2html">
-    <title>DocBook to HTML</title>
-  </links>
-  <links type="topic" style="linklist" groups="db">
-    <title>DocBook Common</title>
-  </links>
-  <links type="topic" style="linklist" groups="html">
-    <title>HTML Output</title>
-  </links>
-  <links type="topic" style="linklist" groups="ttml">
-    <title>TTML Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="l10n">
-    <title>Localization</title>
-  </links>
-  <links type="topic" style="linklist" groups="color">
-    <title>Colors</title>
-  </links>
-  <links type="topic" style="linklist" groups="icons">
-    <title>Icons</title>
-  </links>
-  <links type="topic" style="linklist" groups="utils">
-    <title>Utilities</title>
-  </links>
-  <links type="topic" style="linklist" groups="#first #default #last">
-    <title>Other</title>
-  </links>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="templates">
+ <info>
+  <link type="guide" xref="index"/>
+  <title type="link">Templates</title>
+  <title type="link" role="topic">XSLT Templates</title>
+ </info>
+ <title>XSLT Templates</title>
+ <links type="topic" style="linklist" groups="mal2html">
+  <title>Mallard to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="mal">
+  <title>Mallard Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="db2html">
+  <title>DocBook to HTML</title>
+ </links>
+ <links type="topic" style="linklist" groups="db">
+  <title>DocBook Common</title>
+ </links>
+ <links type="topic" style="linklist" groups="html">
+  <title>HTML Output</title>
+ </links>
+ <links type="topic" style="linklist" groups="ttml">
+  <title>TTML Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="l10n">
+  <title>Localization</title>
+ </links>
+ <links type="topic" style="linklist" groups="color">
+  <title>Colors</title>
+ </links>
+ <links type="topic" style="linklist" groups="icons">
+  <title>Icons</title>
+ </links>
+ <links type="topic" style="linklist" groups="utils">
+  <title>Utilities</title>
+ </links>
+ <links type="topic" style="linklist" groups="#first" id="last">
+  <title>Other</title>
+ </links>
 </page>
diff --git a/doc/yelp-xsl/C/ttml.features.page b/doc/yelp-xsl/C/ttml.features.page
index 4c5cb023..f2d82a25 100644
--- a/doc/yelp-xsl/C/ttml.features.page
+++ b/doc/yelp-xsl/C/ttml.features.page
@@ -1,7 +1,23 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml.features" type="topic" style="xslt-param"><info><link 
type="guide" xref="ttml" group="parameters"/><link type="guide" xref="parameters" group="ttml"/><revision 
version="3.4" date="2012-03-01" status="final"/><desc>The supported features and extensions for TTML 
documents.</desc></info><title>ttml.features</title><p>The supported features and extensions for TTML 
documents.</p>
-  
-  
-  <p>This parameter lists the fully-qualified URIs of TTML features and extensions supported by the 
stylesheets. The values are in the form of a space-separated list, which MUST have both a leading and a 
trailing space.</p>
-  <p>The default value for this parameter is empty. Importing stylesheets should set this to an appropriate 
value.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-param" id="ttml.features">
+ <info>
+  <link type="guide" xref="ttml" group="params"/>
+  <link type="guide" xref="params" group="ttml"/>
+  <desc>The supported features and extensions for TTML documents.</desc>
+  <evision version="3.4" date="2012-03-01" status="final"/>
+ </info>
+ <title>ttml.features</title>
+ <p>This parameter lists the fully-qualified URIs of TTML features and extensions
+ supported by the stylesheets. The values are in the form of a space-separated
+ list, which MUST have both a leading and a trailing space.</p>
+ <p>The default value for this parameter is empty. Importing stylesheets should
+ set this to an appropriate value.</p>
+ <synopsis>
+  <terms>
+   <item>
+    <title><code>ttml.features</code></title>
+    <p><code>''</code></p>
+   </item>
+  </terms>
+ </synopsis>
 </page>
diff --git a/doc/yelp-xsl/C/ttml.page b/doc/yelp-xsl/C/ttml.page
index 0bac07e3..839565c0 100644
--- a/doc/yelp-xsl/C/ttml.page
+++ b/doc/yelp-xsl/C/ttml.page
@@ -1,2 +1,35 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="ttml"/><revision version="3.4" date="2012-03-01" status="final"/><link 
type="xslt-defines-template" xref="ttml.time.range"/><link type="xslt-defines-template" 
xref="ttml.time.seconds"/><link type="xslt-defines-template" xref="ttml.profile"/><link 
type="xslt-defines-template" xref="ttml.profile.attr"/><link type="xslt-defines-param" 
xref="ttml.features"/></info><title>TTML Utilities</title><p>Common templates to help with processing TTML 
documents.</p><p>This stylesheet contains common utilities for working with TTML documents. It contains 
templates for checking profiles and processing timing data.</p><links type="topic" groups="stylesheets" 
style="linklist"><title>Stylesheets</title></links><links type="topic" groups="parameters" 
style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" style="linklist"><tit
 le>Modes
 </title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="topic" groups="keys" 
style="linklist"><title>Keys</title></links><list style="compact"><title>Calls 
Parameters</title><item><p><link xref="ttml.features"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="ttml">
+ <info>
+  <link type="guide" xref="stylesheets" group="ttml"/>
+  <desc>Common templates to help with processing TTML documents.</desc>
+  <revision version="3.4" date="2012-03-01" status="final"/>
+ </info>
+ <title>TTML Utilities</title>
+ <p>This stylesheet contains common utilities for working with TTML documents.
+ It contains templates for checking profiles and processing timing data.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/ttml.profile.attr.page b/doc/yelp-xsl/C/ttml.profile.attr.page
index c1c60e7e..6af59419 100644
--- a/doc/yelp-xsl/C/ttml.profile.attr.page
+++ b/doc/yelp-xsl/C/ttml.profile.attr.page
@@ -1,17 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml.profile.attr" type="topic" 
style="xslt-template"><info><link type="guide" xref="ttml" group="templates"/><link type="guide" 
xref="templates" group="ttml"/><revision version="3.4" date="2012-03-02" status="final"/><desc>Check whether 
the stylesheets conform to a <code>profile</code> 
attribute.</desc></info><title>ttml.profile.attr</title><p>Check whether the stylesheets conform to a 
<code>profile</code> attribute.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>A <code>tt:tt</code> element containing a <code>profile</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>profile</code></title>
-      <p>The <code>profile</code> attribute to check.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template checks if the stylesheets comply with a profile as specified by the <code>profile</code> 
attribute on a <code>tt:tt</code> element. If the profile is one of the pre-defined profiles 
(<code>dfxp-transformation</code>, <code>dfxp-presentation</code>, and <code>dfxp-full</code>), this template 
contains built-in rules for quicly checking feature compliance. Otherwise, it downloads the referenced 
profile and calls <code style="xslt-template" xref="ttml.profile">ttml.profile</code> on it.</p>
-  <p>Like <code style="xslt-template" xref="ttml.profile">ttml.profile</code>, this template returns the 
string <code>"true"</code> if all required features are supported, <code>"false"</code> otherwise.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="ttml.profile"/></p></item></list><list style="compact"><title>Calls Parameters</title><item><p><link 
xref="ttml.features"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="ttml.profile.attr">
+ <info>
+  <link type="guide" xref="ttml" group="templates"/>
+  <link type="guide" xref="templates" group="ttml"/>
+  <desc>Check whether the stylesheets conform to a <sys>profile</sys> attribute.</desc>
+  <revision version="3.4" date="2012-03-02" status="final"/>
+ </info>
+ <title>ttml.profile.attr</title>
+ <p><code>$node</code>: A <sys>tt:tt</sys> element containing a <sys>profile</sys> attribute.
+ <code>$profile</code>: The <sys>profile</sys> attribute to check.</p>
+ <p>This template checks if the stylesheets comply with a profile as specified by
+ the <sys>profile</sys> attribute on a <sys>tt:tt</sys> element. If the profile is one of the
+ pre-defined profiles (<sys>dfxp-transformation</sys>, <sys>dfxp-presentation</sys>, and
+ <sys>dfxp-full</sys>), this template contains built-in rules for quicly checking
+ feature compliance. Otherwise, it downloads the referenced profile and calls
+ <sys>ttml.profile</sys> on it.</p>
+ <p>Like <code xref="ttml.profile">ttml.profile</code>, this template returns the string <sys>"true"</sys> 
if all
+ required features are supported, <sys>"false"</sys> otherwise.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="ttml.profile"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/ttml.profile.page b/doc/yelp-xsl/C/ttml.profile.page
index b80a066c..81592b84 100644
--- a/doc/yelp-xsl/C/ttml.profile.page
+++ b/doc/yelp-xsl/C/ttml.profile.page
@@ -1,12 +1,31 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml.profile" type="topic" 
style="xslt-template"><info><link type="guide" xref="ttml" group="templates"/><link type="guide" 
xref="templates" group="ttml"/><revision version="3.4" date="2012-03-01" status="final"/><desc>Check whether 
the stylesheets conform to a <code>ttp:profile</code> 
element.</desc></info><title>ttml.profile</title><p>Check whether the stylesheets conform to a 
<code>ttp:profile</code> element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The <code>ttp:profile</code> element to check.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template takes a <code>ttp:profile</code> element in the <code style="xslt-param">node</code> 
parameter and determines whether or not the stylesheets meet all required features and extensions, per 
section 5.2 of the TTML 1.0 recommendation. This template uses the <code style="xslt-param" 
xref="ttml.features">ttml.features</code> stylesheet parameter to determine which features are supported by 
the stylesheet. It returns the string <code>"true"</code> if all required features are supported, 
<code>"false"</code> otherwise.</p>
-<list style="compact"><title>Calls Parameters</title><item><p><link 
xref="ttml.features"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="ttml.profile">
+ <info>
+  <link type="guide" xref="ttml" group="templates"/>
+  <link type="guide" xref="templates" group="ttml"/>
+  <desc>Check whether the stylesheets conform to a <sys>ttp:profile</sys> element.</desc>
+  <revision version="3.4" date="2012-03-01" status="final"/>
+ </info>
+ <title>ttml.profile</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The <sys>ttp:profile</sys> element to check.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template takes a <sys>ttp:profile</sys> element in the <code>$node</code> parameter and
+ determines whether or not the stylesheets meet all required features and
+ extensions, per section 5.2 of the TTML 1.0 recommendation. This template
+ uses the <code xref="ttml.features">ttml.features</code> stylesheet parameter to determine which features
+ are supported by the stylesheet. It returns the string <sys>"true"</sys> if all
+ required features are supported, <sys>"false"</sys> otherwise.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/ttml.time.range.page b/doc/yelp-xsl/C/ttml.time.range.page
index a704dc01..94606adc 100644
--- a/doc/yelp-xsl/C/ttml.time.range.page
+++ b/doc/yelp-xsl/C/ttml.time.range.page
@@ -1,30 +1,60 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml.time.range" type="topic" 
style="xslt-template"><info><link type="guide" xref="ttml" group="templates"/><link type="guide" 
xref="templates" group="ttml"/><revision version="3.4" date="2012-03-02" status="final"/><desc>Return the 
absolute begin and end times for a timed element.</desc></info><title>ttml.time.range</title><p>Return the 
absolute begin and end times for a timed element.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The element containing timing attributes.</p>
-    </item>
-    <item>
-      <title><code>range</code></title>
-      <p>The absolute range for the parent element.</p>
-    </item>
-    <item>
-      <title><code>begin</code></title>
-      <p>The value of the <code>begin</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>end</code></title>
-      <p>The value of the <code>end</code> attribute.</p>
-    </item>
-    <item>
-      <title><code>dur</code></title>
-      <p>The value of the <code>dur</code> attribute.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template returns the start and end time for a TTML element, based on the <code>begin</code>, 
<code>end</code>, and <code>dur</code> attributes. It returns each of them as numbers of seconds, as returned 
by <code style="xslt-template" xref="ttml.time.seconds">ttml.time.seconds</code>, separated by a comma. Begin 
and end times are returned as absolute times, relative to the computed range of the parent element. The 
parent range may be passed in the <code style="xslt-param">range</code> parameter. If the parameter is empty, 
the parent range is computed automatically by calling this template on the nearest ancestor of <code 
style="xslt-param">node</code> with a <code>begin</code> attribute.</p>
-  <p>If both <code style="xslt-param">end</code> and <code style="xslt-param">dur</code> are provided, the 
end times for each are calculated, and the one that results in the shortest duration is used.</p>
-  <p>If there is no end time for the element, the string <code>∞</code> is used as the end time.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="ttml.time.range"/></p></item><item><p><link xref="ttml.time.seconds"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="ttml.time.range">
+ <info>
+  <link type="guide" xref="ttml" group="templates"/>
+  <link type="guide" xref="templates" group="ttml"/>
+  <desc>Return the absolute begin and end times for a timed element.</desc>
+  <revision version="3.4" date="2012-03-02" status="final"/>
+ </info>
+ <title>ttml.time.range</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The element containing timing attributes.</p>
+   </item>
+   <item>
+    <title><code>$range</code></title>
+    <p>The absolute range for the parent element.</p>
+   </item>
+   <item>
+    <title><code>$begin</code></title>
+    <p>The value of the <sys>begin</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$end</code></title>
+    <p>The value of the <sys>end</sys> attribute.</p>
+   </item>
+   <item>
+    <title><code>$dur</code></title>
+    <p>The value of the <sys>dur</sys> attribute.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template returns the start and end time for a TTML element, based on the
+ <sys>begin</sys>, <sys>end</sys>, and <sys>dur</sys> attributes. It returns each of them as numbers
+ of seconds, as returned by <code xref="ttml.time.seconds">ttml.time.seconds</code>, separated by a comma. 
Begin
+ and end times are returned as absolute times, relative to the computed range
+ of the parent element. The parent range may be passed in the <code>$range</code> parameter.
+ If the parameter is empty, the parent range is computed automatically by calling
+ this template on the nearest ancestor of <code>$node</code> with a <sys>begin</sys> attribute.</p>
+ <p>If both <code>$end</code> and <code>$dur</code> are provided, the end times for each are calculated,
+ and the one that results in the shortest duration is used.</p>
+ <p>If there is no end time for the element, the string <sys>∞</sys> is used as the end time.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="ttml.time.range"/></p>
+  </item>
+  <item>
+   <p><link xref="ttml.time.seconds"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/ttml.time.seconds.page b/doc/yelp-xsl/C/ttml.time.seconds.page
index 1db48e99..c4ad91e8 100644
--- a/doc/yelp-xsl/C/ttml.time.seconds.page
+++ b/doc/yelp-xsl/C/ttml.time.seconds.page
@@ -1,13 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="ttml.time.seconds" type="topic" 
style="xslt-template"><info><link type="guide" xref="ttml" group="templates"/><link type="guide" 
xref="templates" group="ttml"/><revision version="3.4" date="2012-03-02" status="final"/><desc>Return the 
number of seconds for a time expression.</desc></info><title>ttml.time.seconds</title><p>Return the number of 
seconds for a time expression.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>time</code></title>
-      <p>A TTML time expression.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template takes a time expression as used by the <code>begin</code>, <code>end</code>, and 
<code>dur</code> attributes and returns the number of seconds that expression respresents. Time expressions 
may be any number parsable by the XPath <code>number</code> function followed by one of the units 
<code>ms</code> (milliseconds), <code>s</code> (seconds), <code>m</code> (minutes), or <code>h</code> 
(hours). It returns <code>0</code> if the time expression is invalid.</p>
-  <p>This template provides support only for the <code>#time-offset</code> TTML feature. It does not support 
other methods of specifying times.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" id="ttml.time.seconds">
+ <info>
+  <link type="guide" xref="ttml" group="templates"/>
+  <link type="guide" xref="templates" group="ttml"/>
+  <desc>Return the number of seconds for a time expression.</desc>
+  <revision version="3.4" date="2012-03-02" status="final"/>
+ </info>
+ <title>ttml.time.seconds</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$time</code></title>
+    <p>A TTML time expression.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template takes a time expression as used by the <sys>begin</sys>, <sys>end</sys>, and <sys>dur</sys>
+ attributes and returns the number of seconds that expression respresents. Time
+ expressions may be any number parsable by the XPath <sys>number</sys> function followed
+ by one of the units <sys>ms</sys> (milliseconds), <sys>s</sys> (seconds), <sys>m</sys> (minutes), or 
<sys>h</sys>
+ (hours). It returns <sys>0</sys> if the time expression is invalid.</p>
+ <p>This template provides support only for the <sys>#time-offset</sys> TTML feature. It
+ does not support other methods of specifying times.</p>
+ <list style="compact">
+  <title>Calls Parameters</title>
+  <item>
+   <p><link xref="ttml.features"/></p>
+  </item>
+ </list>
 </page>
diff --git a/doc/yelp-xsl/C/utils.email_address.page b/doc/yelp-xsl/C/utils.email_address.page
index 6e83b1d6..68ef3f5d 100644
--- a/doc/yelp-xsl/C/utils.email_address.page
+++ b/doc/yelp-xsl/C/utils.email_address.page
@@ -1,12 +1,21 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="utils.email_address" type="topic" 
style="xslt-template"><info><link type="guide" xref="utils" group="templates"/><link type="guide" 
xref="templates" group="utils"/><revision version="3.4" date="2012-01-18" status="final"/><desc>Get an email 
address from a mailto URL.</desc></info><title>utils.email_address</title><p>Get an email address from a 
mailto URL.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>href</code></title>
-      <p>The mailto URL.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template takes a mailto URL and returns an email address, stripping the URL scheme as well as any 
query string.</p>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="utils.email_address">
+ <info>
+  <link type="guide" xref="utils" group="templates"/>
+  <link type="guide" xref="templates" group="utils"/>
+  <desc>Get an email address from a mailto URL.</desc>
+  <revision version="3.4" date="2012-01-18" status="final"/>
+ </info>
+ <title>utils.email_address</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$href</code></title>
+    <p>The mailto URL.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template takes a mailto URL and returns an email address, stripping the
+ URL scheme as well as any query string.</p>
 </page>
diff --git a/doc/yelp-xsl/C/utils.linenumbering.page b/doc/yelp-xsl/C/utils.linenumbering.page
index f899863c..a57f1d72 100644
--- a/doc/yelp-xsl/C/utils.linenumbering.page
+++ b/doc/yelp-xsl/C/utils.linenumbering.page
@@ -1,16 +1,32 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="utils.linenumbering" type="topic" 
style="xslt-template"><info><link type="guide" xref="utils" group="templates"/><link type="guide" 
xref="templates" group="utils"/><revision version="1.0" date="2010-12-03" status="final"/><desc>Number each 
line in a verbatim environment.</desc></info><title>utils.linenumbering</title><p>Number each line in a 
verbatim environment.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>node</code></title>
-      <p>The verbatim element to create the line numbering for.</p>
-    </item>
-    <item>
-      <title><code>number</code></title>
-      <p>The starting line number.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template outputs a string with line numbers for each line in a verbatim elements.  Each line 
number is on its own line, allowing the output string to be placed to the side of the verbatim output.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="utils.linenumbering"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="utils.linenumbering">
+ <info>
+  <link type="guide" xref="utils" group="templates"/>
+  <link type="guide" xref="templates" group="utils"/>
+  <desc>Number each line in a verbatim environment.</desc>
+  <revision version="1.0" date="2010-12-03" status="final"/>
+ </info>
+ <title>utils.linenumbering</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$node</code></title>
+    <p>The verbatim element to create the line numbering for.</p>
+   </item>
+   <item>
+    <title><code>$number</code></title>
+    <p>The starting line number.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template outputs a string with line numbers for each line in a verbatim
+ elements.  Each line number is on its own line, allowing the output string to
+ be placed to the side of the verbatim output.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="utils.linenumbering"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/utils.page b/doc/yelp-xsl/C/utils.page
index 267d85c8..47a4d66e 100644
--- a/doc/yelp-xsl/C/utils.page
+++ b/doc/yelp-xsl/C/utils.page
@@ -1,2 +1,29 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="utils" type="guide" style="xslt-stylesheet"><info><link 
type="guide" xref="stylesheets" group="utils"/><revision version="1.0" date="2010-05-25" 
status="final"/><link type="xslt-defines-template" xref="utils.repeat_string"/><link 
type="xslt-defines-template" xref="utils.strip_newlines"/><link type="xslt-defines-template" 
xref="utils.linenumbering"/><link type="xslt-defines-template" 
xref="utils.email_address"/></info><title>Utilities</title><p>Common XSLT Utilities.</p><p>This stylesheet 
contains various useful utilities that are used throughout the Yelp stylesheets.</p><links type="topic" 
groups="stylesheets" style="linklist"><title>Stylesheets</title></links><links type="topic" 
groups="parameters" style="linklist"><title>Parameters</title></links><links type="topic" groups="modes" 
style="linklist"><title>Modes</title></links><links type="topic" groups="templates" 
style="linklist"><title>Templates</title></links><links type="
 topic" g
 roups="keys" style="linklist"><title>Keys</title></links></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" type="guide" style="xslt-stylesheet" 
id="utils">
+ <info>
+  <link type="guide" xref="stylesheets" group="utils"/>
+  <desc>Common XSLT Utilities.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>Utilities</title>
+ <p>This stylesheet contains various useful utilities that are used throughout
+ the Yelp stylesheets.</p>
+ <links type="topic" groups="imports" style="linklist">
+  <title>Imports Stylesheets</title>
+ </links>
+ <links type="topic" groups="includes" style="linklist">
+  <title>Includes Stylesheets</title>
+ </links>
+ <links type="topic" groups="params" style="linklist">
+  <title>Defines Parameters</title>
+ </links>
+ <links type="topic" groups="keys" style="linklist">
+  <title>Defines Keys</title>
+ </links>
+ <links type="topic" groups="templates" style="linklist">
+  <title>Defines Templates</title>
+ </links>
+ <links type="topic" groups="modes" style="linklist">
+  <title>Defines Modes</title>
+ </links>
+</page>
diff --git a/doc/yelp-xsl/C/utils.repeat_string.page b/doc/yelp-xsl/C/utils.repeat_string.page
index 69c4386f..0ae50a38 100644
--- a/doc/yelp-xsl/C/utils.repeat_string.page
+++ b/doc/yelp-xsl/C/utils.repeat_string.page
@@ -1,16 +1,30 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="utils.repeat_string" type="topic" 
style="xslt-template"><info><link type="guide" xref="utils" group="templates"/><link type="guide" 
xref="templates" group="utils"/><revision version="1.0" date="2011-08-24" status="final"/><desc>Repeat a 
string a given number of times.</desc></info><title>utils.repeat_string</title><p>Repeat a string a given 
number of times.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>string</code></title>
-      <p>The string to repeat.</p>
-    </item>
-    <item>
-      <title><code>number</code></title>
-      <p>The number of times to repeat <code style="xslt-param">string</code>.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template repeats the <code style="xslt-param">string</code> argument <code 
style="xslt-param">number</code> times.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="utils.repeat_string"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="utils.repeat_string">
+ <info>
+  <link type="guide" xref="utils" group="templates"/>
+  <link type="guide" xref="templates" group="utils"/>
+  <desc>Repeat a string a given number of times.</desc>
+  <revision version="1.0" date="2011-08-24" status="final"/>
+ </info>
+ <title>utils.repeat_string</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$string</code></title>
+    <p>The string to repeat.</p>
+   </item>
+   <item>
+    <title><code>$number</code></title>
+    <p>The number of times to repeat <code>$string</code>.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template repeats the <code>$string</code> argument <code>$number</code> times.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="utils.repeat_string"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/C/utils.strip_newlines.page b/doc/yelp-xsl/C/utils.strip_newlines.page
index 8465ed3e..3c6efb3b 100644
--- a/doc/yelp-xsl/C/utils.strip_newlines.page
+++ b/doc/yelp-xsl/C/utils.strip_newlines.page
@@ -1,20 +1,36 @@
-<?xml version="1.0"?>
-<page xmlns="http://projectmallard.org/1.0/"; id="utils.strip_newlines" type="topic" 
style="xslt-template"><info><link type="guide" xref="utils" group="templates"/><link type="guide" 
xref="templates" group="utils"/><revision version="1.0" date="2010-05-25" status="final"/><desc>Strip leading 
or trailing newlines from a string.</desc></info><title>utils.strip_newlines</title><p>Strip leading or 
trailing newlines from a string.</p>
-  
-  
-  <synopsis><title>Parameters</title><terms>
-    <item>
-      <title><code>string</code></title>
-      <p>The string to strip newlines from.</p>
-    </item>
-    <item>
-      <title><code>leading</code></title>
-      <p>Whether to strip leading newlines.</p>
-    </item>
-    <item>
-      <title><code>trailing</code></title>
-      <p>Whether to strip trailing newlines.</p>
-    </item>
-  </terms></synopsis>
-  <p>This template strips at most one leading and one trailing newline from <code 
style="xslt-param">string</code>.  This is useful for preformatted block elements where leading and trailing 
newlines are ignored to make source formatting easier for authors.</p>
-<list style="compact"><title>Calls Templates</title><item><p><link 
xref="utils.strip_newlines"/></p></item></list></page>
+<?xml version="1.0" encoding="utf-8"?>
+<page xmlns="http://projectmallard.org/1.0/"; xmlns:xsl="FIXME" style="xslt-template" 
id="utils.strip_newlines">
+ <info>
+  <link type="guide" xref="utils" group="templates"/>
+  <link type="guide" xref="templates" group="utils"/>
+  <desc>Strip leading or trailing newlines from a string.</desc>
+  <revision version="1.0" date="2010-05-25" status="final"/>
+ </info>
+ <title>utils.strip_newlines</title>
+ <synopsis>
+  <title>Parameters</title>
+  <terms>
+   <item>
+    <title><code>$string</code></title>
+    <p>The string to strip newlines from.</p>
+   </item>
+   <item>
+    <title><code>$leading</code></title>
+    <p>Whether to strip leading newlines.</p>
+   </item>
+   <item>
+    <title><code>$trailing</code></title>
+    <p>Whether to strip trailing newlines.</p>
+   </item>
+  </terms>
+ </synopsis>
+ <p>This template strips at most one leading and one trailing newline from
+ <code>$string</code>.  This is useful for preformatted block elements where leading and
+ trailing newlines are ignored to make source formatting easier for authors.</p>
+ <list style="compact">
+  <title>Calls Templates</title>
+  <item>
+   <p><link xref="utils.strip_newlines"/></p>
+  </item>
+ </list>
+</page>
diff --git a/doc/yelp-xsl/Makefile.am b/doc/yelp-xsl/Makefile.am
index 3dd0b55a..61263d98 100644
--- a/doc/yelp-xsl/Makefile.am
+++ b/doc/yelp-xsl/Makefile.am
@@ -13,39 +13,29 @@ xsldoc_xsls = $(filter-out %db2html-suppressed.xsl,                 \
        $(sort $(patsubst ./%, %,                                       \
          $(foreach dir,$(xsldoc_dirs), $(wildcard $(dir)/*.xsl)) )) )
 xsldoc_base = $(sort $(foreach xsl,$(xsldoc_xsls), $(basename $(notdir $(xsl)))))
+xsldoc_ducks = $(patsubst %, ducks/%.duck, $(xsldoc_base))
 xsldoc_pages = $(patsubst %, C/%.page, $(xsldoc_base))
 
-.PHONY: xsldoc-check-links xsldoc-clean
+.PHONY: xsldoc-clean
 
 if ENABLE_DOC
 all: $(xsldoc_pages)
 
-$(xsldoc_pages): $(xsldoc_xsls) xsldoc-scan.awk xsldoc-scan.xsl
-       $(YELP_XSL_AWK) -f "$(srcdir)/xsldoc-scan.awk" "$(filter %/$(basename $(notdir 
$@)).xsl,$(xsldoc_xsls))" \
-       | xsltproc -o "$@" \
+$(xsldoc_ducks): $(xsldoc_xsls) xsldoc-scan.xsl
+       xsltproc -o "$@" \
        --stringparam xsldoc.id "$(basename $(notdir $@))" \
-       --stringparam xsldoc.xslt_file "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \
-       "$(srcdir)/xsldoc-scan.xsl" -
-
-C/index.cache: $(xsldoc_pages)
-       $(srcdir)/mal2cache "$@" "$(ABS_SRCDIR)/../../xslt/mallard/cache/mal-cache.xsl" C/*.page
+       "$(srcdir)/xsldoc-scan.xsl" \
+       "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))"
 
-check: xsldoc-check
+$(xsldoc_pages): $(xsldoc_ducks)
+       ducktype -o C/ ducks/*.duck static/*.duck
 
-xsldoc-check: C/index.cache
-       for page in $(wildcard C/*.page); do \
-         xsltproc --stringparam xsldoc.cache.file C/index.cache "$(srcdir)/xsldoc-check.xsl" "$$page" || 
exit 1; \
-       done
 endif
 
 .PHONY: xsldoc-clean
 clean-local: xsldoc-clean
 xsldoc-clean:
-       rm -f $(xsldoc_pages) C/*.*.page C/*-*.page C/index.cache
+       rm -f C/*.page
 
 EXTRA_DIST =                   \
-       mal2cache               \
-       xsldoc-check.xsl        \
-       xsldoc-scan             \
-       xsldoc-scan.awk         \
        xsldoc-scan.xsl
diff --git a/doc/yelp-xsl/static/index.duck b/doc/yelp-xsl/static/index.duck
new file mode 100644
index 00000000..4eae2c2b
--- /dev/null
+++ b/doc/yelp-xsl/static/index.duck
@@ -0,0 +1,5 @@
+@ducktype/1.0
+
+= Yelp XSLT Stylesheets
+  [guide]
+@title[link role=trail] Yelp XSLT<
diff --git a/doc/yelp-xsl/static/keys.duck b/doc/yelp-xsl/static/keys.duck
new file mode 100644
index 00000000..2cf3b679
--- /dev/null
+++ b/doc/yelp-xsl/static/keys.duck
@@ -0,0 +1,40 @@
+@ducktype/1.0
+
+= XSLT Keys
+  [guide]
+@link[guide >index]
+@title[link] Keys
+@title[link role=topic] XSLT Keys
+
+[links topic .linklist groups=mal2html]
+. Mallard to HTML
+
+[links topic .linklist groups=mal]
+. Mallard Common
+
+[links topic .linklist groups=db2html]
+. DocBook to HTML
+
+[links topic .linklist groups=db]
+. DocBook Common
+
+[links topic .linklist groups=html]
+. HTML Output
+
+[links topic .linklist groups=ttml]
+. TTML Utilities
+
+[links topic .linklist groups=l10n]
+. Localization
+
+[links topic .linklist groups=color]
+. Colors
+
+[links topic .linklist groups=icons]
+. Icons
+
+[links topic .linklist groups=utils]
+. Utilities
+
+[links topic .linklist groups=#first #default #last]
+. Other
diff --git a/doc/yelp-xsl/static/modes.duck b/doc/yelp-xsl/static/modes.duck
new file mode 100644
index 00000000..47afb95f
--- /dev/null
+++ b/doc/yelp-xsl/static/modes.duck
@@ -0,0 +1,40 @@
+@ducktype/1.0
+
+= XSLT Modes
+  [guide]
+@link[guide >index]
+@title[link] Modes
+@title[link role=topic] XSLT Modes
+
+[links topic .linklist groups=mal2html]
+. Mallard to HTML
+
+[links topic .linklist groups=mal]
+. Mallard Common
+
+[links topic .linklist groups=db2html]
+. DocBook to HTML
+
+[links topic .linklist groups=db]
+. DocBook Common
+
+[links topic .linklist groups=html]
+. HTML Output
+
+[links topic .linklist groups=ttml]
+. TTML Utilities
+
+[links topic .linklist groups=l10n]
+. Localization
+
+[links topic .linklist groups=color]
+. Colors
+
+[links topic .linklist groups=icons]
+. Icons
+
+[links topic .linklist groups=utils]
+. Utilities
+
+[links topic .linklist groups=#first #default #last]
+. Other
diff --git a/doc/yelp-xsl/static/params.duck b/doc/yelp-xsl/static/params.duck
new file mode 100644
index 00000000..d858a229
--- /dev/null
+++ b/doc/yelp-xsl/static/params.duck
@@ -0,0 +1,40 @@
+@ducktype/1.0
+
+= XSLT Parameters
+  [guide]
+@link[guide >index]
+@title[link] Parameters
+@title[link role=topic] XSLT Parameters
+
+[links topic .linklist groups=mal2html]
+. Mallard to HTML
+
+[links topic .linklist groups=mal]
+. Mallard Common
+
+[links topic .linklist groups=db2html]
+. DocBook to HTML
+
+[links topic .linklist groups=db]
+. DocBook Common
+
+[links topic .linklist groups=html]
+. HTML Output
+
+[links topic .linklist groups=ttml]
+. TTML Utilities
+
+[links topic .linklist groups=l10n]
+. Localization
+
+[links topic .linklist groups=color]
+. Colors
+
+[links topic .linklist groups=icons]
+. Icons
+
+[links topic .linklist groups=utils]
+. Utilities
+
+[links topic .linklist groups=#first #default #last]
+. Other
diff --git a/doc/yelp-xsl/static/stubs.duck b/doc/yelp-xsl/static/stubs.duck
new file mode 100644
index 00000000..e134416b
--- /dev/null
+++ b/doc/yelp-xsl/static/stubs.duck
@@ -0,0 +1,41 @@
+@ducktype/1.0
+
+= XSLT Template Stubs
+  [guide]
+@link[guide >index]
+@title[link] Stubs
+@title[link role=topic] XSLT Template Stubs
+
+[links topic .linklist groups=mal2html]
+. Mallard to HTML
+
+[links topic .linklist groups=mal]
+. Mallard Common
+
+[links topic .linklist groups=db2html]
+. DocBook to HTML
+
+[links topic .linklist groups=db]
+. DocBook Common
+
+[links topic .linklist groups=html]
+. HTML Output
+
+[links topic .linklist groups=ttml]
+. TTML Utilities
+
+[links topic .linklist groups=l10n]
+. Localization
+
+[links topic .linklist groups=color]
+. Colors
+
+[links topic .linklist groups=icons]
+. Icons
+
+[links topic .linklist groups=utils]
+. Utilities
+
+[links topic .linklist groups=#first #default #last]
+. Other
+
diff --git a/doc/yelp-xsl/static/stylesheets.duck b/doc/yelp-xsl/static/stylesheets.duck
new file mode 100644
index 00000000..65d0bab5
--- /dev/null
+++ b/doc/yelp-xsl/static/stylesheets.duck
@@ -0,0 +1,25 @@
+@ducktype/1.0
+
+= XSLT Stylesheets
+  [guide]
+@link[guide >index]
+@title[link] Stylesheets
+@title[link role=topic] XSLT Stylesheets
+
+[links topic .linklist groups="mal2html mal2xhtml"]
+. Mallard to HTML
+
+[links topic .linklist groups="mal"]
+. Mallard Common
+
+[links topic .linklist groups="db2html db2xhtml"]
+. DocBook to HTML
+
+[links topic .linklist groups="db"]
+. DocBook Common
+
+[links topic .linklist groups="html ttml l10n color icons utils"]
+. Common
+
+[links topic .linklist groups="#first #default #last"]
+. Other
diff --git a/doc/yelp-xsl/static/templates.duck b/doc/yelp-xsl/static/templates.duck
new file mode 100644
index 00000000..cf7c49c9
--- /dev/null
+++ b/doc/yelp-xsl/static/templates.duck
@@ -0,0 +1,40 @@
+@ducktype/1.0
+
+= XSLT Templates
+  [guide]
+@link[guide >index]
+@title[link] Templates
+@title[link role=topic] XSLT Templates
+
+[links topic .linklist groups=mal2html]
+. Mallard to HTML
+
+[links topic .linklist groups=mal]
+. Mallard Common
+
+[links topic .linklist groups=db2html]
+. DocBook to HTML
+
+[links topic .linklist groups=db]
+. DocBook Common
+
+[links topic .linklist groups=html]
+. HTML Output
+
+[links topic .linklist groups=ttml]
+. TTML Utilities
+
+[links topic .linklist groups=l10n]
+. Localization
+
+[links topic .linklist groups=color]
+. Colors
+
+[links topic .linklist groups=icons]
+. Icons
+
+[links topic .linklist groups=utils]
+. Utilities
+
+[links topic .linklist groups=#first #default #last]
+. Other
diff --git a/doc/yelp-xsl/xsldoc-scan.xsl b/doc/yelp-xsl/xsldoc-scan.xsl
index f8158bb1..64ce9b76 100644
--- a/doc/yelp-xsl/xsldoc-scan.xsl
+++ b/doc/yelp-xsl/xsldoc-scan.xsl
@@ -1,7 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- -->
 <!--
-xsldoc-scan.xsl - Put more information in the output from xsldoc-scan.awk
-Copyright (C) 2006-2015 Shaun McCance <shaunm gnome org>
+Copyright (C) 2006-2018 Shaun McCance <shaunm gnome org>
 
 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
@@ -16,452 +15,640 @@ for more details.
 You should have received a copy of the GNU General Public License along
 with this program; if not, see <http://www.gnu.org/licenses/>.
 -->
-<!--
-This program is free software, but that doesn't mean you should use it.
-It's a hackish bit of awk and XSLT to do inline XSLT documentation with
-a simple syntax in comments.  I had originally tried to make a public
-inline documentation system for XSLT using embedded XML, but it just got
-very cumbersome.  XSLT should have been designed from the ground up with
-an inline documentation format.
-
-None of the existing inline documentation tools (gtk-doc, doxygen, etc.)
-really work well for XSLT, so I rolled my own simple comment-based tool.
-This tool is sufficient for producing the documentation I need, but I
-just don't have the time or inclination to make a robust system suitable
-for public use.
-
-You are, of course, free to use any of this.  If you do proliferate this
-hack, it is requested (though not required, that would be non-free) that
-you atone for your actions.  A good atonement would be contributing to
-free software.
--->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
-                xmlns:mal="http://projectmallard.org/1.0/";
                 xmlns:exsl="http://exslt.org/common";
                 xmlns:set="http://exslt.org/sets";
                 xmlns:str="http://exslt.org/strings";
-                xmlns:xsldoc="http://projects.gnome.org/yelp/xsldoc/";
-                xmlns="http://projectmallard.org/1.0/";
                 extension-element-prefixes="exsl"
-                exclude-result-prefixes="mal set xsldoc str"
+                exclude-result-prefixes="set str"
                 version="1.0">
 
+<xsl:output method="text"/>
+
 <xsl:param name="xsldoc.id"/>
-<xsl:param name="xsldoc.xslt_file"/>
-<xsl:variable name="xslt_file" select="document($xsldoc.xslt_file)/xsl:stylesheet"/>
 
-<xsl:template name="revision">
-  <xsl:param name="info" select="mal:info"/>
+<xsl:variable name="xsldoc.id.prefix">
   <xsl:choose>
-    <xsl:when test="$info/mal:revision">
-      <xsl:for-each select="$info/mal:revision">
-        <xsl:copy>
-          <xsl:if test="not(@status)">
-            <xsl:attribute name="status">
-              <xsl:text>incomplete</xsl:text>
-            </xsl:attribute>
-          </xsl:if>
-          <xsl:copy-of select="@*"/>
-        </xsl:copy>
-      </xsl:for-each>
+    <xsl:when test="contains($xsldoc.id, '-')">
+      <xsl:value-of select="substring-before($xsldoc.id, '-')"/>
     </xsl:when>
     <xsl:otherwise>
-      <revision version="0.0" date="1970-01-01" status="stub"/>
+      <xsl:value-of select="$xsldoc.id"/>
     </xsl:otherwise>
   </xsl:choose>
-</xsl:template>
+</xsl:variable>
 
-<xsl:template name="calls_templates">
-  <xsl:param name="node" select="."/>
-  <xsl:param name="page"/>
-  <xsl:param name="xslt_node"/>
-  <xsl:for-each select="$xslt_node">
-    <xsl:variable name="calls_templates">
-      <xsl:for-each select="set:distinct(.//xsl:call-template[
-                            not(@name = $xslt_node//xsl:template/@name) and
-                            not($page/processing-instruction('xslt-private')[string(.) = @name])
-                            ])">
-        <xsl:variable name="name" select="string(@name)"/>
-        <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $name])">
-          <link xref="{$name}"/>
-        </xsl:if>
-      </xsl:for-each>
+<xsl:template match="/xsl:stylesheet">
+  <xsl:for-each select="comment()">
+    <xsl:variable name="type">
+      <xsl:choose>
+        <xsl:when test="starts-with(., '!!')">
+          <xsl:text>stylesheet</xsl:text>
+        </xsl:when>
+        <xsl:when test="starts-with(., '**')">
+          <xsl:text>template</xsl:text>
+        </xsl:when>
+        <xsl:when test="starts-with(., '@@')">
+          <xsl:text>param</xsl:text>
+        </xsl:when>
+        <xsl:when test="starts-with(., '%%')">
+          <xsl:text>mode</xsl:text>
+        </xsl:when>
+        <xsl:when test="starts-with(., '++')">
+          <xsl:text>key</xsl:text>
+        </xsl:when>
+      </xsl:choose>
     </xsl:variable>
-    <xsl:variable name="calls_templates_nodes" select="exsl:node-set($calls_templates)/*"/>
-    <xsl:if test="count($calls_templates_nodes) > 0">
-      <list style="compact">
-        <title>Calls Templates</title>
-        <xsl:for-each select="$calls_templates_nodes">
-          <xsl:sort select="."/>
-          <xsl:if test="not(preceding-sibling::*[@xref = current()/@xref])">
-            <item><p><xsl:copy-of select="."/></p></item>
+    <xsl:if test="$type != ''">
+      <xsl:variable name="name">
+        <xsl:choose>
+          <xsl:when test="$type = 'stylesheet'">
+            <xsl:value-of select="$xsldoc.id"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="substring-before(substring-after(., '&#x0A;'), '&#x0A;')"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <exsl:document href="{$name}.duck" method="text">
+        <xsl:call-template name="xsldoc.body">
+          <xsl:with-param name="mode" select="'title'"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:with-param name="lines" select="substring-after(., '&#x0A;')"/>
+        </xsl:call-template>
+        <xsl:if test="$type = 'stylesheet'">
+          <xsl:text>&#x0A;[links topic groups=imports .linklist]&#x0A;. Imports Stylesheets&#x0A;</xsl:text>
+          <xsl:text>&#x0A;[links topic groups=includes .linklist]&#x0A;. Includes 
Stylesheets&#x0A;</xsl:text>
+          <xsl:text>&#x0A;[links topic groups=params .linklist]&#x0A;. Defines Parameters&#x0A;</xsl:text>
+          <xsl:text>&#x0A;[links topic groups=keys .linklist]&#x0A;. Defines Keys&#x0A;</xsl:text>
+          <xsl:text>&#x0A;[links topic groups=templates .linklist]&#x0A;. Defines Templates&#x0A;</xsl:text>
+          <xsl:text>&#x0A;[links topic groups=modes .linklist]&#x0A;. Defines Modes&#x0A;</xsl:text>
+          <!--
+              FIXME:
+              get stylesheet imports
+              sets params (not defined here)
+          -->
+          <!--
+              FIXME: make all of these follow passthrough?
+          -->
+          <xsl:call-template name="xsldoc.calls.params">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.keys">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.templates">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.modes">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.implements.templates">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$type = 'template'">
+          <xsl:variable name="template" select="/xsl:stylesheet/xsl:template[@name = $name]"/>
+          <xsl:if test="count($template) = 0">
+            <xsl:message>
+              <xsl:text>Missing template: </xsl:text>
+              <xsl:value-of select="$name"/>
+            </xsl:message>
           </xsl:if>
-        </xsl:for-each>
-      </list>
+          <!--
+              FIXME:
+              calls params
+          -->
+          <xsl:call-template name="xsldoc.calls.params">
+            <xsl:with-param name="node" select="/xsl:stylesheet"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.keys">
+            <xsl:with-param name="node" select="$template[1]"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.templates">
+            <xsl:with-param name="node" select="$template[1]"/>
+          </xsl:call-template>
+          <xsl:call-template name="xsldoc.calls.modes">
+            <xsl:with-param name="node" select="$template[1]"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$type = 'param'">
+          <xsl:variable name="param" select="/xsl:stylesheet/xsl:param[@name = $name]"/>
+          <xsl:if test="count($param) = 0">
+            <xsl:message>
+              <xsl:text>Missing param: </xsl:text>
+              <xsl:value-of select="$name"/>
+            </xsl:message>
+          </xsl:if>
+          <xsl:if test="$param/@select">
+            <xsl:text>&#x0A;[synopsis]&#x0A;</xsl:text>
+            <xsl:text>[terms]&#x0A;</xsl:text>
+            <xsl:text>- $code(</xsl:text>
+            <xsl:value-of select="$name"/>
+            <xsl:text>)&#x0A;</xsl:text>
+            <xsl:text>* $code(</xsl:text>
+            <xsl:value-of select="$param/@select"/>
+            <xsl:text>)&#x0A;</xsl:text>
+          </xsl:if>
+        </xsl:if>
+        <!--
+            FIXME:
+            mode
+            key
+            param (default)
+        -->
+      </exsl:document>
     </xsl:if>
   </xsl:for-each>
 </xsl:template>
 
-<xsl:template name="calls_modes">
+<xsl:template name="xsldoc.body">
+  <xsl:param name="mode"/>
+  <xsl:param name="type"/>
+  <xsl:param name="lines"/>
+  <xsl:variable name="blank" select="normalize-space(exsl:node-set(str:split($lines, '&#x0A;'))[1]) = ''
+                                     or starts-with($lines, '&#x0A;')"/>
+  <xsl:choose>
+    <xsl:when test="$lines = ''"/>
+    <xsl:when test="$mode = 'title'">
+      <!--
+          <xsl:text>@ducktype/1.0 xsl/1.0&#x0A;&#x0A;</xsl:text>
+      -->
+      <xsl:text>@namespace xsl FIXME&#x0A;&#x0A;</xsl:text>
+
+      <xsl:text>= </xsl:text>
+      <xsl:value-of select="substring-before($lines, '&#x0A;')"/>
+      <xsl:choose>
+        <xsl:when test="$type = 'stylesheet'">
+          <xsl:text>&#x0A;  [guide .xslt-stylesheet]&#x0A;</xsl:text>
+          <xsl:text>@link[guide >stylesheets group=</xsl:text>
+          <xsl:value-of select="$xsldoc.id.prefix"/>
+          <xsl:text>]&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.imports.includes.stylesheets"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#x0A;  [.xslt-</xsl:text>
+          <xsl:value-of select="$type"/>
+          <xsl:text>]&#x0A;</xsl:text>
+          <xsl:text>@link[guide ></xsl:text>
+          <xsl:value-of select="$xsldoc.id"/>
+          <xsl:text> group=</xsl:text>
+          <xsl:value-of select="$type"/>
+          <xsl:text>s]&#x0A;</xsl:text>
+          <xsl:text>@link[guide ></xsl:text>
+          <xsl:value-of select="$type"/>
+          <xsl:text>s group=</xsl:text>
+          <xsl:value-of select="$xsldoc.id.prefix"/>
+          <xsl:text>]&#x0A;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:call-template name="xsldoc.body">
+        <xsl:with-param name="mode" select="'desc'"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$mode = 'desc'">
+      <xsl:choose>
+        <xsl:when test="$blank or starts-with($lines, '@')">
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'info'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="$lines"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>@desc </xsl:text>
+          <xsl:call-template name="xsldoc.inline">
+            <xsl:with-param name="line" select="substring-before($lines, '&#x0A;')"/>
+          </xsl:call-template>
+          <xsl:text>&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'info'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$mode = 'info'">
+      <xsl:choose>
+        <xsl:when test="starts-with($lines, '@xsl:stub')">
+          <xsl:text>@link[guide >stubs group=</xsl:text>
+          <xsl:value-of select="$xsldoc.id.prefix"/>
+          <xsl:text>]&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'body'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="starts-with($lines, '@')">
+          <xsl:value-of select="substring-before($lines, '&#x0A;')"/>
+          <xsl:text>&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'body'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'body'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="$lines"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$mode = 'params'">
+      <xsl:choose>
+        <!-- FIXME: defaults would be nice -->
+        <xsl:when test="starts-with($lines, '$')">
+          <xsl:variable name="line" select="substring-before($lines, '&#x0A;')"/>
+          <xsl:text>- $code(</xsl:text>
+          <xsl:value-of select="normalize-space(substring-before($line, ':'))"/>
+          <xsl:text>)&#x0A;</xsl:text>
+          <xsl:text>* </xsl:text>
+          <xsl:call-template name="xsldoc.inline">
+            <xsl:with-param name="line" select="normalize-space(substring-after($line, ':'))"/>
+          </xsl:call-template>
+          <xsl:text>&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'params'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'body'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="$lines"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="starts-with($lines, '[xsl:params]')">
+          <xsl:text>[synopsis]&#x0A;. Parameters&#x0A;[terms]&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'params'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="xsldoc.inline">
+            <xsl:with-param name="line" select="substring-before($lines, '&#x0A;')"/>
+          </xsl:call-template>
+          <xsl:text>&#x0A;</xsl:text>
+          <xsl:call-template name="xsldoc.body">
+            <xsl:with-param name="mode" select="'body'"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:with-param name="lines" select="substring-after($lines, '&#x0A;')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xsldoc.inline">
+  <xsl:param name="line" select="''"/>
+  <xsl:variable name="char" select="substring($line, 1, 1)"/>
+  <xsl:variable name="rest" select="substring($line, 2)"/>
+  <xsl:choose>
+    <xsl:when test="$line = ''"/>
+    <xsl:when test="$char = '{'">
+      <xsl:variable name="var" select="substring-before($rest, '}')"/>
+      <xsl:variable name="aft" select="substring-after($rest, '}')"/>
+      <xsl:text>$code[></xsl:text>
+      <xsl:value-of select="$var"/>
+      <xsl:text>](</xsl:text>
+      <xsl:value-of select="$var"/>
+      <xsl:text>)</xsl:text>
+      <xsl:call-template name="xsldoc.inline">
+        <xsl:with-param name="line" select="$aft"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$char = '`'">
+      <xsl:variable name="sys" select="substring-before($rest, '`')"/>
+      <xsl:variable name="aft" select="substring-after($rest, '`')"/>
+      <xsl:text>$sys(</xsl:text>
+      <xsl:value-of select="$sys"/>
+      <xsl:text>)</xsl:text>
+      <xsl:call-template name="xsldoc.inline">
+        <xsl:with-param name="line" select="$aft"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$char = '$'">
+      <xsl:variable name="param">
+        <xsl:call-template name="xsldoc.getword">
+          <xsl:with-param name="string" select="$rest"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="string-length($param) = 0">
+          <xsl:text>$</xsl:text>
+          <xsl:call-template name="xsldoc.inline">
+            <xsl:with-param name="line" select="$rest"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="param_">
+            <xsl:choose>
+              <xsl:when test="substring($param, string-length($param)) = '.'">
+                <xsl:value-of select="substring($param, 1, string-length($param) - 1)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$param"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:variable>
+          <xsl:text>$code($</xsl:text>
+          <xsl:value-of select="$param_"/>
+          <xsl:text>)</xsl:text>
+          <xsl:call-template name="xsldoc.inline">
+            <xsl:with-param name="line" select="substring($rest, string-length($param_) + 1)"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$char"/>
+      <xsl:call-template name="xsldoc.inline">
+        <xsl:with-param name="line" select="$rest"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xsldoc.imports.includes.stylesheets">
+  <!-- FIXME: split this in two, follow import for each -->
+  <xsl:param name="node" select="/*"/>
+  <xsl:for-each select="$node//xsl:import">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:choose>
+      <xsl:when test="processing-instruction('xsldoc.passthrough')">
+        <xsl:call-template name="xsldoc.imports.includes.stylesheets">
+          <xsl:with-param name="node" select="document(@href, $node)"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>@link[topic ></xsl:text>
+        <xsl:value-of select="$base"/>
+        <xsl:text> group=imports]&#x0A;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+  <xsl:for-each select="$node//xsl:include">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:text>@link[topic ></xsl:text>
+    <xsl:value-of select="$base"/>
+    <xsl:text> group=includes]&#x0A;</xsl:text>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="xsldoc.calls.templates">
   <xsl:param name="node" select="."/>
-  <xsl:param name="page"/>
-  <xsl:param name="xslt_node"/>
-  <xsl:variable name="calls_modes">
-    <xsl:for-each select="$xslt_node">
-      <xsl:for-each select="set:distinct(.//xsl:apply-templates/@mode)">
-        <xsl:variable name="mode" select="string(.)"/>
-        <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $mode])">
-          <xsl:if test="not($node//mal:section[@style = 'xslt-mode' and mal:title = $mode])">
-            <link xref="{$mode}"/>
-          </xsl:if>
-        </xsl:if>
-      </xsl:for-each>
-    </xsl:for-each>
+  <xsl:variable name="templates">
+    <xsl:call-template name="xsldoc.calls.templates.get">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
   </xsl:variable>
-  <xsl:variable name="calls_modes_nodes" select="exsl:node-set($calls_modes)/*"/>
-  <xsl:if test="count($calls_modes_nodes) > 0">
-    <list style="compact">
-      <title>Calls Modes</title>
-      <xsl:for-each select="$calls_modes_nodes">
-        <xsl:sort select="@xref"/>
-        <item><p><xsl:copy-of select="."/></p></item>
-      </xsl:for-each>
-    </list>
+  <xsl:if test="normalize-space($templates) != ''">
+    <xsl:text>&#x0A;[list .compact]&#x0A;</xsl:text>
+    <xsl:text>. Calls Templates&#x0A;</xsl:text>
+    <xsl:for-each select="set:distinct(str:split($templates))">
+      <xsl:sort select="."/>
+      <xsl:if test="not(preceding-sibling::*[@xref = current()/@xref])">
+        <xsl:text>* $link[></xsl:text>
+        <xsl:value-of select="."/>
+        <xsl:text>]&#x0A;</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
   </xsl:if>
 </xsl:template>
 
-<xsl:template name="calls_keys">
+<xsl:template name="xsldoc.calls.templates.get">
   <xsl:param name="node" select="."/>
-  <xsl:param name="page"/>
-  <xsl:param name="xslt_node"/>
-  <xsl:variable name="calls_keys">
-    <xsl:for-each select="$xslt_node//xsl:variable/@select   |
-                          $xslt_node//xsl:param/@select      |
-                          $xslt_node//xsl:with-param/@select |
-                          $xslt_node//xsl:for-each/@select   |
-                          $xslt_node//xsl:sort/@select       |
-                          $xslt_node//xsl:value-of/@select   |
-                          $xslt_node//xsl:if/@test           | 
-                          $xslt_node//xsl:when/@test         ">
-      <xsl:variable name="xpath_node" select="."/>
-      <xsl:if test="contains($xpath_node, 'key(')">
-        <!-- libxslt doesn't str:split when the string starts with the split arg -->
-        <xsl:for-each select="str:split(concat(' ', $xpath_node), 'key(')[position() > 1]">
-          <xsl:for-each select="str:tokenize(., concat('&quot;', &quot;&apos;&quot;))[1]">
-            <key><xsl:value-of select="."/></key>
-          </xsl:for-each>
-        </xsl:for-each>
+  <xsl:for-each select="$node//xsl:call-template[
+                        not(@name = $node/self::xsl:stylesheet/xsl:template/@name) and
+                        not(starts-with(@name, '_'))
+                        ]">
+    <xsl:value-of select="@name"/>
+    <xsl:text> </xsl:text>
+  </xsl:for-each>
+  <xsl:for-each select="$node/self::xsl:stylesheet/xsl:import">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:if test="processing-instruction('xsldoc.passthrough')">
+      <xsl:call-template name="xsldoc.calls.templates.get">
+        <xsl:with-param name="node" select="document(@href, $node)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="xsldoc.calls.modes">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="modes">
+    <xsl:call-template name="xsldoc.calls.modes.get">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:if test="normalize-space($modes) != ''">
+    <xsl:text>&#x0A;[list .compact]&#x0A;</xsl:text>
+    <xsl:text>. Calls Modes&#x0A;</xsl:text>
+    <xsl:for-each select="set:distinct(str:split($modes))">
+      <xsl:sort select="."/>
+      <xsl:if test="not(preceding-sibling::*[@xref = current()/@xref])">
+        <xsl:text>* $link[></xsl:text>
+        <xsl:value-of select="."/>
+        <xsl:text>]&#x0A;</xsl:text>
       </xsl:if>
     </xsl:for-each>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="xsldoc.calls.modes.get">
+  <xsl:param name="node" select="."/>
+  <xsl:for-each select="$node//xsl:apply-templates[@mode]">
+    <xsl:value-of select="@mode"/>
+    <xsl:text> </xsl:text>
+  </xsl:for-each>
+  <xsl:for-each select="$node/self::xsl:stylesheet/xsl:import">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:if test="processing-instruction('xsldoc.passthrough')">
+      <xsl:call-template name="xsldoc.calls.modes.get">
+        <xsl:with-param name="node" select="document(@href, $node)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="xsldoc.calls.keys">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="keys">
+    <xsl:call-template name="xsldoc.calls.keys.get">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
   </xsl:variable>
-  <xsl:variable name="calls_keys_nodes" select="exsl:node-set($calls_keys)/*"/>
-  <xsl:if test="count($calls_keys_nodes) > 0">
-    <list style="compact">
-      <title>Calls Keys</title>
-      <xsl:for-each select="set:distinct($calls_keys_nodes)">
-        <xsl:sort select="."/>
-        <item><p><link xref="{.}"/></p></item>
-      </xsl:for-each>
-    </list>
+  <xsl:if test="normalize-space($keys) != ''">
+    <xsl:text>&#x0A;[list .compact]&#x0A;</xsl:text>
+    <xsl:text>. Calls Keys&#x0A;</xsl:text>
+    <xsl:for-each select="set:distinct(str:split($keys))">
+      <xsl:sort select="."/>
+      <xsl:if test="not(preceding-sibling::*[@xref = current()/@xref])">
+        <xsl:text>* $link[></xsl:text>
+        <xsl:value-of select="."/>
+        <xsl:text>]&#x0A;</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
   </xsl:if>
 </xsl:template>
 
-<xsl:template name="calls_params">
+<xsl:template name="xsldoc.calls.keys.get">
   <xsl:param name="node" select="."/>
-  <xsl:param name="page"/>
-  <xsl:param name="xslt_node"/>
-  <xsl:variable name="calls_params">
-    <xsl:for-each select="$xslt_node//xsl:variable/@select   |
-                          $xslt_node//xsl:param/@select      |
-                          $xslt_node//xsl:with-param/@select |
-                          $xslt_node//xsl:for-each/@select   |
-                          $xslt_node//xsl:sort/@select       |
-                          $xslt_node//xsl:value-of/@select   |
-                          $xslt_node//xsl:if/@test           | 
-                          $xslt_node//xsl:when/@test         ">
-      <xsl:variable name="xpath_node" select="."/>
-      <xsl:if test="contains($xpath_node, '$')">
-        <!-- libxslt doesn't str:split when the string starts with the split arg -->
-        <xsl:for-each select="str:split(concat(' ', $xpath_node), '$')[position() > 1]">
-          <xsl:variable name="paramname">
-            <xsl:call-template name="read_chars">
-              <xsl:with-param name="string" select="."/>
-            </xsl:call-template>
-          </xsl:variable>
-          <xsl:if test="not($xpath_node/../ancestor-or-self::*/preceding-sibling::xsl:param
-                              [not(parent::xsl:stylesheet)][@name = $paramname]
-                         or $xpath_node/../ancestor-or-self::*/preceding-sibling::xsl:variable
-                              [@name = $paramname]
-                         or $xpath_node/ancestor::xsl:stylesheet/xsl:variable
-                              [@name = $paramname]
-                        )">
-            <param><xsl:value-of select="$paramname"/></param>
-          </xsl:if>
+  <xsl:for-each select="$node//xsl:variable/@select   |
+                        $node//xsl:param/@select      |
+                        $node//xsl:with-param/@select |
+                        $node//xsl:for-each/@select   |
+                        $node//xsl:sort/@select       |
+                        $node//xsl:value-of/@select   |
+                        $node//xsl:if/@test           | 
+                        $node//xsl:when/@test         ">
+    <xsl:variable name="xpath_node" select="."/>
+    <xsl:if test="contains($xpath_node, 'key(')">
+      <!-- libxslt doesn't str:split when the string starts with the split arg -->
+      <xsl:for-each select="str:split(concat(' ', $xpath_node), 'key(')[position() > 1]">
+        <xsl:for-each select="str:tokenize(., concat('&quot;', &quot;&apos;&quot;))[1]">
+          <xsl:value-of select="."/>
+          <xsl:text> </xsl:text>
         </xsl:for-each>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:for-each>
+  <xsl:for-each select="$node/self::xsl:stylesheet/xsl:import">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:if test="processing-instruction('xsldoc.passthrough')">
+      <xsl:call-template name="xsldoc.calls.keys.get">
+        <xsl:with-param name="node" select="document(@href, $node)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="xsldoc.calls.params">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="params">
+    <xsl:call-template name="xsldoc.calls.params.get">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:if test="normalize-space($params) != ''">
+    <xsl:text>&#x0A;[list .compact]&#x0A;</xsl:text>
+    <xsl:text>. Calls Parameters&#x0A;</xsl:text>
+    <xsl:for-each select="set:distinct(str:split($params))">
+      <xsl:sort select="."/>
+      <xsl:if test="not(preceding-sibling::*[@xref = current()/@xref])">
+        <xsl:text>* $link[></xsl:text>
+        <xsl:value-of select="."/>
+        <xsl:text>]&#x0A;</xsl:text>
       </xsl:if>
     </xsl:for-each>
-  </xsl:variable>
-  <xsl:variable name="calls_params_nodes" select="exsl:node-set($calls_params)/*"/>
-  <xsl:if test="count($calls_params_nodes) > 0">
-    <list style="compact">
-      <title>Calls Parameters</title>
-      <xsl:for-each select="set:distinct($calls_params_nodes)">
-        <xsl:sort select="."/>
-        <item><p><link xref="{.}"/></p></item>
-      </xsl:for-each>
-    </list>
   </xsl:if>
 </xsl:template>
 
-<xsl:template name="implements_templates">
+<xsl:template name="xsldoc.calls.params.get">
+  <xsl:param name="node" select="."/>
+  <xsl:for-each select="$node//xsl:variable/@select   |
+                        $node//xsl:param/@select      |
+                        $node//xsl:with-param/@select |
+                        $node//xsl:for-each/@select   |
+                        $node//xsl:sort/@select       |
+                        $node//xsl:value-of/@select   |
+                        $node//xsl:if/@test           | 
+                        $node//xsl:when/@test         ">
+    <xsl:variable name="xpath_node" select="."/>
+    <xsl:if test="contains($xpath_node, '$')">
+      <!-- libxslt doesn't str:split when the string starts with the split arg -->
+      <xsl:for-each select="str:split(concat(' ', $xpath_node), '$')[position() > 1]">
+        <xsl:variable name="paramname">
+          <xsl:call-template name="xsldoc.getword">
+            <xsl:with-param name="string" select="."/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:if test="not($xpath_node/../ancestor-or-self::*/preceding-sibling::xsl:param
+                      [not(parent::xsl:stylesheet)][@name = $paramname]
+                      or $xpath_node/../ancestor-or-self::*/preceding-sibling::xsl:variable
+                      [@name = $paramname]
+                      or $xpath_node/ancestor::xsl:stylesheet/xsl:variable
+                      [@name = $paramname]
+                      )">
+          <xsl:value-of select="$paramname"/>
+          <xsl:text> </xsl:text>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:for-each>
+  <xsl:for-each select="$node/self::xsl:stylesheet/xsl:import">
+    <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
+    <xsl:if test="processing-instruction('xsldoc.passthrough')">
+      <xsl:call-template name="xsldoc.calls.params.get">
+        <xsl:with-param name="node" select="document(@href, $node)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="xsldoc.implements.templates">
   <xsl:param name="node" select="."/>
-  <xsl:param name="page"/>
-  <xsl:param name="xslt_node"/>
   <xsl:variable name="impls">
-    <xsl:for-each select="$xslt_node/xsl:template[@match]">
+    <xsl:for-each select="$node/xsl:template[@match]">
       <xsl:variable name="mode" select="@mode"/>
-      <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $mode])">
-        <template mode="{$mode}" match="{@match}"/>
-      </xsl:if>
+      <template mode="{$mode}" match="{@match}"/>
     </xsl:for-each>
   </xsl:variable>
   <xsl:variable name="impls_nodes" select="exsl:node-set($impls)/*"/>
   <xsl:if test="count($impls_nodes) != 0">
-    <table>
-      <title>Implements Templates</title>
-      <thead>
-        <tr>
-          <th><p>Mode</p></th>
-          <th><p>Match</p></th>
-        </tr>
-      </thead>
-      <tbody>
-        <xsl:for-each select="$impls_nodes">
-          <xsl:sort select="@mode"/>
-          <tr>
-            <td><p>
-              <xsl:choose>
-                <xsl:when test="@mode != ''">
-                  <link xref="{@mode}">
-                    <xsl:value-of select="@mode"/>
-                  </link>
-                </xsl:when>
-              </xsl:choose>
-            </p></td>
-            <td><p>
-              <code><xsl:value-of select="@match"/></code>
-            </p></td>
-          </tr>
-        </xsl:for-each>
-      </tbody>
-    </table>
+    <xsl:text>&#x0A;[table rules=rows]&#x0A;. Implements Templates&#x0A;</xsl:text>
+    <xsl:text>[thead]&#x0A;[tr]&#x0A;- Mode&#x0a;- Match&#x0A;[tbody]&#x0A;</xsl:text>
+    <xsl:for-each select="$impls_nodes">
+      <xsl:sort select="@mode"/>
+      <xsl:text>[tr]&#x0A;* </xsl:text>
+      <xsl:choose>
+        <xsl:when test="@mode != ''">
+          <xsl:text>$code[></xsl:text>
+          <xsl:value-of select="@mode"/>
+          <xsl:text>](</xsl:text>
+          <xsl:value-of select="@mode"/>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>&#x0A;* $code(</xsl:text>
+      <xsl:value-of select="@match"/>
+      <xsl:text>)&#x0A;</xsl:text>
+    </xsl:for-each>
   </xsl:if>
 </xsl:template>
 
-<xsl:template name="read_chars">
+<xsl:template name="xsldoc.getword">
   <xsl:param name="string" select="''"/>
   <xsl:if test="$string != ''">
     <xsl:variable name="char" select="substring($string, 1, 1)"/>
     <xsl:if test="contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_', $char)">
       <xsl:value-of select="$char"/>
-      <xsl:call-template name="read_chars">
+      <xsl:call-template name="xsldoc.getword">
         <xsl:with-param name="string" select="substring($string, 2)"/>
       </xsl:call-template>
     </xsl:if>
   </xsl:if>
 </xsl:template>
 
-<xsl:template match="mal:page">
-  <xsl:variable name="page" select="."/>
-  <page id="{$xsldoc.id}" type="guide" style="xslt-stylesheet">
-    <xsl:copy-of select="processing-instruction()"/>
-    <xsl:variable name="prefix" select="str:tokenize($xsldoc.id, '.-_')[1]"/>
-    <info>
-      <link type="guide" xref="stylesheets" group="{$prefix}"/>
-      <xsl:if test="string(mal:desc) != ''">
-        <xsl:copy-of select="mal:desc"/>
-      </xsl:if>
-      <xsl:call-template name="revision"/>
-      <xsl:copy-of select="mal:info/*[not(self::mal:desc) and not(self::mal:revision)]"/>
-      <!-- xslt-includes -->
-      <xsl:for-each select="$xslt_file//xsl:include">
-        <xsl:variable name="base" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
-        <xsl:choose>
-          <xsl:when test="$page/processing-instruction('xslt-private')[string(.) = $base]"/>
-          <xsl:when test="processing-instruction('pass')">
-            <xsl:for-each select="document(@href, /)//xsl:include">
-              <xsl:variable name="subbase" select="substring-before(str:split(@href, '/')[last()], '.xsl')"/>
-              <xsl:if test="not(/xsl:stylesheet/comment()[normalize-space(.) = concat('#! ', $subbase)])">
-                <link type="topic" xref="{$subbase}" group="stylesheets"/>
-              </xsl:if>
-            </xsl:for-each>
-          </xsl:when>
-          <xsl:otherwise>
-            <link type="topic" xref="{$base}" group="stylesheets"/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:for-each>
-      <!-- xslt-defines-template -->
-      <xsl:for-each select="$xslt_file/xsl:template/@name">
-        <xsl:variable name="name" select="string(.)"/>
-        <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $name])">
-          <link type="xslt-defines-template" xref="{$name}"/>
-        </xsl:if>
-      </xsl:for-each>
-      <!-- xslt-implements-mode -->
-      <xsl:for-each select="set:distinct($xslt_file//xsl:template/@mode)">
-        <xsl:variable name="mode" select="string(.)"/>
-        <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $mode])">
-          <link type="xslt-implements-mode" xref="{$mode}"/>
-        </xsl:if>
-      </xsl:for-each>
-      <!-- xslt-defines-param -->
-      <xsl:for-each select="$xslt_file/xsl:param/@name">
-        <xsl:variable name="name" select="string(.)"/>
-        <xsl:if test="not($page/processing-instruction('xslt-private')[string(.) = $name])">
-          <link type="xslt-defines-param" xref="{$name}"/>
-        </xsl:if>
-      </xsl:for-each>
-    </info>
-    <xsl:copy-of select="mal:title"/>
-    <xsl:if test="string(mal:info/mal:desc) != ''">
-      <p>
-        <xsl:copy-of select="mal:info/mal:desc/node()"/>
-      </p>
-    </xsl:if>
-    <xsl:apply-templates select="*"/>
-    <links type="topic" groups="stylesheets" style="linklist">
-      <title>Stylesheets</title>
-    </links>
-    <links type="topic" groups="parameters" style="linklist">
-      <title>Parameters</title>
-    </links>
-    <links type="topic" groups="modes" style="linklist">
-      <title>Modes</title>
-    </links>
-    <links type="topic" groups="templates" style="linklist">
-      <title>Templates</title>
-    </links>
-    <links type="topic" groups="keys" style="linklist">
-      <title>Keys</title>
-    </links>
-    <xsl:variable name="requires" select="$page/mal:info/mal:link[@type = 'xslt-requires']"/>
-    <xsl:if test="count($requires) > 0">
-      <list style="compact">
-        <title>Requires Stylesheets</title>
-        <xsl:for-each select="$requires">
-          <xsl:sort select="@xref"/>
-          <item><p><link xref="{@xref}"/></p></item>
-        </xsl:for-each>
-      </list>
-    </xsl:if>
-    <xsl:call-template name="calls_templates">
-      <xsl:with-param name="page" select="$page"/>
-      <xsl:with-param name="xslt_node" select="$xslt_file"/>
-    </xsl:call-template>
-    <xsl:call-template name="calls_modes">
-      <xsl:with-param name="page" select="$page"/>
-      <xsl:with-param name="xslt_node" select="$xslt_file"/>
-    </xsl:call-template>
-    <xsl:call-template name="calls_keys">
-      <xsl:with-param name="page" select="$page"/>
-      <xsl:with-param name="xslt_node" select="$xslt_file"/>
-    </xsl:call-template>
-    <xsl:call-template name="calls_params">
-      <xsl:with-param name="page" select="$page"/>
-      <xsl:with-param name="xslt_node" select="$xslt_file"/>
-    </xsl:call-template>
-    <xsl:call-template name="implements_templates">
-      <xsl:with-param name="page" select="$page"/>
-      <xsl:with-param name="xslt_node" select="$xslt_file"/>
-    </xsl:call-template>
-  </page>
-</xsl:template>
-
-<xsl:template match="mal:info"/>
-
-<xsl:template match="mal:title"/>
-
-<xsl:template match="mal:section">
-  <xsl:variable name="type">
-    <xsl:choose>
-      <xsl:when test="@style = 'xslt-template'">
-        <xsl:text>templates</xsl:text>
-      </xsl:when>
-      <xsl:when test="@style = 'xslt-key'">
-        <xsl:text>keys</xsl:text>
-      </xsl:when>
-      <xsl:when test="@style = 'xslt-mode'">
-        <xsl:text>modes</xsl:text>
-      </xsl:when>
-      <xsl:when test="@style = 'xslt-param'">
-        <xsl:text>parameters</xsl:text>
-      </xsl:when>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:variable name="id">
-    <xsl:value-of select="mal:title"/>
-  </xsl:variable>
-  <exsl:document href="{$id}.page">
-    <page id="{$id}" type="topic" style="{@style}">
-      <xsl:variable name="prefix" select="str:tokenize(mal:title, '.-_')[1]"/>
-      <info>
-        <link type="guide" xref="{$xsldoc.id}" group="{$type}"/>
-        <link type="guide" xref="{$type}" group="{$prefix}"/>
-        <xsl:if test="count(mal:info/xsldoc:stub) > 0">
-          <link type="guide" xref="stubs" group="{$prefix}"/>
-        </xsl:if>
-        <xsl:call-template name="revision"/>
-        <xsl:copy-of select="mal:info/*[not(self::mal:revision)]"/>
-      </info>
-      <xsl:copy-of select="mal:title"/>
-      <xsl:if test="string(mal:info/mal:desc) != ''">
-        <p>
-          <xsl:copy-of select="mal:info/mal:desc/node()"/>
-        </p>
-      </xsl:if>
-      <xsl:if test="$type = 'templates'">
-        <xsl:if test="count(mal:info/xsldoc:stub) > 0">
-          <note>
-            <p>This template is a stub. Customizations may override it for
-            additional functionality.</p>
-          </note>
-        </xsl:if>
-      </xsl:if>
-      <xsl:apply-templates/>
-      <xsl:if test="$type = 'templates'">
-        <xsl:variable name="title" select="mal:title"/>
-        <xsl:variable name="xslt_node" select="$xslt_file//xsl:template[@name = $title]"/>
-        <xsl:call-template name="calls_templates">
-          <xsl:with-param name="node" select="."/>
-          <xsl:with-param name="page" select="ancestor::mal:page"/>
-          <xsl:with-param name="xslt_node" select="$xslt_node"/>
-        </xsl:call-template>
-        <xsl:call-template name="calls_modes">
-          <xsl:with-param name="node" select="."/>
-          <xsl:with-param name="page" select="ancestor::mal:page"/>
-          <xsl:with-param name="xslt_node" select="$xslt_node"/>
-        </xsl:call-template>
-        <xsl:call-template name="calls_keys">
-          <xsl:with-param name="node" select="."/>
-          <xsl:with-param name="page" select="ancestor::mal:page"/>
-          <xsl:with-param name="xslt_node" select="$xslt_node"/>
-        </xsl:call-template>
-        <xsl:call-template name="calls_params">
-          <xsl:with-param name="node" select="."/>
-          <xsl:with-param name="page" select="ancestor::mal:page"/>
-          <xsl:with-param name="xslt_node" select="$xslt_node"/>
-        </xsl:call-template>
-      </xsl:if>
-    </page>
-  </exsl:document>
-</xsl:template>
-
-<xsl:template match="processing-instruction()"/>
-
-<xsl:template match="*">
-  <xsl:copy-of select="."/>
-</xsl:template>
-
 </xsl:stylesheet>
diff --git a/xslt/common/color.xsl b/xslt/common/color.xsl
index 197c96de..c3809e24 100644
--- a/xslt/common/color.xsl
+++ b/xslt/common/color.xsl
@@ -22,10 +22,10 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Colors
 Common named colors and color utilities for output styling.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This stylesheet provides a common interface to specify custom colors for
-transformations to presentation-oreinted formats.  This allows similar
+transformations to presentation-oreinted formats. This allows similar
 output for different types of input documents.
 
 This stylesheet also provides a number of templates for manipulating colors
@@ -36,7 +36,9 @@ and extracting information about colors.
 <!--**==========================================================================
 color.hex2dec
 Convert a hexidecimal number to decimal.
-:Revision: version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
 $hex: The hexidecimal number to convert to decimal.
 
 This template converts a hexidecimal number to decimal. It's useful for getting
@@ -75,12 +77,14 @@ the numeric values of color components in a hexidecimal color code.
 <!--**==========================================================================
 color.r
 Extract the red component of a color.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$color: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$color: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template extracts the red portion of a color, returning a number between
 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
-colors specified with #{rgb()}, and colors specified with #{rgba()}. It does
+colors specified with `rgb()`, and colors specified with `rgba()`. It does
 not accept HSL or named HTML colors.
 -->
 <xsl:template name="color.r">
@@ -106,12 +110,14 @@ not accept HSL or named HTML colors.
 <!--**==========================================================================
 color.g
 Extract the green component of a color.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$color: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$color: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template extracts the green portion of a color, returning a number between
 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
-colors specified with #{rgb()}, and colors specified with #{rgba()}. It does
+colors specified with `rgb()`, and colors specified with `rgba()`. It does
 not accept HSL or named HTML colors.
 -->
 <xsl:template name="color.g">
@@ -137,12 +143,14 @@ not accept HSL or named HTML colors.
 <!--**==========================================================================
 color.b
 Extract the blue component of a color.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$color: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$color: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template extracts the blue portion of a color, returning a number between
 0 and 255. It accepts six-digit and three-digit hexidecimal color codes,
-colors specified with #{rgb()}, and colors specified with #{rgba()}. It does
+colors specified with `rgb()`, and colors specified with `rgba()`. It does
 not accept HSL or named HTML colors.
 -->
 <xsl:template name="color.b">
@@ -175,14 +183,16 @@ not accept HSL or named HTML colors.
 <!--**==========================================================================
 color.a
 Extract the alpha value of a color.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$color: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$color: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template extracts the alpha, or opacity level, of a color. It returns a
 number between 0.0 and 1.0. It accepts six-digit and three-digit hexidecimal
-color codes, colors specified with #{rgb()}, and colors specified with
-#{rgba()}. It does not accept HSL or named HTML colors. For colors specified
-with anything other than #{rgba()}, it always returns 1.0.
+color codes, colors specified with `rgb()`, and colors specified with
+`rgba()`. It does not accept HSL or named HTML colors. For colors specified
+with anything other than `rgba()`, it always returns 1.0.
 -->
 <xsl:template name="color.a">
   <xsl:param name="color"/>
@@ -201,17 +211,19 @@ with anything other than #{rgba()}, it always returns 1.0.
 <!--**==========================================================================
 color.rl
 Get the relative luminance of a color.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$color: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$color: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template calculates the relative luminance of a color, returning a number
 between 0.0 and 1.0. The relative luminance is used when calculating color
 contrast. The relative luminance algorithm is defined by the WCAG:
 
-http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
+$link[>>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef]
 
 This template accepts six-digit and three-digit hexidecimal color codes, colors
-specified with #{rgb()}, and colors specified with #{rgba()}. It does not accept
+specified with `rgb()`, and colors specified with `rgba()`. It does not accept
 HSL or named HTML colors.
 -->
 <xsl:template name="color.rl">
@@ -271,18 +283,20 @@ HSL or named HTML colors.
 <!--**==========================================================================
 color.contrast
 Get the contrast between two colors.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$bg: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
-$fg: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$bg: A color specified in hexidecimal, `rgb()`, or `rgba()`.
+$fg: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 
 This template calculates the contrast ratio between colors. The contrast ratio
 is a number between 1 and 21. The algorithm is defined by the WCAG:
 
-http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
+$link[>>http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef]
 
-This template calls *{color.rl} to get the relative luminance of ${bg} and ${fg}.
+This template calls {color.rl} to get the relative luminance of $bg and $fg.
 It accepts six-digit and three-digit hexidecimal color codes, colors specified
-with #{rgb()}, and colors specified with #{rgba()}. It does not accept HSL or
+with `rgb()`, and colors specified with `rgba()`. It does not accept HSL or
 named HTML colors. Note that it does not take the alpha value into account when
 calculating the contrast ratio. Semi-transparent colors will have a lower
 actual contrast ratio than what is reported by this template.
@@ -317,28 +331,30 @@ ratio of at least 3.0 for large-scale text.
 <!--**==========================================================================
 color.blend
 Blend two colors together at a specified mix level.
-:Revision: version="3.28" date="2016-01-03" status="final"
-$bg: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
-$fg: A color specified in hexidecimal, #{rgb()}, or #{rgba()}.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
+$bg: A color specified in hexidecimal, `rgb()`, or `rgba()`.
+$fg: A color specified in hexidecimal, `rgb()`, or `rgba()`.
 $mix: The mix level, between 0.0 and 1.0.
 
-This template calculates a color by selecting a midpoint between ${bg} and
-${fg}, where the ${mix} parameter specifies how far to move from ${bg} to
-${fg}. For opaque colors, setting ${mix} to 0.0 will result in ${bg}, and
-setting ${mix} to 1.0 will result in ${fg}.
+This template calculates a color by selecting a midpoint between $bg and
+$fg, where the $mix parameter specifies how far to move from $bg to $fg
+For opaque colors, setting $mix to 0.0 will result in $bg, and setting
+$mix to 1.0 will result in $fg.
 
-This template takes the alpha values of ${bg} and ${fg} into account, so
-that specifying 1.0 for ${mix} will result in a color that is the result
-of overlaying ${fg} on top of ${bg}. In effect, ${mix} acts as a multiplier
+This template takes the alpha values of $bg and $fg into account, so
+that specifying 1.0 for $mix will result in a color that is the result
+of overlaying $fg on top of $bg. In effect, $mix acts as a multiplier
 on the alpha channels of the colors.
 
-This template calls *{color.r}, *{color.g}, *{color.b}, and *{color.a} to get
-the components of ${bg} and ${fg}. It accepts six-digit and three-digit
-hexidecimal color codes, colors specified with #{rgb()}, and colors specified
-with #{rgba()}. It does not accept HSL or named HTML colors.
+This template calls {color.r}, {color.g}, {color.b}, and {color.a} to get
+the components of $bg and $fg. It accepts six-digit and three-digit
+hexidecimal color codes, colors specified with `rgb()`, and colors specified
+with `rgba()`. It does not accept HSL or named HTML colors.
 
 If the return color is fully opaque, this template returns the color using
-the #{rgb()} scheme. Otherwise, it uses the #{rgba()} scheme.
+the `rgb()` scheme. Otherwise, it uses the `rgba()` scheme.
 -->
 <xsl:template name="color.blend">
   <xsl:param name="bg" select="'#ffffff'"/>
@@ -537,10 +553,10 @@ the #{rgb()} scheme. Otherwise, it uses the #{rgba()} scheme.
 <!--@@==========================================================================
 color.fg
 The primary text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameters specifies the normal color of text. It should have a high color
-contrast against @{color.bg}. Other text colors can be automatically computed
+contrast against {color.bg}. Other text colors can be automatically computed
 based on this color.
 -->
 <xsl:param name="color.fg" select="'#000000'"/>
@@ -549,10 +565,10 @@ based on this color.
 <!--@@==========================================================================
 color.bg
 The normal background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameters specifies the background color. It should have a high color
-contrast against @{color.fg}. Other background colors can be automatically
+contrast against {color.fg}. Other background colors can be automatically
 computed based on this color.
 -->
 <xsl:param name="color.bg" select="'#ffffff'"/>
@@ -561,7 +577,7 @@ computed based on this color.
 <!--@@==========================================================================
 color.red
 A red accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of red that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -573,11 +589,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.red
 A red text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of red that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.red} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.red} and {color.fg}.
 -->
 <xsl:param name="color.fg.red">
   <xsl:call-template name="_color.fgify">
@@ -589,11 +605,11 @@ automatically computed based on @{color.red} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.red
 A red background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of red that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.red} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.red} and {color.bg}.
 -->
 <xsl:param name="color.bg.red">
   <xsl:call-template name="_color.bgify">
@@ -605,7 +621,7 @@ it can be automatically computed based on @{color.red} and @{color.bg}.
 <!--@@==========================================================================
 color.orange
 An orange accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of orange that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -617,11 +633,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.orange
 An orange text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of orange that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.orange} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.orange} and {color.fg}.
 -->
 <xsl:param name="color.fg.orange">
   <xsl:call-template name="_color.fgify">
@@ -633,11 +649,11 @@ automatically computed based on @{color.orange} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.orange
 An orange background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of orange that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.orange} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.orange} and {color.bg}.
 -->
 <xsl:param name="color.bg.orange">
   <xsl:call-template name="_color.bgify">
@@ -649,7 +665,7 @@ it can be automatically computed based on @{color.orange} and @{color.bg}.
 <!--@@==========================================================================
 color.yellow
 A yellow accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of yellow that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -661,11 +677,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.yellow
 A yellow text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of yellow that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.yellow} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.yellow} and {color.fg}.
 -->
 <xsl:param name="color.fg.yellow">
   <xsl:call-template name="_color.fgify">
@@ -678,11 +694,11 @@ automatically computed based on @{color.yellow} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.yellow
 A yellow background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of yellow that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.yellow} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.yellow} and {color.bg}.
 -->
 <xsl:param name="color.bg.yellow">
   <xsl:call-template name="_color.bgify">
@@ -695,7 +711,7 @@ it can be automatically computed based on @{color.yellow} and @{color.bg}.
 <!--@@==========================================================================
 color.green
 A green accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of green that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -707,11 +723,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.green
 A green text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of green that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.green} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.green} and {color.fg}.
 -->
 <xsl:param name="color.fg.green">
   <xsl:call-template name="_color.fgify">
@@ -723,11 +739,11 @@ automatically computed based on @{color.green} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.green
 A green background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of green that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.green} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.green} and {color.bg}.
 -->
 <xsl:param name="color.bg.green">
   <xsl:call-template name="_color.bgify">
@@ -739,7 +755,7 @@ it can be automatically computed based on @{color.green} and @{color.bg}.
 <!--@@==========================================================================
 color.blue
 A blue accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of blue that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -751,11 +767,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.blue
 A blue text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of blue that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.blue} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.blue} and {color.fg}.
 -->
 <xsl:param name="color.fg.blue">
   <xsl:call-template name="_color.fgify">
@@ -766,11 +782,11 @@ automatically computed based on @{color.blue} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.blue
 A blue background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of blue that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.blue} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.blue} and {color.bg}.
 -->
 <xsl:param name="color.bg.blue">
   <xsl:call-template name="_color.bgify">
@@ -782,7 +798,7 @@ it can be automatically computed based on @{color.blue} and @{color.bg}.
 <!--@@==========================================================================
 color.purple
 A purple accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of purple that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -794,11 +810,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.purple
 A purple text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of purple that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.purple} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.purple} and {color.fg}.
 -->
 <xsl:param name="color.fg.purple">
   <xsl:call-template name="_color.fgify">
@@ -810,11 +826,11 @@ automatically computed based on @{color.purple} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.purple
 A purple background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of purple that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.purple} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.purple} and {color.bg}.
 -->
 <xsl:param name="color.bg.purple">
   <xsl:call-template name="_color.bgify">
@@ -826,7 +842,7 @@ it can be automatically computed based on @{color.purple} and @{color.bg}.
 <!--@@==========================================================================
 color.gray
 A gray accent color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of gray that is suitable for borders and
 other accents. It should have some contrast against background colors, but it
@@ -838,11 +854,11 @@ does not need as high of a contrast as text colors.
 <!--@@==========================================================================
 color.fg.gray
 A gray text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of gray that is suitable for text. It should
-have a high color contrast against @{color.bg}. If not specified, it can be
-automatically computed based on @{color.gray} and @{color.fg}.
+have a high color contrast against {color.bg}. If not specified, it can be
+automatically computed based on {color.gray} and {color.fg}.
 -->
 <xsl:param name="color.fg.gray">
   <xsl:call-template name="_color.fgify">
@@ -854,11 +870,11 @@ automatically computed based on @{color.gray} and @{color.fg}.
 <!--@@==========================================================================
 color.bg.gray
 A gray background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of gray that is suitable for backgrounds.
-It should have a high color contrast against @{color.fg}. If not specified,
-it can be automatically computed based on @{color.gray} and @{color.bg}.
+It should have a high color contrast against {color.fg}. If not specified,
+it can be automatically computed based on {color.gray} and {color.bg}.
 -->
 <xsl:param name="color.bg.gray">
   <xsl:call-template name="_color.bgify">
@@ -870,13 +886,13 @@ it can be automatically computed based on @{color.gray} and @{color.bg}.
 <!--@@==========================================================================
 color.fg.dark
 A dark gray text color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a dark shade of gray that is suitable for text. It
-should have a very high color contrast against @{color.bg}. It is typically
+should have a very high color contrast against {color.bg}. It is typically
 used to slightly reduce the visual weight of headers and bold text. If not
-specified, it can be automatically computed based on @{color.gray} and
-@{color.fg}.
+specified, it can be automatically computed based on {color.gray} and
+{color.fg}.
 -->
 <xsl:param name="color.fg.dark">
   <xsl:call-template name="_color.fgify">
@@ -889,14 +905,14 @@ specified, it can be automatically computed based on @{color.gray} and
 <!--@@==========================================================================
 color.bg.dark
 A dark gray background color.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
 This parameter specifies a shade of gray that is suitable for backgrounds,
-and is darker than @{color.bg.gray}. It should have a high color contrast
-against @{color.fg}. It is typically used at the intersection of shaded
+and is darker than {color.bg.gray}. It should have a high color contrast
+against {color.fg}. It is typically used at the intersection of shaded
 rows and columns in a table, or as a very light gray accent color. If not
-specified, it can be automatically computed based on @{color.gray} and
-@{color.bg}.
+specified, it can be automatically computed based on {color.gray} and
+{color.bg}.
 -->
 <xsl:param name="color.bg.dark">
   <xsl:call-template name="_color.bgify">
diff --git a/xslt/common/html.xsl b/xslt/common/html.xsl
index d4c8e33d..9d38a9e7 100644
--- a/xslt/common/html.xsl
+++ b/xslt/common/html.xsl
@@ -29,17 +29,16 @@ along with this program; see the file COPYING.LGPL. If not, see <http://www.gnu.
 <!--!!==========================================================================
 HTML Output
 Common utilities and CSS for transformations to HTML.
-:Requires: l10n color icons
-:Revision:version="1.0" date="2010-05-26" status="final"
+@revision[version=1.0 date=2010-05-26 status=final]
 
 This stylesheet contains common templates for creating HTML output. The
-*{html.output} template creates an output file for a node in the source XML
-document, calling *{html.page} to create the actual output. Output files can
-be either XHTML or HTML, depending on the @{html.xhtml} parameter.
+{html.output} template creates an output file for a node in the source XML
+document, calling {html.page} to create the actual output. Output files can
+be either XHTML or HTML, depending on the {html.xhtml} parameter.
 
-This stylesheet matches #{/} and calls *{html.output} on the root XML element.
+This stylesheet matches `/` and calls {html.output} on the root XML element.
 This works for most input formats. If you need to do something different, you
-should override the match for #{/}.
+should override the match for `/`.
 -->
 <xsl:template match="/">
   <xsl:call-template name="html.output">
@@ -52,13 +51,13 @@ should override the match for #{/}.
 <!--@@==========================================================================
 html.basename
 The base filename of the primary output file.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
 
 This parameter specifies the base filename of the primary output file, without
-the filename extension. This is used by *{html.output} to determine the output
+the filename extension. This is used by {html.output} to determine the output
 filename, and may be used by format-specific linking code. By default, it uses
-the value of an #{id} or #{xml:id} attribute, if present. Otherwise, it uses
-the static string #{index}.
+the value of an `id` or `xml:id` attribute, if present. Otherwise, it uses
+the static string `index`.
 -->
 <xsl:param name="html.basename">
   <xsl:choose>
@@ -78,14 +77,14 @@ the static string #{index}.
 <!--@@==========================================================================
 html.xhtml
 Whether to output XHTML.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
 
 If this parameter is set to true, this stylesheet will output XHTML. Otherwise,
 the output is assumed to be HTML. Note that for HTML output, the importing
-stylesheet still needs to call #{xsl:namespace-alias} to map the XHTML namespace
-to #{#default}. The @{html.namespace} will be set automatically based on this
-parameter. Stylesheets can use this parameter to check the output type, for
-example when using #{xsl:element}.
+stylesheet still needs to call `xsl:namespace-alias` to map the XHTML namespace
+to `#default`. The {html.namespace} parameter will be set automatically based
+on this parameter. Stylesheets can use this parameter to check the output type,
+for example when using `xsl:element`.
 -->
 <xsl:param name="html.xhtml" select="true()"/>
 
@@ -93,12 +92,12 @@ example when using #{xsl:element}.
 <!--@@==========================================================================
 html.namespace
 The XML namespace for the output document.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
 
 This parameter specifies the XML namespace of all output documents. It will be
-set automatically based on the ${html.xhtml} parameter, either to the XHTML
+set automatically based on the {html.xhtml} parameter, either to the XHTML
 namespace, or to the empty namespace. Stylesheets can use this parameter when
-using #{xsl:element}.
+using `xsl:element`.
 -->
 <xsl:param name="html.namespace">
   <xsl:choose>
@@ -115,14 +114,14 @@ using #{xsl:element}.
 <!--@@==========================================================================
 html.mathml.namespace
 The XML namespace for MathML in the output document.
-:Revision:version="3.18" date="2015-05-04" status="final"
+@revision[version=3.18 date=2015-05-04 status=final]
 
 This parameter specifies the XML namespace for MathML in output documents. It
-will be set automatically based on the ${html.xhtml} parameter, either to the
+will be set automatically based on the {html.xhtml} parameter, either to the
 MathML namespace namespace, or to the empty namespace. Stylesheets can use this
-parameter when using #{xsl:element}.
+parameter when using `xsl:element`.
 -->
-<xsl:variable name="html.mathml.namespace">
+<xsl:param name="html.mathml.namespace">
   <xsl:choose>
     <xsl:when test="$html.xhtml">
       <xsl:value-of select="'http://www.w3.org/1998/Math/MathML'"/>
@@ -131,20 +130,20 @@ parameter when using #{xsl:element}.
       <xsl:text></xsl:text>
     </xsl:otherwise>
   </xsl:choose>
-</xsl:variable>
+</xsl:param>
 
 
 <!--@@==========================================================================
 html.svg.namespace
 The XML namespace for SVG in the output document.
-:Revision:version="3.18" date="2015-05-04" status="final"
+@revision[version=3.18 date=2015-05-04 status=final]
 
 This parameter specifies the XML namespace for SVG in output documents. It
-will be set automatically based on the ${html.xhtml} parameter, either to the
+will be set automatically based on the {html.xhtml} parameter, either to the
 SVG namespace namespace, or to the empty namespace. Stylesheets can use this
-parameter when using #{xsl:element}.
+parameter when using `xsl:element`.
 -->
-<xsl:variable name="html.svg.namespace">
+<xsl:param name="html.svg.namespace">
   <xsl:choose>
     <xsl:when test="$html.xhtml">
       <xsl:value-of select="'http://www.w3.org/2000/svg'"/>
@@ -153,17 +152,17 @@ parameter when using #{xsl:element}.
       <xsl:text></xsl:text>
     </xsl:otherwise>
   </xsl:choose>
-</xsl:variable>
+</xsl:param>
 
 
 <!--@@==========================================================================
 html.extension
 The filename extension for all output files.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
 
 This parameter specifies a filename extension for all HTML output files. It
-should include the leading dot. By default, #{.xhtml} will be used if
-@{html.xhtml} is true; otherwise, #{.html} will be used.
+should include the leading dot. By default, `.xhtml` will be used if
+{html.xhtml} is true; otherwise, `.html` will be used.
 -->
 <xsl:param name="html.extension">
   <xsl:choose>
@@ -180,7 +179,7 @@ should include the leading dot. By default, #{.xhtml} will be used if
 <!--@@==========================================================================
 html.css.root
 The URI root for external CSS files.
-:Revision:version="1.0" date="2010-12-06" status="final"
+@revision[version=1.0 date=2010-12-06 status=final]
 
 This parameter provides a root URI for any external CSS files that are
 referenced from the output HTML file. If non-empty, it must end with
@@ -192,7 +191,7 @@ a trailing slash character.
 <!--@@==========================================================================
 html.js.root
 The URI root for external JavaScript files.
-:Revision:version="1.0" date="2010-12-06" status="final"
+@revision[version=1.0 date=2010-12-06 status=final]
 
 This parameter provides a root URI for any external JavaScript files that are
 referenced from the output HTML file. If non-empty, it must end with
@@ -204,7 +203,7 @@ a trailing slash character.
 <!--@@==========================================================================
 html.syntax.highlight
 Whether to include syntax highlighting support for code blocks.
-:Revision:version="1.0" date="2010-12-06" status="final"
+@revision[version=1.0 date=2010-12-06 status=final]
 
 This parameter specifies whether syntax highlighting should be enabled for
 code blocks in the output HTML. Syntax highlighting is done at document load
@@ -215,11 +214,11 @@ time by JavaScript.
 
 <!--@@==========================================================================
 html.output.prefix
-An optional path prefix for files output with *{html.output}.
-:Revision:version="3.28" date="2017-05-24" status="final"
+An optional path prefix for files output with {html.output}.
+@revision[version=3.28 date=2017-05-24 status=final]
 
 This parameter allows you to specify an prefix to place before the output path
-used by *{html.output} when creating files. You can use this to override the
+used by {html.output} when creating files. You can use this to override the
 output directory. Make sure you include a trailing slash, unless you want to
 prefix the base file name itself.
 -->
@@ -229,12 +228,12 @@ prefix the base file name itself.
 <!--@@==========================================================================
 html.sidebar.left
 List of components to add to the left sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
 
 This parameter takes a space-separated list of tokens that specify which
 components to add to the stock left sidebar. These stylesheets recognize
-certain tokens, and you can add your own with %{html.sidebar.mode}. See
-*{html.sidebar} for further details.
+certain tokens, and you can add your own with {html.sidebar.mode}. See
+{html.sidebar} for further details.
 -->
 <xsl:param name="html.sidebar.left" select="''"/>
 
@@ -242,12 +241,12 @@ certain tokens, and you can add your own with %{html.sidebar.mode}. See
 <!--@@==========================================================================
 html.sidebar.right
 List of components to add to the right sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
 
 This parameter takes a space-separated list of tokens that specify which
 components to add to the stock right sidebar. These stylesheets recognize
-certain tokens, and you can add your own with %{html.sidebar.mode}. See
-*{html.sidebar} for further details.
+certain tokens, and you can add your own with {html.sidebar.mode}. See
+{html.sidebar} for further details.
 -->
 <xsl:param name="html.sidebar.right" select="''"/>
 
@@ -255,26 +254,31 @@ certain tokens, and you can add your own with %{html.sidebar.mode}. See
 <!--**==========================================================================
 html.output
 Create an HTML output file.
-:Revision:version="1.0" date="2010-05-26" status="final"
+@revision[version=1.0 date=2010-05-26 status=final]
+
+[xsl:params]
 $node: The node to create an output file for.
 $href: The output filename.
 
-This template creates an HTML output file for the source element ${node}. It
-uses #{exsl:document} to output the file, and calls *{html.page} with the
-${node} parameter to output the actual HTML contents.
+This template creates an HTML output file for the source element $node. It
+uses `exsl:document` to output the file, and calls {html.page} with the
+$node parameter to output the actual HTML contents.
+
+If $href is not provided, this template will attempt to generate a base
+filename and append {html.extension} to it. The base filename is generated
+as follows:
 
-If ${href} is not provided, this template will attempt to generate a base
-filename and append @{html.extension} to it. The base filename is generated
-as follows: If an #{xml:id} attribute is present, it is used; otherwise, if
-an #{id} attribute is present, it is uses; otherwise, if ${node} is the root
-element, @{html.basename} is used; otherwise, #{generate-id()} is called.
+* If an `xml:id` attribute is present, it is used.
+* Otherwise, if an `id` attribute is present, it is used.
+* Otherwise, if $node is the root element, {html.basename} is used.
+* Otherwise, `generate-id()` is called.
 
-This template prepends @{html.output.prefix} to the value of ${href} when
-it calls #{exsl:document}, regardless of whether ${href} was passed in or
+This template prepends {html.output.prefix} to the value of $href when
+it calls `exsl:document`, regardless of whether $href was passed in or
 generated automatically.
 
-After calling #{exsl:document}, this template calls the %{html.output.after.mode}
-mode on ${node}. Importing stylesheets that create multiple output files can
+After calling `exsl:document`, this template calls the {html.output.after.mode}
+mode on $node. Importing stylesheets that create multiple output files can
 use this to process output files without blocking earlier output.
 -->
 <xsl:template name="html.output">
@@ -320,9 +324,9 @@ use this to process output files without blocking earlier output.
 <!--%%==========================================================================
 html.output.after.mode
 Process an element after its content are output.
-:Revision:version="1.0" date="2010-05-26" status="final"
+@revision[version=1.0 date=2010-05-26 status=final]
 
-This mode is called by *{html.output} after #{exsl:document} has finished. It
+This mode is called by {html.output} after `exsl:document` has finished. It
 can be used to create further output files without blocking the output of
 parent elements.
 -->
@@ -332,35 +336,43 @@ parent elements.
 <!--**==========================================================================
 html.page
 Create an HTML document.
-:Revision:version="3.28" date="2017-08-04" status="final"
+@revision[version=3.28 date=2017-08-04 status=final]
+
+[xsl:params]
 $node: The node to create HTML for.
 
-This template creates the actual HTML output for ${node}. It outputs top-level
+This template creates the actual HTML output for $node. It outputs top-level
 elements and container divs, and calls various templates and modes to output
 the inner content. Importing stylesheets should implement at least
-%{html.title.mode} and %{html.body.mode} for any elements that could be passed
-as ${node} to this template. Importing stylesheets should also implement
-%{html.header.mode} to output link trails and %{html.footer.mode} to output
+{html.title.mode} and {html.body.mode} for any elements that could be passed
+as $node to this template. Importing stylesheets should also implement
+{html.header.mode} to output link trails and {html.footer.mode} to output
 credits and other page information.
 
-This template outputs the HTML #{body} element, which takes it attributes
-from two sources. First, it calls *{html.lang.attrs}, which automatically
-outputs correct #{lang}, #{xml:lang}, and #{dir} attributes. It then calls
-%{html.body.attr.mode} on ${node} for additional attributes.
+This template outputs the HTML `body` element, which takes it attributes
+from two sources. First, it calls {html.lang.attrs}, which automatically
+outputs correct `lang`, `xml:lang`, and `dir` attributes. It then calls
+{html.body.attr.mode} on $node for additional attributes.
 
 This template also calls a number of stub templates that can be overridden
-by extension stylesheets. Override the *{html.head.custom} template to put
-custom content at the end of the HTML #{head} element. Override the
-*{html.head.top.custom} template to put custom content at the beginning of
-the HTML #{head} element. Override the *{html.top.custom} and
-*{html.bottom.custom} templates to add site-specific content at the top and
-bottom of the page. Override the *{html.header.custom} and *{html.footer.custom}
-templates to provide additional content directoy above and below the main
-content. Use the @{html.sidebar.left} and @{html.sidebar.right} parameters
-to create stock sidebars, or override *{html.sidebar.custom} to create
-your own.
-
-This template also calls *{html.css} and *{html.js} to output CSS and JavaScript
+by extension stylesheets.
+
+* Override the {html.head.custom} template to put custom content at the end
+  of the HTML `head` element.
+
+* Override the {html.head.top.custom} template to put custom content at the
+  beginning of the HTML `head` element.
+
+* Override the {html.top.custom} and {html.bottom.custom} templates to add
+  site-specific content at the top and bottom of the page.
+
+* Override the {html.header.custom} and {html.footer.custom} templates to
+  provide additional content directoy above and below the main content.
+
+* Use the {html.sidebar.left} and {html.sidebar.right} parameters to create
+  stock sidebars, or override {html.sidebar.custom} to create your own.
+
+This template also calls {html.css} and {html.js} to output CSS and JavaScript
 elements. See those templates for further extension points.
 -->
 <xsl:template name="html.page">
@@ -433,22 +445,22 @@ elements. See those templates for further extension points.
 <!--%%==========================================================================
 html.title.mode
 Output the title of an element.
-:Revision:version="1.0" date="2010-05-26" status="final"
+@revision[version=1.0 date=2010-05-26 status=final]
 
-This mode is called by *{html.page} to output the contents of the HTML #{title}
-element inside the #{head} element. Importing stylesheets should implement this
-mode for any element that will be passed to *{html.page}. Because this is used
-in the #{head}, the output should be text-only.
+This mode is called by {html.page} to output the contents of the HTML `title`
+element inside the `head` element. Importing stylesheets should implement this
+mode for any element that will be passed to {html.page}. Because this is used
+in the `head`, the output should be text-only.
 -->
 <xsl:template mode="html.title.mode" match="*"/>
 
 
 <!--%%==========================================================================
 html.body.attr.mode
-Output attributes for the HTML #{body} element.
-:Revision:version="1.0" date="2010-06-08" status="final"
+Output attributes for the HTML `body` element.
+@revision[version=1.0 date=2010-06-08 status=final]
 
-This mode is called by *{html.page} to output attributes on the HTML #{body}
+This mode is called by {html.page} to output attributes on the HTML `body`
 element. No attributes are output by default. Importing stylesheets may
 implement this node to add attributes for styling, data, or other purposes.
 -->
@@ -458,12 +470,14 @@ implement this node to add attributes for styling, data, or other purposes.
 <!--**==========================================================================
 html.top.custom
 Stub to output HTML at the top of the page.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. It is called before the
-#{main} element. Override this template to provide site-specific HTML
+This template is a stub, called by {html.page}. It is called before the
+`main` element. Override this template to provide site-specific HTML
 at the top of the page.
 -->
 <xsl:template name="html.top.custom">
@@ -474,12 +488,14 @@ at the top of the page.
 <!--**==========================================================================
 html.bottom.custom
 Stub to output HTML at the bottom of the page.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. It is called after the
-#{main} element. Override this template to provide site-specific HTML
+This template is a stub, called by {html.page}. It is called after the
+`main` element. Override this template to provide site-specific HTML
 at the bottom of the page.
 -->
 <xsl:template name="html.bottom.custom">
@@ -490,41 +506,51 @@ at the bottom of the page.
 <!--**==========================================================================
 html.sidebar
 Output stock sidebars.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
+
+[xsl:params]
 $node: The node a sidebar is being created for.
 
 This templates outputs left and right sidebars according to the components
-listed in @{html.sidebar.left} and @{html.sidebar.right}. It only outputs each
-sidebar if the corresponding parameters is not empty or the string #{none}.
+listed in {html.sidebar.left} and {html.sidebar.right}. It only outputs each
+sidebar if the corresponding parameters is not empty or the string `none`.
 
-This template is called inside the #{main} element, before the #{div.page}
-element, and before *{html.sidebar.custom}. Note that even the right sidebar
-is placed before the #{div.page} element. It is placed on the right using
+This template is called inside the `main` element, before the `div.page`
+element, and before {html.sidebar.custom}. Note that even the right sidebar
+is placed before the `div.page` element. It is placed on the right using
 flexbox item reordering.
 
 To actually output the sidebar components, this template splits each parameter
-on whitespace using the EXSTL #{str:split} function. It then applies the mode
-%{html.sidebar.mode} to each token, passing ${node} and the sidebar side as
+on whitespace using the EXSLT `str:split` function. It then applies the mode
+{html.sidebar.mode} to each token, passing $node and the sidebar side as
 parameters. Extension stylesheets can add their own sidebar components by
 implementing that mode and matching a pattern like
-#{token[. = 'name-of-token']}. You will then be able to use #{name-of-token}
-in @{html.sidebar.left} or @{html.sidebar.right}.
-
-This stylesheet recognizes four tokens: #{contents} and #{sections}, and the
-special tokens #{none} and #{blank}. The #{contents} token provides a table
-of contents for the entire document. It is handled by the *{html.sidebar.contents}
-template, which uses the %{html.sidebar.contents.mode} mode to allow different
-input formats to implement it. The #{sections} token lists sections on the
-current page. It is handled by the *{html.sidebar.section} template, which
-uses the %{html.sidebar.sections.mode} mode to allow different input formats
-to implement it.
-
-You can use the #{none} token on its own, instead of the empty string, to
-completely turn off either sidebar. Use the #{blank} token to output a sidebar
-without adding any components to it. This is useful, for example, to keep
-consistent margins. If an empty sidebar is output from the #{blank} token,
-it will also have the CSS class #{sidebar-blank} so you can style it
-differently.
+
+[code]
+  token[. = 'name-of-token']
+
+You will then be able to use `name-of-token` in {html.sidebar.left} or
+{html.sidebar.right}.
+
+This stylesheet recognizes four tokens: `contents` and `sections`, and the
+special tokens `none` and `blank`.
+
+* The `contents` token provides a table of contents for the entire document.
+  It is handled by the {html.sidebar.contents} template, which uses the
+  {html.sidebar.contents.mode} mode to allow different input formats to
+  implement it.
+
+* The `sections` token lists sections on the current page. It is handled by the
+  html.sidebar.section} template, which uses the {html.sidebar.sections.mode}
+  mode to allow different input formats to implement it.
+
+* Use the `none` token on its own, instead of the empty string, to completely
+  turn off either sidebar.
+
+* Use the `blank` token to output a sidebar without adding any components to
+  it. This is useful, for example, to keep consistent margins. If an empty
+  sidebar is output from the `blank` token, it will also have the CSS class
+  `sidebar-blank` so you can style it differently.
 -->
 <xsl:template name="html.sidebar">
   <xsl:param name="node" select="."/>
@@ -567,12 +593,14 @@ differently.
 <!--%%==========================================================================
 html.sidebar.mode
 Output a sidebar compenent for a token.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
+
+[xsl:params]
 $node: The node a sidebar is being created for.
-$side: Which sidebar, either #{left} or #{right}.
+$side: Which sidebar, either `left` or `right`.
 
-This mode is called by *{html.sidebar} for each sidebar compenent in each of
-@{html.sidebar.left} and @{html.sidebar.right}. See *{html.sidebar} for full
+This mode is called by {html.sidebar} for each sidebar compenent in each of
+{html.sidebar.left} and {html.sidebar.right}. See {html.sidebar} for full
 details.
 -->
 <xsl:template mode="html.sidebar.mode" match="token[. = 'blank']"/>
@@ -587,16 +615,18 @@ details.
 <!--**==========================================================================
 html.sidebar.contents
 Output a table of contents for a sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
+
+[xsl:params]
 $node: The node a sidebar is being created for.
-$side: Which sidebar, either #{left} or #{right}.
+$side: Which sidebar, either `left` or `right`.
 
 This template creates a table of contents for a sidebar. It applies
-%{html.sidebar.contents.mode} to ${node}, passing ${side} as a parameter, to
+{html.sidebar.contents.mode} to $node, passing $side as a parameter, to
 allow individual input formats to implement tables of contents.
 
-This named template also implements %{html.sidebar.mode} on the #{contents}
-token. See *{html.sidebar} for more information on how sidebars are created.
+This named template also implements {html.sidebar.mode} on the `contents`
+token. See {html.sidebar} for more information on how sidebars are created.
 -->
 <xsl:template name="html.sidebar.contents"
               mode="html.sidebar.mode" match="token[. = 'contents']">
@@ -611,10 +641,12 @@ token. See *{html.sidebar} for more information on how sidebars are created.
 <!--%%==========================================================================
 html.sidebar.contents.mode
 Output a table of contents for a sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
-$side: Which sidebar, either #{left} or #{right}.
+@revision[version=3.30 date=2018-06-10 status=candidate]
 
-This mode is called by %{html.sidebar.contents} to allow different input
+[xsl:params]
+$side: Which sidebar, either `left` or `right`.
+
+This mode is called by {html.sidebar.contents} to allow different input
 formats to implement a table of contents for a sidebar.
 -->
 <xsl:template mode="html.sidebar.contents.mode" match="*">
@@ -629,16 +661,18 @@ formats to implement a table of contents for a sidebar.
 <!--**==========================================================================
 html.sidebar.sections
 Output a list of sections for a sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
+@revision[version=3.30 date=2018-06-10 status=candidate]
+
+[xsl:params]
 $node: The node a sidebar is being created for.
-$side: Which sidebar, either #{left} or #{right}.
+$side: Which sidebar, either `left` or `right`.
 
 This template creates a list of sections on the current page for a sidebar.
-It applies %{html.sidebar.sections.mode} to ${node}, passing ${side} as a
+It applies {html.sidebar.sections.mode} to $node, passing $side as a
 parameter, to allow individual input formats to implement sections lists.
 
-This named template also implements %{html.sidebar.mode} on the #{sections}
-token. See *{html.sidebar} for more information on how sidebars are created.
+This named template also implements {html.sidebar.mode} on the `sections`
+token. See {html.sidebar} for more information on how sidebars are created.
 -->
 <xsl:template name="html.sidebar.sections"
               mode="html.sidebar.mode" match="token[. = 'sections']">
@@ -653,10 +687,12 @@ token. See *{html.sidebar} for more information on how sidebars are created.
 <!--%%==========================================================================
 html.sidebar.sections.mode
 Output a list of sections for a sidebar.
-:Revision:version="3.30" date="2018-06-10" status="candidate"
-$side: Which sidebar, either #{left} or #{right}.
+@revision[version=3.30 date=2018-06-10 status=candidate]
 
-This mode is called by %{html.sidebar.sections} to allow different input
+[xsl:params]
+$side: Which sidebar, either `left` or `right`.
+
+This mode is called by {html.sidebar.sections} to allow different input
 formats to implement a sections list for a sidebar.
 -->
 <xsl:template mode="html.sidebar.sections.mode" match="*">
@@ -671,20 +707,22 @@ formats to implement a sections list for a sidebar.
 <!--**==========================================================================
 html.sidebar.custom
 Stub to output custom sidebar content.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. It is called inside the #{main}
-element, before the #{div.page} element. The #{main} element uses a horizontal
+This template is a stub, called by {html.page}. It is called inside the `main`
+element, before the `div.page` element. The `main` element uses a horizontal
 flexbox by default. You can override this template to provide sidebar content.
 Note that there is only one extension point for sidebar content, and it is
 always placed before the main content in document order. To create a sidebar
-on the right, output the element here, then adjust the #{order} CSS property
-for that element to display it after the #{main} element.
+on the right, output the element here, then adjust the `order` CSS property
+for that element to display it after the `main` element.
 
 This template is intended for completely custom sidebars. You can also use
-*{html.sidebar} to output sidebars with stock components.
+{html.sidebar} to output sidebars with stock components.
 -->
 <xsl:template name="html.sidebar.custom">
   <xsl:param name="node" select="."/>
@@ -694,12 +732,14 @@ This template is intended for completely custom sidebars. You can also use
 <!--**==========================================================================
 html.header.custom
 Stub to output custom header content.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. It is called inside the
-#{header} element, before %{html.header.mode} is applied to ${node}. You can
+This template is a stub, called by {html.page}. It is called inside the
+`header` element, before {html.header.mode} is applied to `node`. You can
 override this template to provide additional content above the main content.
 -->
 <xsl:template name="html.header.custom">
@@ -710,12 +750,12 @@ override this template to provide additional content above the main content.
 <!--%%==========================================================================
 html.header.mode
 Output the header content for an element.
-:Revision:version="3.28" date="2017-05-24" status="final"
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This mode is called by *{html.page} to output the contents of the #{header}
+This mode is called by {html.page} to output the contents of the `header`
 element above the main content. Importing stylesheets may implement this mode
-for any element that will be passed to *{html.page}. If they do not, the
-#{header} element will be empty by default.
+for any element that will be passed to {html.page}. If they do not, the
+`header` element will be empty by default.
 -->
 <xsl:template mode="html.header.mode" match="*"/>
 
@@ -723,12 +763,14 @@ for any element that will be passed to *{html.page}. If they do not, the
 <!--**==========================================================================
 html.footer.custom
 Stub to output custom footer content.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. It is called inside the
-#{footer} element, after %{html.footer.mode} is applied to ${node}. You can
+This template is a stub, called by {html.page}. It is called inside the
+`footer` element, after {html.footer.mode} is applied to $node. You can
 override this template to provide additional content below the main content.
 -->
 <xsl:template name="html.footer.custom">
@@ -739,12 +781,12 @@ override this template to provide additional content below the main content.
 <!--%%==========================================================================
 html.footer.mode
 Output the footer content for an element.
-:Revision:version="3.28" date="2017-05-24" status="final"
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This mode is called by *{html.page} to output the contents of the #{footer}
+This mode is called by {html.page} to output the contents of the `footer`
 element below the main content. Importing stylesheets may implement this mode
-for any element that will be passed to *{html.page}. If they do not, the
-#{footer} element will be empty by default.
+for any element that will be passed to {html.page}. If they do not, the
+`footer` element will be empty by default.
 -->
 <xsl:template mode="html.footer.mode" match="*"/>
 
@@ -752,9 +794,9 @@ for any element that will be passed to *{html.page}. If they do not, the
 <!--%%==========================================================================
 html.body.mode
 Output the main contents for an element.
-:Revision:version="1.0" date="2010-05-26" status="final"
+@revision[version=1.0 date=2010-05-26 status=final]
 
-This mode is called by *{html.page} to output the main contents of an HTML
+This mode is called by {html.page} to output the main contents of an HTML
 page, below the header content and above the footer content. Titles, block
 content, and sections should be output in this mode.
 -->
@@ -763,13 +805,15 @@ content, and sections should be output in this mode.
 
 <!--**==========================================================================
 html.head.top.custom
-Stub to output custom content at the beginning of the HTML #{head} element.
-:Stub: true
-:Revision: version="3.28" date="2017-08-04" status="final"
+Stub to output custom content at the beginning of the HTML `head` element.
+@xsl:stub
+@revision[version=3.28 date=2017-08-04 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. You can override this template
-to provide additional elements at the beginning of the HTML #{head} element of
+This template is a stub, called by {html.page}. You can override this template
+to provide additional elements at the beginning of the HTML `head` element of
 output files. This template is called before all other head content.
 -->
 <xsl:template name="html.head.top.custom">
@@ -779,13 +823,15 @@ output files. This template is called before all other head content.
 
 <!--**==========================================================================
 html.head.custom
-Stub to output custom content at the end of the HTML #{head} element.
-:Stub: true
-:Revision: version="3.28" date="2017-08-04" status="final"
+Stub to output custom content at the end of the HTML `head` element.
+@xsl:stub
+@revision[version=3.28 date=2017-08-04 status=final]
+
+[xsl:params]
 $node: The node a page is being created for.
 
-This template is a stub, called by *{html.page}. You can override this template
-to provide additional elements in the HTML #{head} element of output files.
+This template is a stub, called by {html.page}. You can override this template
+to provide additional elements in the HTML `head` element of output files.
 This template is called after all other head content.
 -->
 <xsl:template name="html.head.custom">
@@ -796,8 +842,10 @@ This template is called after all other head content.
 <!--**==========================================================================
 html.linktrails.empty
 Stub to output something when no link trails are present.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The source element a page is bring created for.
 
 This template is a stub. It is called by templates that output link trails when
@@ -813,8 +861,10 @@ trails would otherwise be present.
 <!--**==========================================================================
 html.linktrails.prefix
 Stub to output extra content before a link trail.
-:Stub: true
-:Revision:version="3.28" date="2017-05-24" status="final"
+@xsl:stub
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: A source-specific element providing information about the link trail.
 
 This template is a stub. It is called by templates that output link trails
@@ -828,16 +878,18 @@ site links at the beginning of each link trail.
 
 <!--**==========================================================================
 html.class.attr
-Output a #{class} attribute for an HTML element.
-:Revision: version="3.10" date="2013-07-10" status="final"
+Output a `class` attribute for an HTML element.
+@revision[version=3.10 date=2013-07-10 status=final]
+
+[xsl:params]
 $node: The source node for which an HTML element is being output.
-$class: The value of the #{class} attribute provided by the calling template.
+$class: The value of the `class` attribute provided by the calling template.
 
 This template is called by templates that output an HTML element corresponding
-to a source element. This template applies %{html.class.attr.mode} to ${node}
+to a source element. This template applies {html.class.attr.mode} to $node
 to gather a value from extensions stylesheets. It combines this value with the
-value passed in the ${class} parameter and, if the result is non-empty, outputs
-a #{class} attribute.
+value passed in the $class parameter and, if the result is non-empty, outputs
+a `class` attribute.
 -->
 <xsl:template name="html.class.attr">
   <xsl:param name="node" select="."/>
@@ -858,10 +910,10 @@ a #{class} attribute.
 
 <!--%%==========================================================================
 html.class.attr.mode
-Output additional values for an HTML #{class} attribute.
-:Revision:version="3.10" date="2013-07-10" status="final"
+Output additional values for an HTML `class` attribute.
+@revision[version=3.10 date=2013-07-10 status=final]
 
-This mode is called by *{html.class.attr} on a source element. This mode is
+This mode is called by {html.class.attr} on a source element. This mode is
 intended for extensions to have an easy way to add additional HTML class values
 for styling.
 
@@ -875,13 +927,15 @@ values that do not conflict with those used in these stylesheets.
 <!--**==========================================================================
 html.content.pre
 Output content before the content of a page or section.
-:Revision: version="3.28" date="2016-06-21" status="final"
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $node: The node a page or section is being created for.
 $page: Whether the content is for a page.
 
 This template is called by importing stylesheets before any content of a page
-or section, but after the title. It calls *{html.content.pre.custom}, then
-applies %{html.content.pre.mode} to ${node}. If the ${page} parameter is true,
+or section, but after the title. It calls {html.content.pre.custom}, then
+applies {html.content.pre.mode} to $node. If the $page parameter is true,
 then this template is being called on an output page. Otherwise, it is being
 called on a section within a page.
 -->
@@ -901,14 +955,16 @@ called on a section within a page.
 <!--**==========================================================================
 html.content.pre.custom
 Stub to output content before the content of a page or section.
-:Stub: true
-:Revision: version="3.28" date="2016-06-21" status="final"
+@xsl:stub
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $node: The node a page or section is being created for.
 $page: Whether the content is for a page.
 
-This template is a stub, called by *{html.content.pre.custom}. It is called
-before %{html.content.pre.mode} is applied. Override this template to provide
-site-specific HTML before the content of a page or section. If the ${page}
+This template is a stub, called by {html.content.pre.custom}. It is called
+before {html.content.pre.mode} is applied. Override this template to provide
+site-specific HTML before the content of a page or section. If the $page
 parameter is true, then this template is being called on an output page.
 Otherwise, it is being called on a section within a page.
 -->
@@ -921,13 +977,15 @@ Otherwise, it is being called on a section within a page.
 <!--%%==========================================================================
 html.content.pre.mode
 Output content before the content of a page or section.
-:Revision: version="3.28" date="2016-06-21" status="final"
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $page: Whether the content is for a page.
 
-This mode is applied by *{html.content.pre} after calling
-*{html.content.pre.custom}. Importing stylesheets can use this to add
+This mode is applied by {html.content.pre} after calling
+{html.content.pre.custom}. Importing stylesheets can use this to add
 additional content for specific types of input elements before the content
-of a page or section. If the ${page} parameter is true, then this template
+of a page or section. If the $page parameter is true, then this template
 is being called on an output page. Otherwise, it is being called on a section
 within a page.
 -->
@@ -939,13 +997,15 @@ within a page.
 <!--**==========================================================================
 html.content.post
 Output content after the content of a page or section, before subsections.
-:Revision: version="3.28" date="2016-06-21" status="final"
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $node: The node a page or section is being created for.
 $page: Whether the content is for a page.
 
 This template is called by importing stylesheets after any content of a page
-or section, but before any subsections. It applies %{html.content.post.mode}
-to ${node}, then calls *{html.content.post.custom}. If the ${page} parameter
+or section, but before any subsections. It applies {html.content.post.mode}
+to $node, then calls {html.content.post.custom}. If the $page parameter
 is true, then this template is being called on an output page. Otherwise, it
 is being called on a section within a page.
 -->
@@ -965,15 +1025,17 @@ is being called on a section within a page.
 <!--**==========================================================================
 html.content.post.custom
 Stub to output content after the content of a page or section, before subsections.
-:Stub: true
-:Revision: version="3.28" date="2016-06-21" status="final"
+@xsl:stub
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $node: The node a page or section is being created for.
 $page: Whether the content is for a page.
 
-This template is a stub, called by *{html.content.post.custom}. It is called
-after %{html.content.pre.mode} is applied. Override this template to provide
+This template is a stub, called by {html.content.post.custom}. It is called
+after {html.content.pre.mode} is applied. Override this template to provide
 site-specific HTML after the content of a page or section, but before any
-subsections. If the ${page} parameter is true, then this template is being
+subsections. If the $page parameter is true, then this template is being
 called on an output page. Otherwise, it is being called on a section within
 a page.
 -->
@@ -986,13 +1048,15 @@ a page.
 <!--%%==========================================================================
 html.content.post.mode
 Output content after the content of a page or section, before subsections.
-:Revision: version="3.28" date="2016-06-21" status="final"
+@revision[version=3.28 date=2016-06-21 status=final]
+
+[xsl:params]
 $page: Whether the content is for a page.
 
-This mode is applied by *{html.content.post} before calling
-*{html.content.post.custom}. Importing stylesheets can use this to add
+This mode is applied by {html.content.post} before calling
+{html.content.post.custom}. Importing stylesheets can use this to add
 additional content for specific types of input elements after the content
-of a page or section, but before any subsections. If the ${page} parameter
+of a page or section, but before any subsections. If the $page parameter
 is true, then this template is being called on an output page. Otherwise,
 it is being called on a section within a page.
 -->
@@ -1004,19 +1068,21 @@ it is being called on a section within a page.
 <!--**==========================================================================
 html.css
 Output all CSS for an HTML output page.
-:Revision:version="1.0" date="2010-12-23" status="final"
+@revision[version=1.0 date=2010-12-23 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
 This template creates the CSS for an HTML output page, including the enclosing
-HTML #{style} element. It calls the templates *{html.css.content} to output the
+HTML `style` element. It calls the templates {html.css.content} to output the
 actual CSS contents.
 
-The ${direction} parameter specifies the directionality of the text for the
-language of the document. The ${left} and ${right} parameters are based on
-${direction}, and can be used to set beginning and ending margins or other
+The $direction parameter specifies the directionality of the text for the
+language of the document. The $left and $right parameters are based on
+$direction, and can be used to set beginning and ending margins or other
 dimensions. All parameters can be automatically computed if not provided.
 -->
 <xsl:template name="html.css">
@@ -1048,16 +1114,18 @@ dimensions. All parameters can be automatically computed if not provided.
 <!--**==========================================================================
 html.css.content
 Output actual CSS content for an HTML output page.
-:Revision:version="1.0" date="2010-12-23" status="final"
+@revision[version=1.0 date=2010-12-23 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
 This template creates the CSS content for an HTML output page. It is called by
-*{html.css}. It calls the templates *{html.css.core}, *{html.css.elements}, and
-*{html.css.syntax}. It then calls the mode %{html.css.mode} on ${node} and
-calls the template *{html.css.custom}.
+{html.css}. It calls the templates {html.css.core}, {html.css.elements}, and
+{html.css.syntax}. It then calls the mode {html.css.mode} on $node and
+calls the template {html.css.custom}.
 -->
 <xsl:template name="html.css.content">
   <xsl:param name="node" select="."/>
@@ -1109,14 +1177,16 @@ calls the template *{html.css.custom}.
 <!--%%==========================================================================
 html.css.mode
 Output CSS specific to the input format.
-:Revision:version="1.0" date="2010-05-26" status="final"
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+@revision[version=1.0 date=2010-05-26 status=final]
 
-This template is called by *{html.css.content} to output CSS specific to the
+[xsl:params]
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
+
+This template is called by {html.css.content} to output CSS specific to the
 input format. Importing stylesheets may implement this for any element that
-will be passed to *{html.page}. If they do not, the output HTML will only have
+will be passed to {html.page}. If they do not, the output HTML will only have
 the common CSS.
 -->
 <xsl:template mode="html.css.mode" match="*">
@@ -1139,17 +1209,19 @@ the common CSS.
 <!--**==========================================================================
 html.css.core
 Output CSS that does not reference source elements.
-:Revision: version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
 This template outputs CSS that can be used in any HTML. It does not reference
 elements from DocBook, Mallard, or other source languages. It provides the
-common spacings for block-level elements lik paragraphs and lists, defines
-styles for links, and defines four common wrapper divs: #{header}, #{side},
-#{body}, and #{footer}.
+common spacings for block-level elements like paragraphs and lists, defines
+styles for links, and defines four common wrapper divs: `header`, `side`,
+`body`, and `footer`.
 
 All parameters can be automatically computed if not provided.
 -->
@@ -1423,11 +1495,13 @@ a img { border: none; }
 <!--**==========================================================================
 html.css.elements
 Output CSS for common elements from source formats.
-:Revision: version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
 This template outputs CSS for elements from source languages like DocBook and
 Mallard. It defines them using common class names. The common names are often
@@ -2078,17 +2152,19 @@ div.yelp-data { display: none; }
 <!--**==========================================================================
 html.css.syntax
 Output CSS for syntax highlighting.
-:Revision: version="1.0" date="2010-12-06" status="final"
+@revision[version=1.0 date=2010-12-06 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
 This template outputs CSS to support syntax highlighting of code blocks. Syntax
 highlighting is done at document load time with JavaScript. Text in code blocks
 is broken up into chunks and wrapped in HTML elements with particular classes.
 This template outputs CSS to match those elements and style them with the
-built-in themeable colors from !{color}.
+built-in themeable colors from {color}.
 
 All parameters can be automatically computed if not provided.
 -->
@@ -2164,14 +2240,16 @@ All parameters can be automatically computed if not provided.
 <!--**==========================================================================
 html.css.custom
 Stub to output custom CSS common to all HTML transformations.
-:Stub: true
-:Revision: version="1.0" date="2010-05-25" status="final"
+@xsl:stub
+@revision[version=1.0 date=2010-05-25 status=final]
+
+[xsl:params]
 $node: The node to create CSS for.
-$direction: The directionality of the text, either #{ltr} or #{rtl}.
-$left: The starting alignment, either #{left} or #{right}.
-$right: The ending alignment, either #{left} or #{right}.
+$direction: The directionality of the text, either `ltr` or `rtl`.
+$left: The starting alignment, either `left` or `right`.
+$right: The ending alignment, either `left` or `right`.
 
-This template is a stub, called by *{html.css.content}. You can override this
+This template is a stub, called by {html.css.content}. You can override this
 template to provide additional CSS that will be used by all HTML output.
 -->
 <xsl:template name="html.css.custom">
@@ -2195,14 +2273,16 @@ template to provide additional CSS that will be used by all HTML output.
 <!--**==========================================================================
 html.js
 Output all JavaScript for an HTML output page.
-:Revision:version="3.28" date="2017-07-05" status="final"
+@revision[version=3.28 date=2017-07-05 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
 This template creates the JavaScript for an HTML output page. It calls the
-templates *{html.js.syntax} and *{html.js.mathjax} to
-output references to external libraries. It then calls *{html.js.custom} to
-output references to custom JavaScript files. Finally, it calls
-*{html.js.script} to output local JavaScript created by *{html.js.content}.
+templates {html.js.syntax} and {html.js.mathjax} to output references to
+external libraries. It then calls {html.js.custom} to output references to
+custom JavaScript files. Finally, it calls {html.js.script} to output local
+JavaScript created by {html.js.content}.
 -->
 <xsl:template name="html.js">
   <xsl:param name="node" select="."/>
@@ -2223,13 +2303,15 @@ output references to custom JavaScript files. Finally, it calls
 
 <!--**==========================================================================
 html.js.mathjax
-Output #{script} element to include MathJax.
-:Revision: version="1.0" date="2012-11-13" status="final"
+Output a `script` element to include MathJax.
+@revision[version=1.0 date=2012-11-13 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template outputs an HTML #{script} tag to reference MathJax. It only
-outputs a #{script} element if ${node} has MathML descendent content. By
-default, this template uses #{cdn.mathjax.org}. If you wish to use a local
+This template outputs an HTML `script` tag to reference MathJax. It only
+outputs a `script` element if $node has MathML descendent content. By
+default, this template uses `cdn.mathjax.org`. If you wish to use a local
 copy, override this template and provide the necessary files.
 -->
 <xsl:template name="html.js.mathjax">
@@ -2246,15 +2328,17 @@ copy, override this template and provide the necessary files.
 
 <!--**==========================================================================
 html.js.script
-Output a JavaScript #{script} tag containing local content.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output a JavaScript `script` tag containing local content.
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template is called by *{html.js} to output JavaScript content. It outputs
-a #{script} tag and calls *{html.js.content} to output the contents. To force
-all JavaScript into external files, override this template to output a #{script}
-tag referencing an external file with the #{src} attribute, then output the
-result of *{html.js.content} to that file.
+This template is called by {html.js} to output JavaScript content. It outputs
+a `script` tag and calls {html.js.content} to output the contents. To force
+all JavaScript into external files, override this template to output a `script`
+tag referencing an external file with the `src` attribute, then output the
+result of {html.js.content} to that file.
 -->
 <xsl:template name="html.js.script">
   <xsl:param name="node" select="."/>
@@ -2269,13 +2353,15 @@ result of *{html.js.content} to that file.
 <!--**==========================================================================
 html.js.content
 Output JavaScript content for an HTML output page.
-:Revision:version="3.28" date="2017-07-05" status="final"
+@revision[version=3.28 date=2017-07-05 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template is called by *{html.js.script} to output JavaScript content. It
-does not output an HTML #{script} tag. This template calls the templates
-*{html.js.core}, *{html.js.ui}, and *{html.js.media}. It then calls the mode
-%{html.js.mode} on ${node} and calls the template *{html.js.content.custom}.
+This template is called by {html.js.script} to output JavaScript content. It
+does not output an HTML `script` tag. This template calls the templates
+{html.js.core}, {html.js.ui}, and {html.js.media}. It then calls the mode
+{html.js.mode} on $node and calls the template {html.js.content.custom}.
 -->
 <xsl:template name="html.js.content">
   <xsl:param name="node" select="."/>
@@ -2298,11 +2384,13 @@ does not output an HTML #{script} tag. This template calls the templates
 <!--**==========================================================================
 html.js.core
 Output JavaScript for core features.
-:Revision: version="3.4" date="2011-11-04" status="final"
+@revision[version=3.4 date=2011-11-04 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
 This template outputs JavaScript to support basic features used by all documents.
-Currently, it outputs code to highlight a section when #{location.hash} is set.
+Currently, it outputs code to highlight a section when `location.hash` is set.
 -->
 <xsl:template name="html.js.core">
   <xsl:param name="node" select="."/>
@@ -2329,7 +2417,9 @@ document.addEventListener('DOMContentLoaded', function() {
 <!--**==========================================================================
 html.js.ui
 Output JavaScript for UI extensions.
-:Revision: version="1.0" date="2011-06-17" status="final"
+@revision[version=1.0 date=2011-06-17 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
 This template outputs JavaScript that implements certain common UI extensions,
@@ -2470,7 +2560,9 @@ document.addEventListener('DOMContentLoaded', function() {
 <!--**==========================================================================
 html.js.media
 Output JavaScript to control media elements.
-:Revision: version="1.0" date="2010-01-01" status="final"
+@revision[version=1.0 date=2010-01-01 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
 This template outputs JavaScript that controls media elements. It provides
@@ -2693,14 +2785,16 @@ document.addEventListener('DOMContentLoaded', function() {
 
 <!--**==========================================================================
 html.js.syntax
-Output #{script} elements for syntax highlighting.
-:Revision: version="3.28" date="2016-01-03" status="final"
+Output `script` elements for syntax highlighting.
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template outputs HTML #{script} elements to enable syntax highlighting.
-It only outputs if @{html.syntax.highlight} is #{true}. It outputs one #{script}
-element to load in #{highlight.js}, and another to initialize #{highlight.js}
-on all #{code} elements with #{"syntax"} in the class value.
+This template outputs HTML `script` elements to enable syntax highlighting.
+It only outputs if {html.syntax.highlight} is `true`. It outputs one `script`
+element to load in `highlight.js`, and another to initialize `highlight.js`
+on all `code` elements with `"syntax"` in the class value.
 -->
 <xsl:template name="html.js.syntax">
   <xsl:param name="node" select="."/>
@@ -2720,11 +2814,11 @@ document.addEventListener('DOMContentLoaded', function() {
 <!--%%==========================================================================
 html.js.mode
 Output JavaScript specific to the input format.
-:Revision:version="1.0" date="2010-01-01" status="final"
+@revision[version=1.0 date=2010-01-01 status=final]
 
-This template is called by *{html.js.content} to output JavaScript specific to
+This mode is called by {html.js.content} to output JavaScript specific to
 the input format. Importing stylesheets may implement this for any element that
-will be passed to *{html.page}. If they do not, the output HTML will only have
+will be passed to {html.page}. If they do not, the output HTML will only have
 the common JavaScript.
 -->
 <xsl:template mode="html.js.mode" match="*">
@@ -2734,13 +2828,15 @@ the common JavaScript.
 <!--**==========================================================================
 html.js.custom
 Stub to reference custom JavaScript common to all HTML transformations.
-:Stub: true
-:Revision: version="1.0" date="2010-04-16" status="final"
+@xsl:stub
+@revision[version=1.0 date=2010-04-16 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template is a stub, called by *{html.js}. You can override this template
+This template is a stub, called by {html.js}. You can override this template
 to reference additional external JavaScript files. If you want to include
-JavaScript into the main #{script} tag instead, use *{html.js.content.custom}.
+JavaScript into the main `script` tag instead, use {html.js.content.custom}.
 -->
 <xsl:template name="html.js.custom">
   <xsl:param name="node" select="."/>
@@ -2750,14 +2846,16 @@ JavaScript into the main #{script} tag instead, use *{html.js.content.custom}.
 <!--**==========================================================================
 html.js.content.custom
 Stub to output custom JavaScript common to all HTML transformations.
-:Stub: true
-:Revision: version="1.0" date="2010-04-16" status="final"
+@xsl:stub
+@revision[version=1.0 date=2010-04-16 status=final]
+
+[xsl:params]
 $node: The node to create JavaScript for.
 
-This template is a stub, called by *{html.js.content}. You can override this
+This template is a stub, called by {html.js.content}. You can override this
 template to provide additional JavaScript that will be used by all HTML output.
-This template is called inside a #{script} tag, and is intended to include
-JavaScript code in the output page. See *{html.js.custom} to include a custom
+This template is called inside a `script` tag, and is intended to include
+JavaScript code in the output page. See {html.js.custom} to include a custom
 reference to an external JavaScript file.
 -->
 <xsl:template name="html.js.content.custom">
@@ -2767,28 +2865,30 @@ reference to an external JavaScript file.
 
 <!--**==========================================================================
 html.lang.attrs
-Output #{lang} and #{dir} attributes.
-:Revision: version="1.0" date="2010-06-10" status="final"
+Output `lang` and `dir` attributes.
+@revision[version=1.0 date=2010-06-10 status=final]
+
+[xsl:params]
 $node: The current element in the input document.
-$parent: A parent node to take ${lang} and ${dir} from.
-$lang: The language for ${node}.
-$dir: The text directionality for ${node}.
-
-This template outputs #{lang}, #{xml:lang}, or #{dir} attributes if necessary.
-If ${lang} is not set, it will be taken from the #{xml:lang} or #{lang}
-attribute of ${node}. If ${dir} is not set, it will be taken from the #{its:dir}
-attribute of ${node} or computed based on ${lang}.
-
-The ${parent} parameter defaults to an empty node set. If it is set to a
-non-empty node set, this template will attempt to get ${lang} and ${dir} from
-${parent} if they are not set on ${node}. This is occasionally useful when a
+$parent: A parent node to take $lang and $dir from.
+$lang: The language for $node.
+$dir: The text directionality for $node.
+
+This template outputs `lang`, `xml:lang`, or `dir` attributes if necessary.
+If $lang is not set, it will be taken from the `xml:lang` or `lang`
+attribute of $node. If $dir is not set, it will be taken from the `its:dir`
+attribute of $node or computed based on $lang.
+
+The $parent parameter defaults to an empty node set. If it is set to a
+non-empty node set, this template will attempt to get $lang and $dir from
+$parent if they are not set on $node. This is occasionally useful when a
 wrapper element in a source language doesn't directly create any output
 elements.
 
-This template outputs either an #{xml:lang} or a #{lang} attribute, depending
-on whether @{html.xhtml} is #{true}. It only outputs an #{xml:lang} or #{lang}
-attribute if $lang is non-empty. This template also outputs a #{dir} attribute
-if ${dir} is non-empty.
+This template outputs either an `xml:lang` or a `lang` attribute, depending
+on whether {html.xhtml} is `true`. It only outputs an `xml:lang` or `lang`
+attribute if $lang is non-empty. This template also outputs a `dir` attribute
+if $dir is non-empty.
 -->
 <xsl:template name="html.lang.attrs">
   <xsl:param name="node" select="."/>
@@ -2854,17 +2954,19 @@ if ${dir} is non-empty.
 <!--**==========================================================================
 html.syntax.class
 Output HTML class values for syntax highlighting.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
+
+[xsl:params]
 $node: The source element whose content will be syntax highlighted.
 
-This template calls %{html.syntax.class.mode} on ${node}. If the result of that
+This template calls {html.syntax.class.mode} on $node. If the result of that
 mode is a suitable language identifier, it outputs appropriate CSS class names
-to enable syntax highlighting. The output should be placed in the #{class}
-attribute of a #{pre} or similar output element by the calling template.
+to enable syntax highlighting. The output should be placed in the `class`
+attribute of a `pre` or similar output element by the calling template.
 
-Importing stylesheets should implement %{html.syntax.class.mode} for any source
+Importing stylesheets should implement {html.syntax.class.mode} for any source
 elements that may be syntax highlighted, then call this template when building
-the #{class} attribute for output elements.
+the `class` attribute for output elements.
 -->
 <xsl:template name="html.syntax.class">
   <xsl:param name="node" select="."/>
@@ -2881,9 +2983,9 @@ the #{class} attribute for output elements.
 <!--%%==========================================================================
 html.syntax.class.mode
 Get the syntax highlighting language for a source-specific element.
-:Revision:version="3.28" date="2016-01-03" status="final"
+@revision[version=3.28 date=2016-01-03 status=final]
 
-This mode is called by *{html.syntax.class} on source elements that may have
+This mode is called by {html.syntax.class} on source elements that may have
 syntax highlighted. This template should be implemented by importing stylesheets.
 It should return a simple language identifier.
 -->
@@ -2893,11 +2995,11 @@ It should return a simple language identifier.
 <!--**==========================================================================
 html.media.controls
 Output media controls for a video or audio object.
-:Revision:version="3.28" date="2016-02-12" status="final"
+@revision[version=3.28 date=2016-02-12 status=final]
 
 This template outputs HTML containing controls for a media play for audio or
 video HTML elements. To work with the built-in JavaScript binding code, it
-should be placed immediately after the #{audio} or #{video} element.
+should be placed immediately after the `audio` or `video` element.
 -->
 <xsl:template name="html.media.controls">
   <xsl:param name="type" select="'video'"/>
diff --git a/xslt/common/icons.xsl b/xslt/common/icons.xsl
index d76af3d9..c3740517 100644
--- a/xslt/common/icons.xsl
+++ b/xslt/common/icons.xsl
@@ -21,19 +21,19 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Icons
 Specify common named icons to style output.
-:Revision:version="3.28" date="2017-05-24" status="final"
+@revision[version=3.28 date=2017-05-24 status=final]
 
 This stylesheet provides a common interface to specify icons for transformations
 to presentation-oreinted formats. This allows similar output for different
 types of input documents.
 
 Many of the icons are output as SVG elements that can be embedded directly
-into an HTML document. These icons use class names like #{yelp-svg-fill} and
-#{yelp-svg-stroke}, allowing you to style them with colors from the !{colors}
+into an HTML document. These icons use class names like `yelp-svg-fill` and
+`yelp-svg-stroke`, allowing you to style them with colors from the {colors}
 module.
 
 Some SVG icons are read from separate source SVG files. When this is done, the
-%{icons.svg.mode} mode is applied to reduce the SVG to the minimal form needed
+{icons.svg.mode} mode is applied to reduce the SVG to the minimal form needed
 for proper presentation.
 -->
 
@@ -41,11 +41,11 @@ for proper presentation.
 <!--%%==========================================================================
 icons.svg.mode
 Reduce SVG icons to elements needed for presentation.
-:Revision:version="3.28" date="2017-05-24" status="final"
+@revision[version=3.28 date=2017-05-24 status=final]
 
 This mode matches SVG elements and outputs only the SVG needed for presentation.
 It strips out metadata and other elements and attributes used primarily by
-authoring tools. It also uses the @{html.svg.namespace} parameter to output SVG
+authoring tools. It also uses the {html.svg.namespace} parameter to output SVG
 with or without namespace information, compatible with the dual HTML/XHTML
 output of these stylesheets.
 -->
@@ -74,17 +74,19 @@ output of these stylesheets.
 
 <!--**==========================================================================
 icons.svg.note
-Output an #{svg} element for a note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
+
+[xsl:params]
 $style: The style of the note.
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
-and other types of admonitions. It takes a ${style} parameter specifying a
-note style. The default style is #{"note"}. This template uses the ${style}
+This template outputs an SVG `svg` element with an icon suitable for notes
+and other types of admonitions. It takes a $style parameter specifying a
+note style. The default style is `"note"`. This template uses the $style
 parameter to determine which specific template to call to output the SVG
 content.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
 -->
 <xsl:template name="icons.svg.note">
   <xsl:param name="style"/>
@@ -122,14 +124,14 @@ SVG icons can use CSS class names to pick up colors from the !{colors} module.
 
 <!--**==========================================================================
 icons.svg.note.advanced
-Output an #{svg} element for an advanced note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for an advanced note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with advanced information.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.advanced">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -139,14 +141,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.bug
-Output an #{svg} element for a bug note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a bug note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 about known bugs.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.bug">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -156,14 +158,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.caution
-Output an #{svg} element for a caution note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a caution note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with cautionary information.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.caution">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -173,14 +175,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.danger
-Output an #{svg} element for a danger note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a danger note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 about dangerous situations.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.danger">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -190,14 +192,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.important
-Output an #{svg} element for an important note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for an important note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with important information.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.important">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -207,14 +209,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.note
-Output an #{svg} element for a note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with general information.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.note">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -224,14 +226,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.package
-Output an #{svg} element for a package note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a package note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 about packages the user may need to install.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.package">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -241,14 +243,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.tip
-Output an #{svg} element for a tip note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a tip note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with tips.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.tip">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -258,14 +260,14 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.note.warning
-Output an #{svg} element for a warning note icon.
-:Revision:version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a warning note icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with an icon suitable for notes
+This template outputs an SVG `svg` element with an icon suitable for notes
 with warnings.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.note.warning">
   <xsl:apply-templates mode="icons.svg.mode"
@@ -276,7 +278,7 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 <!--@@==========================================================================
 icons.size.quote
 The size of the quote icons.
-:Revision:version="3.8" date="2012-09-29" status="final"
+@revision[version=3.8 date=2012-09-29 status=final]
 
 This parameter specifies the size of the block quote icon. Use an integer giving
 the width of the image files in pixels. Icons are assumed to be square, and all
@@ -293,15 +295,15 @@ This parameters still affects the size of that character.
 
 <!--**==========================================================================
 icons.svg.figure.zoom.in
-Output an #{svg} element for a figure zoom-in icon.
-:Revision: version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a figure zoom-in icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with the zoom-in icon for figures.
+This template outputs an SVG `svg` element with the zoom-in icon for figures.
 Figures automatically scale images down. This icon shows them at their original
 size.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-stroke} and #{yelp-svg-fill} class
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-stroke` and `yelp-svg-fill` class
 names.
 -->
 <xsl:template name="icons.svg.figure.zoom.in">
@@ -316,15 +318,15 @@ names.
 
 <!--**==========================================================================
 icons.svg.figure.zoom.out
-Output an #{svg} element for a figure zoom-out icon.
-:Revision: version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a figure zoom-out icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with the zoom-in icon for figures.
+This template outputs an SVG `svg` element with the zoom-in icon for figures.
 Figures automatically scale images down. This icon scales them back down after
 they have been zoomed.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-stroke} and #{yelp-svg-fill} class
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-stroke` and `yelp-svg-fill` class
 names.
 -->
 <xsl:template name="icons.svg.figure.zoom.out">
@@ -339,13 +341,13 @@ names.
 
 <!--**==========================================================================
 icons.svg.media.play
-Output an #{svg} element for a figure zoom-out icon.
-:Revision: version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a figure zoom-out icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with a play icon for media controls.
+This template outputs an SVG `svg` element with a play icon for media controls.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.media.play">
   <svg:svg width="20" height="20" class="media-play">
@@ -356,13 +358,13 @@ By default, this icon uses the #{yelp-svg-fill} class name.
 
 <!--**==========================================================================
 icons.svg.media.pause
-Output an #{svg} element for a figure zoom-out icon.
-:Revision: version="3.28" date="2017-05-24" status="final"
+Output an `svg` element for a figure zoom-out icon.
+@revision[version=3.28 date=2017-05-24 status=final]
 
-This template outputs an SVG #{svg} element with a pause icon for media controls.
+This template outputs an SVG `svg` element with a pause icon for media controls.
 
-SVG icons can use CSS class names to pick up colors from the !{colors} module.
-By default, this icon uses the #{yelp-svg-fill} class name.
+SVG icons can use CSS class names to pick up colors from the {colors} module.
+By default, this icon uses the `yelp-svg-fill` class name.
 -->
 <xsl:template name="icons.svg.media.pause">
   <svg:svg width="20" height="20" class="media-pause">
diff --git a/xslt/common/l10n-numbers.xsl b/xslt/common/l10n-numbers.xsl
index 8d7b394d..d1322845 100644
--- a/xslt/common/l10n-numbers.xsl
+++ b/xslt/common/l10n-numbers.xsl
@@ -28,6 +28,8 @@ Localized Numbers
 <!--**==========================================================================
 l10n.number
 Formats a number according to a localized numbering system
+
+[xsl:params]
 $value: The numeric value of the number to format
 $format: The numbering system to use
 
@@ -117,6 +119,8 @@ REMARK: Talk about numbering systems
 <!--**==========================================================================
 l10n.number.alphabetic
 Formats a number using an alphabetic numbering system
+
+[xsl:params]
 $value: The numeric value of the number to format
 $alphabet: A string containing the characters of the alphabet to use
 
@@ -156,6 +160,8 @@ REMARK: Talk about alphabetic numbering systems
 <!--**==========================================================================
 l10n.number.numeric
 Formats a number using a numeric numbering system with any radix
+
+[xsl:params]
 $value: The numeric value of the number to format
 $digits: A string containing the digits to use, starting with zero
 
@@ -191,11 +197,13 @@ REMARK: Talk about numeric numbering systems
 <!--**==========================================================================
 l10n.number.cjk-ideographic
 Formats a number using a CJK ideographic system
+
+[xsl:params]
 $value: The numeric value of the number to format
 $format: Which ideographic system to use
 
-REMARK: Talk about CJK ideographic numbering systems.  Valid values of ${format}
-are #{cjk-japanese}, #{cjk-chinese-simp}, and #{cjk-chinese-trad}.
+REMARK: Talk about CJK ideographic numbering systems.  Valid values of $format
+are `cjk-japanese`, `cjk-chinese-simp`, and `cjk-chinese-trad`.
 -->
 <xsl:template name="l10n.number.cjk-ideographic">
   <xsl:param name="value"/>
@@ -282,11 +290,13 @@ are #{cjk-japanese}, #{cjk-chinese-simp}, and #{cjk-chinese-trad}.
 <!--**==========================================================================
 l10n.number.ionic
 Formats a number using the Ionic numeral system
+
+[xsl:params]
 $value: The numeric value of the number to format
 $format: Which format to use
 
-REMARK: Talk about the Ionic numeral system.  Talk about ${format}
-See #{http://en.wikipedia.org/wiki/Greek_numerals}.
+REMARK: Talk about the Ionic numeral system.  Talk about $format
+See `http://en.wikipedia.org/wiki/Greek_numerals`.
 -->
 <xsl:template name="l10n.number.ionic">
   <xsl:param name="value"/>
diff --git a/xslt/common/l10n.xsl b/xslt/common/l10n.xsl
index ceb058e6..3d1c87d4 100644
--- a/xslt/common/l10n.xsl
+++ b/xslt/common/l10n.xsl
@@ -24,7 +24,7 @@ along with this program; see the file COPYING.LGPL.  If not, see
 <!--!!==========================================================================
 Localized Strings
 Templates for translated strings, with format strings and plural forms.
-:Revision:version="3.18" date="2015-07-24" status="final"
+@revision[version=3.18 date=2015-07-24 status=final]
 
 This stylesheet contains templates for getting localized strings, including
 format strings and plural forms. Format strings are important for proper
@@ -42,11 +42,11 @@ of the file is designed to work well with itstool's join mode.
 <!--++==========================================================================
 l10n.msgstr.key
 Get a translated message from an ID and a language.
-:Revision:version="3.4" date="2012-01-26" status="final"
+@revision[version=3.4 date=2012-01-26 status=final]
 
 This key indexes all message translations in a message catalog file. The elements
-are indexed by the concatenation of the message id, the string #{__LC__}, and the
-#{xml:lang} attribute converted to lowercase.
+are indexed by the concatenation of the message id, the string `__LC__`, and the
+`xml:lang` attribute converted to lowercase.
 -->
 <xsl:key name="l10n.msgstr.key" match="msg:msg/msg:msgstr"
          use="concat(../@id, '__LC__',
@@ -58,10 +58,10 @@ are indexed by the concatenation of the message id, the string #{__LC__}, and th
 <!--@@==========================================================================
 l10n.locale
 The top-level locale of the document.
-:Revision:version="3.18" date="2015-08-13" status="final"
+@revision[version=3.18 date=2015-08-13 status=final]
 
 This parameter provides the top-level locale of the document, taken from either
-the #{xml:lang} or the #{lang} parameter of the root element. It holds the
+the `xml:lang` or the `lang` parameter of the root element. It holds the
 locale exactly as specified in the document, with no normalization.
 -->
 <xsl:param name="l10n.locale">
@@ -79,70 +79,72 @@ locale exactly as specified in the document, with no normalization.
 <!--**==========================================================================
 l10n.gettext
 Look up the translation for a string.
-:Revision:version="3.18" date="2015-07-29" status="final"
+@revision[version=3.18 date=2015-07-29 status=final]
+
+[xsl:params]
 $domain: The domain to look up the string in.
 $msgid: The id of the string to look up, often the string in the C locale.
 $lang: The locale to use when looking up the translated string.
 $number: The cardinality for plural-form lookups.
 $form: The form name for plural-form lookups.
 $format: Whether to treat the result as a format string.
-$node: A context node to pass to %{l10n.format.mode}.
-$string: A string to pass to %{l10n.format.mode} for #{msg:string} elements.
+$node: A context node to pass to {l10n.format.mode}.
+$string: A string to pass to {l10n.format.mode} for `msg:string` elements.
 
 This template extracts a translated version of a source string. In simple cases,
-the source string is exactly the string in ${msgid}, though in more complex
-cases, the ${msgid} parameter is a separate unique identifier.
+the source string is exactly the string in $msgid, though in more complex
+cases, the $msgid parameter is a separate unique identifier.
 
 This template looks up the translation in a message catalog file based on the
-${domain} parameter. The file must be in a #{domains} subdirectory relative to
-the directory holding this stylesheet and be named the same as ${domain} with
-the suffix #{.xml}. This template will fail if no such file is found. By
-default, the domain is #{yelp-xsl} to reference the translations shipped with
+$domain parameter. The file must be in a `domains` subdirectory relative to
+the directory holding this stylesheet and be named the same as $domain with
+the suffix `.xml`. This template will fail if no such file is found. By
+default, the domain is `yelp-xsl` to reference the translations shipped with
 these stylesheets. Extensions and third-party stylesheets, however, can use
-this template by installing a file and passing the ${domain} parameter.
+this template by installing a file and passing the $domain parameter.
 
 The message catalog file format is designed to work with the XML/PO translation
-tool #{itstool}, using its join mode to create a single polylingual file. There
+tool `itstool`, using its join mode to create a single polylingual file. There
 is no tool to automatically extract messages from XSLT files. You must add
 messages to the source catalog file when adding translatable strings.
 
-The message catalog file contains a set of #{msg} elements, one for each string
-that needs translation. Each #{msg} element has an #{id} attribute. It is this
-attribute that is matched against the ${msgid} parameter. Each #{msg} element
-then has one or more #{msgstr} elements, each with an #{xml:lang} attribute.
-This template tries to find a best match language with the ${lang} parameter,
-falling back to a #{msgstr} element with no #{xml:lang} attribute.
+The message catalog file contains a set of `msg` elements, one for each string
+that needs translation. Each `msg` element has an `id` attribute. It is this
+attribute that is matched against the $msgid parameter. Each `msg` element
+then has one or more `msgstr` elements, each with an `xml:lang` attribute.
+This template tries to find a best match language with the $lang parameter,
+falling back to a `msgstr` element with no `xml:lang` attribute.
 
 In a source message catalog file, put the string to be translated inside a
-singleton #{msgstr} element in each #{msg} element, without an #{xml:lang}
-parameter. Add this element even if it is the same as the #{id} attribute of
-the #{msg} element. These #{msgstr} elements are what #{itstool} uses to create
+singleton `msgstr` element in each `msg` element, without an `xml:lang`
+parameter. Add this element even if it is the same as the `id` attribute of
+the `msg` element. These `msgstr` elements are what `itstool` uses to create
 a PO file, and it provides the fallback string when no language matches.
 
-The #{xml:lang} attribute should contain an RFC 3066 language identifier, which
+The `xml:lang` attribute should contain an RFC 3066 language identifier, which
 is different from the POSIX locale identifiers used by gettext. To accommodate
 this difference, this stylesheet converts all identifiers to lowercase and
-replaces the characters #{_}, #{@}, and #{.} with the character #{-}. If it
-cannot find an exact match, it strips the part after the last #{-} and looks
-again. It repeats this as long as the identifier contains a #{-} character.
-If there is still no matching #{msgstr} element, it looks for one with no
-#{xml:lang} attribute.
+replaces the characters `_`, `@`, and `.` with the character `-`. If it
+cannot find an exact match, it strips the part after the last `-` and looks
+again. It repeats this as long as the identifier contains a `-` character.
+If there is still no matching `msgstr` element, it looks for one with no
+`xml:lang` attribute.
 
 Sometimes you have to provide different versions of a string for different
 cardinalities. While English and many other languages have singular and plural,
 some languages have no plural forms, while others have as many as six. These
 stylesheets use a numeric index for plural forms, similarly to gettext. To get
-the string for a plural, pass the cardinality in the ${number} parameter. This
-template gets an index for that number by calling *{l10n.plural.form}. The
-plural form index is in the ${form} parameter. You do not have to pass this
-parameter. It will be computed automatically based on the ${number} parameter.
+the string for a plural, pass the cardinality in the $number parameter. This
+template gets an index for that number by calling {l10n.plural.form}. The
+plural form index is in the $form parameter. You do not have to pass this
+parameter. It will be computed automatically based on the $number parameter.
 
 There is currently no support for editing plural forms using the standard PO
 syntax. Instead, plurals are defined with an XML snippet. Instead of putting
-the single translated message in the #{msgstr} element, plural messages have
-#{msgstr} child elements of the #{msgstr} element with the #{xml:lang}
-attribute. Each of these child #{msgstr} elements has a #{form} attribute that
-holds the numeric index returned by *{l10n.plural.form}. Translators must adapt
+the single translated message in the `msgstr` element, plural messages have
+`msgstr` child elements of the `msgstr` element with the `xml:lang`
+attribute. Each of these child `msgstr` elements has a `form` attribute that
+holds the numeric index returned by {l10n.plural.form}. Translators must adapt
 the XML snippet according to the plural rules and forms defined in this
 stylesheet for their language.
 
@@ -151,21 +153,21 @@ certain values are inserted. This template can handle format strings with XML
 marker elements to signal where values should be substituted. These values
 can be the result of applying templates.
 
-To enable format strings, set the ${format} parameter to #{true()}.
+To enable format strings, set the $format parameter to `true()`.
 Instead of just returning the translated string, this template will
-apply templates in the mode %{l10n.format.mode} to the fragment contained in
-the #{msgstr} element.
+apply templates in the mode {l10n.format.mode} to the fragment contained in
+the `msgstr` element.
 
-The ${node} and ${string} parameters are passed to templates in
-%{l10n.format.mode}. This stylesheet contains matches in %{l10n.format.mode}
-for the marker elements #{&lt;string/>} and #{&lt;node/>}. The element
-#{&lt;string/>} will be replaced by the string value of ${string}. The
-element #{&lt;node/>} will apply templates without a mode to ${node}.
-Text nodes are copied to the result in %{l10n.format.mode}.
+The $node and $string parameters are passed to templates in
+{l10n.format.mode}. This stylesheet contains matches in {l10n.format.mode}
+for the marker elements `<string/>` and `<node/>`. The element
+`<string/>` will be replaced by the string value of $string. The
+element `<node/>` will apply templates without a mode to $node.
+Text nodes are copied to the result in {l10n.format.mode}.
 
 If you need any other behavior, add elements with any name of your choosing to
-the format string, then match on those elements in %{l10n.format.mode}. You will
-be able to use the ${node} and ${string} parameters in your template. Try to
+the format string, then match on those elements in {l10n.format.mode}. You will
+be able to use the $node and $string parameters in your template. Try to
 use a name that is unique.
 -->
 <xsl:template name="l10n.gettext">
@@ -335,7 +337,9 @@ use a name that is unique.
 <!--**==========================================================================
 l10n.plural.form
 Extract the plural form index for a given cardinality.
-:Revision: version="3.18" date="2015-07-29" status="final"
+@revision[version=3.18 date=2015-07-29 status=final]
+
+[xsl:params]
 $number: The cardinality of the plural form.
 $lang: The locale to use when looking up the translated string.
 
@@ -343,7 +347,7 @@ This template returns a numeric index of a plural form for a given language,
 similarly to how indexes are used in gettext PO files. Different languages have
 different rules for plurals. Some languages have no plurals at all, while others
 have as many as six different forms. This plural form index is used by
-*{l10n.gettext} to determine the correct string to use.
+{l10n.gettext} to determine the correct string to use.
 
 The rules in this template are hand-written. They are not taken from the PO
 files. They are written by referencing the PO files in various GNOME modules,
@@ -504,16 +508,18 @@ as well as the plural rules in the Unicode CLDR.
 <!--**==========================================================================
 l10n.direction
 Determine the text direction for a language.
-:Revision: version="3.18" date="2015-08-13" status="final"
+@revision[version=3.18 date=2015-08-13 status=final]
+
+[xsl:params]
 $lang: The locale to use to determine the text direction.
 
-This template returns the text direction for the language ${lang}. It returns
-#{"ltr"} for left-to-right languages and #{"rtl"} for right-to-left languages.
-If ${lang} is not provided, it defaults to ${l10n.locale}, the top-level locale
+This template returns the text direction for the language $lang. It returns
+`"ltr"` for left-to-right languages and `"rtl"` for right-to-left languages.
+If $lang is not provided, it defaults to {l10n.locale}, the top-level locale
 of the document.
 
-This template calls *{l10n.gettext} with the string #{default:LTR} in the domain
-#{yelp-xsl}. The language is right-to-left if the string #{default:RTL} is
+This template calls {l10n.gettext} with the string `default:LTR` in the domain
+`yelp-xsl`. The language is right-to-left if the string `default:RTL` is
 returned. Otherwise, it is left-to-right. (This particular string is used to
 match the string used in GTK+, enabling translation memory.)
 -->
@@ -541,14 +547,16 @@ match the string used in GTK+, enabling translation memory.)
 <!--**==========================================================================
 l10n.align.start
 Determine the start alignment.
-:Revision: version="3.18" date="2015-07-27" status="final"
+@revision[version=3.18 date=2015-07-27 status=final]
+
+[xsl:params]
 $direction: The text direction.
 
-This template returns the string #{left} for left-to-right languages and the
-string #{right} for right-to-left languages. The result is suitable for
+This template returns the string `left` for left-to-right languages and the
+string `right` for right-to-left languages. The result is suitable for
 substituting in CSS rules that are direction-dependent. If you do not pass
-the ${direction} parameter, it defaults to calling *{l10n.direction} using
-the default locale defined in @{l10n.locale}.
+the $direction parameter, it defaults to calling {l10n.direction} using
+the default locale defined in {l10n.locale}.
 -->
 <xsl:template name="l10n.align.start">
   <xsl:param name="direction">
@@ -568,14 +576,16 @@ the default locale defined in @{l10n.locale}.
 <!--**==========================================================================
 l10n.align.end
 Determine the end alignment.
-:Revision: version="3.18" date="2015-07-27" status="final"
+@revision[version=3.18 date=2015-07-27 status=final]
+
+[xsl:params]
 $direction: The text direction.
 
-This template returns the string #{right} for left-to-right languages and the
-string #{left} for right-to-left languages. The result is suitable for
+This template returns the string `right` for left-to-right languages and the
+string `left` for right-to-left languages. The result is suitable for
 substituting in CSS rules that are direction-dependent. If you do not pass
-the ${direction} parameter, it defaults to calling *{l10n.direction} using
-the default locale defined in @{l10n.locale}.
+the $direction parameter, it defaults to calling {l10n.direction} using
+the default locale defined in {l10n.locale}.
 -->
 <xsl:template name="l10n.align.end">
   <xsl:param name="direction">
@@ -594,26 +604,28 @@ the default locale defined in @{l10n.locale}.
 
 <!--%%==========================================================================
 l10n.format.mode
-Process format strings from *{l10n.gettext}.
-:Revision: version="3.18" date="2015-08-13" status="final"
+Process format strings from {l10n.gettext}.
+@revision[version=3.18 date=2015-08-13 status=final]
+
+[xsl:params]
 $node: The node being processed in the original document.
 $string: String content to use for certain message format nodes.
 
-This mode is called by *{l10n.gettext} when its #{format} parameter is set to
+This mode is called by {l10n.gettext} when its `format` parameter is set to
 true. It is applied to the elements and text children of the translated message
-that *{l10n.gettext} finds. This allows you to insert content in format strings,
+that {l10n.gettext} finds. This allows you to insert content in format strings,
 rather than concatenating multiple translations to create a translated message.
 
 By default, this stylesheet provides matching templates in this mode for the
-elements #{node} and #{string}. The template for #{node} applies templates with
-no mode to the ${node} parameters passed to *{l10n.gettext}. The template for
-#{string} copies the text in the ${string} parameter passed to *{l10n.gettext}.
+elements `node` and `string`. The template for `node` applies templates with
+no mode to the $node parameter passed to {l10n.gettext}. The template for
+`string` copies the text in the $string parameter passed to {l10n.gettext}.
 Both parameters are passed to templates in this mode. Templates matching this
 mode should pass those parameters to child content if they process child
-content in %{l10n.format.mode}.
+content in {l10n.format.mode}.
 
 To use format strings in your own translations, use elements with names of
-your choosing in your message. You can use the #{node} and #{string} elements
+your choosing in your message. You can use the `node` and `string` elements
 without further implementation, if they fit your needs. Otherwise, take care
 to use element names that are unlikely to conflict with other templates using
 this mode.
diff --git a/xslt/common/ttml.xsl b/xslt/common/ttml.xsl
index ef74b1d7..2e95f65c 100644
--- a/xslt/common/ttml.xsl
+++ b/xslt/common/ttml.xsl
@@ -27,7 +27,7 @@ along with this program; see the file COPYING.LGPL. If not, see <http://www.gnu.
 <!--!!==========================================================================
 TTML Utilities
 Common templates to help with processing TTML documents.
-:Revision:version="3.4" date="2012-03-01" status="final"
+@revision[version=3.4 date=2012-03-01 status=final]
 
 This stylesheet contains common utilities for working with TTML documents.
 It contains templates for checking profiles and processing timing data.
@@ -37,7 +37,7 @@ It contains templates for checking profiles and processing timing data.
 <!--@@==========================================================================
 ttml.features
 The supported features and extensions for TTML documents.
-:Revision:version="3.4" date="2012-03-01" status="final"
+@evision[version=3.4 date=2012-03-01 status=final]
 
 This parameter lists the fully-qualified URIs of TTML features and extensions
 supported by the stylesheets. The values are in the form of a space-separated
@@ -52,25 +52,27 @@ set this to an appropriate value.
 <!--**==========================================================================
 ttml.time.range
 Return the absolute begin and end times for a timed element.
-:Revision: version="3.4" date="2012-03-02" status="final"
+@revision[version=3.4 date=2012-03-02 status=final]
+
+[xsl:params]
 $node: The element containing timing attributes.
 $range: The absolute range for the parent element.
-$begin: The value of the #{begin} attribute.
-$end: The value of the #{end} attribute.
-$dur: The value of the #{dur} attribute.
+$begin: The value of the `begin` attribute.
+$end: The value of the `end` attribute.
+$dur: The value of the `dur` attribute.
 
 This template returns the start and end time for a TTML element, based on the
-#{begin}, #{end}, and #{dur} attributes. It returns each of them as numbers
-of seconds, as returned by *{ttml.time.seconds}, separated by a comma. Begin
+`begin`, `end`, and `dur` attributes. It returns each of them as numbers
+of seconds, as returned by {ttml.time.seconds}, separated by a comma. Begin
 and end times are returned as absolute times, relative to the computed range
-of the parent element. The parent range may be passed in the ${range} parameter.
+of the parent element. The parent range may be passed in the $range parameter.
 If the parameter is empty, the parent range is computed automatically by calling
-this template on the nearest ancestor of ${node} with a #{begin} attribute.
+this template on the nearest ancestor of $node with a `begin` attribute.
 
-If both ${end} and ${dur} are provided, the end times for each are calculated,
+If both $end and $dur are provided, the end times for each are calculated,
 and the one that results in the shortest duration is used.
 
-If there is no end time for the element, the string #{∞} is used as the end time.
+If there is no end time for the element, the string `∞` is used as the end time.
 -->
 <xsl:template name="ttml.time.range">
   <xsl:param name="node" select="."/>
@@ -166,16 +168,18 @@ If there is no end time for the element, the string #{∞} is used as the end ti
 <!--**==========================================================================
 ttml.time.seconds
 Return the number of seconds for a time expression.
-:Revision: version="3.4" date="2012-03-02" status="final"
+@revision[version=3.4 date=2012-03-02 status=final]
+
+[xsl:params]
 $time: A TTML time expression.
 
-This template takes a time expression as used by the #{begin}, #{end}, and #{dur}
+This template takes a time expression as used by the `begin`, `end`, and `dur`
 attributes and returns the number of seconds that expression respresents. Time
-expressions may be any number parsable by the XPath #{number} function followed
-by one of the units #{ms} (milliseconds), #{s} (seconds), #{m} (minutes), or #{h}
-(hours). It returns #{0} if the time expression is invalid.
+expressions may be any number parsable by the XPath `number` function followed
+by one of the units `ms` (milliseconds), `s` (seconds), `m` (minutes), or `h`
+(hours). It returns `0` if the time expression is invalid.
 
-This template provides support only for the #{#time-offset} TTML feature. It
+This template provides support only for the `#time-offset` TTML feature. It
 does not support other methods of specifying times.
 -->
 <xsl:template name="ttml.time.seconds">
@@ -206,16 +210,18 @@ does not support other methods of specifying times.
 
 <!--**==========================================================================
 ttml.profile
-Check whether the stylesheets conform to a #{ttp:profile} element.
-:Revision: version="3.4" date="2012-03-01" status="final"
-$node: The #{ttp:profile} element to check.
+Check whether the stylesheets conform to a `ttp:profile` element.
+@revision[version=3.4 date=2012-03-01 status=final]
+
+[xsl:params]
+$node: The `ttp:profile` element to check.
 
-This template takes a #{ttp:profile} element in the ${node} parameter and
+This template takes a `ttp:profile` element in the $node parameter and
 determines whether or not the stylesheets meet all required features and
 extensions, per section 5.2 of the TTML 1.0 recommendation. This template
-uses the @{ttml.features} stylesheet parameter to determine which features
-are supported by the stylesheet. It returns the string #{"true"} if all
-required features are supported, #{"false"} otherwise.
+uses the {ttml.features} stylesheet parameter to determine which features
+are supported by the stylesheet. It returns the string `"true"` if all
+required features are supported, `"false"` otherwise.
 -->
 <xsl:template name="ttml.profile">
   <xsl:param name="node" select="."/>
@@ -297,20 +303,20 @@ required features are supported, #{"false"} otherwise.
 
 <!--**==========================================================================
 ttml.profile.attr
-Check whether the stylesheets conform to a #{profile} attribute.
-:Revision: version="3.4" date="2012-03-02" status="final"
-$node: A #{tt:tt} element containing a #{profile} attribute.
-$profile: The #{profile} attribute to check.
+Check whether the stylesheets conform to a `profile` attribute.
+@revision[version=3.4 date=2012-03-02 status=final]
+$node: A `tt:tt` element containing a `profile` attribute.
+$profile: The `profile` attribute to check.
 
 This template checks if the stylesheets comply with a profile as specified by
-the #{profile} attribute on a #{tt:tt} element. If the profile is one of the
-pre-defined profiles (#{dfxp-transformation}, #{dfxp-presentation}, and
-#{dfxp-full}), this template contains built-in rules for quicly checking
+the `profile` attribute on a `tt:tt` element. If the profile is one of the
+pre-defined profiles (`dfxp-transformation`, `dfxp-presentation`, and
+`dfxp-full`), this template contains built-in rules for quicly checking
 feature compliance. Otherwise, it downloads the referenced profile and calls
-*{ttml.profile} on it.
+`ttml.profile` on it.
 
-Like *{ttml.profile}, this template returns the string #{"true"} if all
-required features are supported, #{"false"} otherwise.
+Like {ttml.profile}, this template returns the string `"true"` if all
+required features are supported, `"false"` otherwise.
 -->
 <xsl:template name="ttml.profile.attr">
   <xsl:param name="node" select="."/>
diff --git a/xslt/common/utils.xsl b/xslt/common/utils.xsl
index 98e2a2d3..4f84f446 100644
--- a/xslt/common/utils.xsl
+++ b/xslt/common/utils.xsl
@@ -20,7 +20,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Utilities
 Common XSLT Utilities.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
 
 This stylesheet contains various useful utilities that are used throughout
 the Yelp stylesheets.
@@ -30,11 +30,13 @@ the Yelp stylesheets.
 <!--**==========================================================================
 utils.repeat_string
 Repeat a string a given number of times.
-:Revision:version="1.0" date="2011-08-24" status="final"
+@revision[version=1.0 date=2011-08-24 status=final]
+
+[xsl:params]
 $string: The string to repeat.
-$number: The number of times to repeat ${string}.
+$number: The number of times to repeat $string.
 
-This template repeats the ${string} argument ${number} times.
+This template repeats the $string argument $number times.
 -->
 <xsl:template name="utils.repeat_string">
   <xsl:param name="string" select="''"/>
@@ -52,13 +54,15 @@ This template repeats the ${string} argument ${number} times.
 <!--**==========================================================================
 utils.strip_newlines
 Strip leading or trailing newlines from a string.
-:Revision:version="1.0" date="2010-05-25" status="final"
+@revision[version=1.0 date=2010-05-25 status=final]
+
+[xsl:params]
 $string: The string to strip newlines from.
 $leading: Whether to strip leading newlines.
 $trailing: Whether to strip trailing newlines.
 
 This template strips at most one leading and one trailing newline from
-${string}.  This is useful for preformatted block elements where leading and
+$string.  This is useful for preformatted block elements where leading and
 trailing newlines are ignored to make source formatting easier for authors.
 -->
 <xsl:template name="utils.strip_newlines">
@@ -107,7 +111,9 @@ trailing newlines are ignored to make source formatting easier for authors.
 <!--**==========================================================================
 utils.linenumbering
 Number each line in a verbatim environment.
-:Revision:version="1.0" date="2010-12-03" status="final"
+@revision[version=1.0 date=2010-12-03 status=final]
+
+[xsl:params]
 $node: The verbatim element to create the line numbering for.
 $number: The starting line number.
 
@@ -150,7 +156,9 @@ be placed to the side of the verbatim output.
 <!--**==========================================================================
 utils.email_address
 Get an email address from a mailto URL.
-:Revision:version="3.4" date="2012-01-18" status="final"
+@revision[version=3.4 date=2012-01-18 status=final]
+
+[xsl:params]
 $href: The mailto URL.
 
 This template takes a mailto URL and returns an email address, stripping the
diff --git a/xslt/dita/common/dita-ref.xsl b/xslt/dita/common/dita-ref.xsl
index 3c85f875..c3ec378e 100644
--- a/xslt/dita/common/dita-ref.xsl
+++ b/xslt/dita/common/dita-ref.xsl
@@ -35,9 +35,9 @@ REMARK: Describe this module
 <!--@@==========================================================================
 dita.ref.extension
 The filename extension for output files.
-:Revision:version="3.8" date="2012-10-08" status="final"
+@revision[version=3.8 date=2012-10-08 status=final]
 
-When link targets are constructed by *{dita.ref.href.target.custom} from #{href}
+When link targets are constructed by {dita.ref.href.target.custom} from `href`
 attributes, this string is appended. This is used to specify the file extension
 when creating output files from DITA topics.
 -->
diff --git a/xslt/dita/html/dita2html-block.xsl b/xslt/dita/html/dita2html-block.xsl
index f639e82f..42f31f7f 100644
--- a/xslt/dita/html/dita2html-block.xsl
+++ b/xslt/dita/html/dita2html-block.xsl
@@ -33,10 +33,12 @@ REMARK: Describe this module
 
 <!--**==========================================================================
 dita2html.div
-Output an HTML #{div} element.
-:Revision:version="3.8" date="2012-10-04" status="incomplete"
-$node: The source element to output a #{div} for.
-$class: The value of the HTML #{class} attribute.
+Output an HTML `div` element.
+@revision[version=3.8 date=2012-10-04 status=incomplete]
+
+[xsl:params]
+$node: The source element to output a `div` for.
+$class: The value of the HTML `class` attribute.
 
 FIXME
 -->
@@ -64,10 +66,12 @@ FIXME
 
 <!--**==========================================================================
 dita2html.p
-Output an HTML #{p} element.
-:Revision:version="3.8" date="2012-10-04" status="incomplete"
-$node: The source element to output a #{p} for.
-$class: The value of the HTML #{class} attribute.
+Output an HTML `p` element.
+@revision[version=3.8 date=2012-10-04 status=incomplete]
+
+[xsl:params]
+$node: The source element to output a `p` for.
+$class: The value of the HTML `class` attribute.
 
 FIXME
 -->
@@ -92,10 +96,12 @@ FIXME
 
 <!--**==========================================================================
 dita2html.pre
-Output an HTML #{pre} element.
-:Revision:version="3.8" date="2012-10-05" status="incomplete"
-$node: The source element to output a #{pre} for.
-$class: The value of the HTML #{class} attribute.
+Output an HTML `pre` element.
+@revision[version=3.8 date=2012-10-05 status=incomplete]
+
+[xsl:params]
+$node: The source element to output a `pre` for.
+$class: The value of the HTML `class` attribute.
 
 FIXME
 -->
diff --git a/xslt/dita/html/dita2html-inline.xsl b/xslt/dita/html/dita2html-inline.xsl
index 8a1c66e8..55d78202 100644
--- a/xslt/dita/html/dita2html-inline.xsl
+++ b/xslt/dita/html/dita2html-inline.xsl
@@ -38,10 +38,12 @@ REMARK: Describe this module
 
 <!--**==========================================================================
 dita2html.span
-Output an HTML #{span} element.
-:Revision:version="3.8" date="2012-10-04" status="incomplete"
-$node: The source element to output a #{span} for.
-$class: The value of the HTML #{class} attribute.
+Output an HTML `span` element.
+@revision[version=3.8 date=2012-10-04 status=incomplete]
+
+[xsl:params]
+$node: The source element to output a `span` for.
+$class: The value of the HTML `class` attribute.
 
 FIXME
 -->
diff --git a/xslt/dita/html/dita2html.xsl b/xslt/dita/html/dita2html.xsl
index ede0436c..52000036 100644
--- a/xslt/dita/html/dita2html.xsl
+++ b/xslt/dita/html/dita2html.xsl
@@ -27,7 +27,7 @@ DITA to HTML
 REMARK: Describe this module
 -->
 
-<xsl:import href="dita2xhtml.xsl"><?pass?></xsl:import>
+<xsl:import href="dita2xhtml.xsl"><?xsldoc.passthrough?></xsl:import>
 
 <xsl:param name="html.xhtml" select="false()"/>
 
diff --git a/xslt/docbook/common/db-chunk.xsl b/xslt/docbook/common/db-chunk.xsl
index da62a03a..938ef264 100644
--- a/xslt/docbook/common/db-chunk.xsl
+++ b/xslt/docbook/common/db-chunk.xsl
@@ -88,6 +88,8 @@ REMARK: Describe what this does
 <!--**==========================================================================
 db.chunk.depth-in-chunk
 Determines the depth of an element in the containing chunk.
+
+[xsl:params]
 $node: The element to determine the depth of
 
 REMARK: Explain how this works
@@ -109,6 +111,8 @@ REMARK: Explain how this works
 <!--**==========================================================================
 db.chunk.depth-of-chunk
 Determines the depth of the containing chunk in the document.
+
+[xsl:params]
 $node: The element to determine the depth of
 
 REMARK: Explain how this works
@@ -130,9 +134,11 @@ REMARK: Explain how this works
 <!--**==========================================================================
 db.chunk.chunk-id
 Determines the id of the chunk that contains an element.
+
+[xsl:params]
 $id: The id of the element to determine the chunk id of
 $node: The element to determine the chunk id of
-$depth_in_chunk: The depth of ${node} in the containing chunk
+$depth_in_chunk: The depth of $node in the containing chunk
 
 REMARK: Explain how this works
 -->
@@ -165,9 +171,11 @@ REMARK: Explain how this works
 <!--**==========================================================================
 db.chunk.chunk-id.axis
 Determines the id of the first chunk along a specified axis.
+
+[xsl:params]
 $node: The base element
 $node: The axis along which to find the first chunk
-$depth_in_chunk: The depth of ${node} in the containing chunk
+$depth_in_chunk: The depth of $node in the containing chunk
 $depth_of_chunk: The depth of the containing chunk in the document
 
 REMARK: Explain how this works, and what the axes are
diff --git a/xslt/docbook/common/db-common.xsl b/xslt/docbook/common/db-common.xsl
index 900da4ed..31587c08 100644
--- a/xslt/docbook/common/db-common.xsl
+++ b/xslt/docbook/common/db-common.xsl
@@ -23,7 +23,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook Common
-:Requires: l10n
 
 This stylesheet module provides utility templates for DocBook that are
 independant of the target format.
@@ -32,10 +31,10 @@ independant of the target format.
 
 <!--++==========================================================================
 db.id.key
-Get an element from the #{id} attribute.
-:Revision:version="3.4" date="2012-01-26" status="final"
+Get an element from the `id` attribute.
+@revision[version=3.4 date=2012-01-26 status=final]
 
-This key returns any element based on the #{id} attribute, or the #{xml:id}
+This key returns any element based on the `id` attribute, or the `xml:id`
 attribute in DocBook 5.
 -->
 <xsl:key name="db.id.key" match="*" use="@id | @xml:id"/>
@@ -43,13 +42,13 @@ attribute in DocBook 5.
 
 <!--++==========================================================================
 db.biblio.abbrev.key
-Get a #{biblioentry} or #{bibliomixed} element from its #{abbrev}.
-:Revision:version="3.18" date="2015-07-23" status="final"
+Get a `biblioentry` or `bibliomixed` element from its `abbrev`.
+@revision[version=3.18 date=2015-07-23 status=final]
 
-This key returns #{biblioentry} and #{bibliomixed} elements based on their child
-#{abbrev} elements. The #{abbrev} element must be the first child element of the
-#{biblioentry} or #{bibliomixed} element. This key only returns elements that
-have an #{id} attribute for DocBook 4 or an #{xml:id} attribute for DocBook 5.
+This key returns `biblioentry` and `bibliomixed` elements based on their child
+`abbrev` elements. The `abbrev` element must be the first child element of the
+`biblioentry` or `bibliomixed` element. This key only returns elements that
+have an `id` attribute for DocBook 4 or an `xml:id` attribute for DocBook 5.
 -->
 <xsl:key name="db.biblio.abbrev.key"
          match="biblioentry[@id and *[1]/self::abbrev] |
@@ -61,12 +60,12 @@ have an #{id} attribute for DocBook 4 or an #{xml:id} attribute for DocBook 5.
 
 <!--++==========================================================================
 db.biblio.label.key
-Get a #{biblioentry} or #{bibliomixed} element from its #{xreflabel}.
-:Revision:version="3.18" date="2015-07-23" status="final"
+Get a `biblioentry` or `bibliomixed` element from its `xreflabel`.
+@revision[version=3.18 date=2015-07-23 status=final]
 
-This key returns #{biblioentry} and #{bibliomixed} elements based on their
-#{xreflabel} attributes. It only returns elements that have an #{id} attribute
-for DocBook 4 or an #{xml:id} attribute for DocBook 5.
+This key returns `biblioentry` and `bibliomixed` elements based on their
+`xreflabel` attributes. It only returns elements that have an `id` attribute
+for DocBook 4 or an `xml:id` attribute for DocBook 5.
 -->
 <xsl:key name="db.biblio.label.key"
          match="biblioentry[@id and @xreflabel] |
@@ -78,12 +77,12 @@ for DocBook 4 or an #{xml:id} attribute for DocBook 5.
 
 <!--++==========================================================================
 db.biblio.id.key
-Get a #{biblioentry} or #{bibliomixed} element from its #{id}.
-:Revision:version="3.18" date="2015-07-23" status="final"
+Get a `biblioentry` or `bibliomixed` element from its `id`.
+@revision[version=3.18 date=2015-07-23 status=final]
 
-This key returns #{biblioentry} and #{bibliomixed} elements based on their #{id}
-or #{xml:id} attributes. The {#id} attribute is used for DocBook 4, and the
-#{xml:id} attribute is used for DocBook 5.
+This key returns `biblioentry` and `bibliomixed` elements based on their `id`
+or `xml:id` attributes. The {#id} attribute is used for DocBook 4, and the
+`xml:id` attribute is used for DocBook 5.
 -->
 <xsl:key name="db.biblio.id.key"
          match="biblioentry[@id] | bibliomixed[@id]"
@@ -95,12 +94,12 @@ or #{xml:id} attributes. The {#id} attribute is used for DocBook 4, and the
 
 <!--++==========================================================================
 db.glossentry.key
-Get a #{glossentry} element from its #{glossterm}.
-:Revision:version="3.18" date="2015-07-22" status="final"
+Get a `glossentry` element from its `glossterm`.
+@revision[version=3.18 date=2015-07-22 status=final]
 
-This key returns #{glossentry} elements based on the text in their #{glossterm}
-child elements. It only returns #{glossentry} elements that have an #{id}
-attribute in DocBook 4 or an #{xml:id} attribute in DocBook 5.
+This key returns `glossentry` elements based on the text in their `glossterm`
+child elements. It only returns `glossentry` elements that have an `id`
+attribute in DocBook 4 or an `xml:id` attribute in DocBook 5.
 -->
 <xsl:key name="db.glossentry.key"
          match="glossentry[@id]" use="string(glossterm)"/>
@@ -111,10 +110,10 @@ attribute in DocBook 4 or an #{xml:id} attribute in DocBook 5.
 <!--**==========================================================================
 db.copyright
 Outputs copyright information
-$node: The #{copyright} element to format
+$node: The `copyright` element to format
 
-This template outputs copyright information from a #{copyright} elements.
-It assembles the #{year} and #{holder} elements into a simple copyright
+This template outputs copyright information from a `copyright` elements.
+It assembles the `year` and `holder` elements into a simple copyright
 notice, beginning with the copyright symbol "©".
 -->
 <xsl:template name="db.copyright">
@@ -157,9 +156,9 @@ Determines the starting line number for a verbatim element
 $node: The verbatim element to determine the starting line number for
 
 This template determines the starting line number for a verbatim element using
-the #{continuation} attribute.  The template finds the first preceding element
-of the same name, counts its lines, and handles any #{startinglinenumber} or
-#{continuation} element it finds on that element.
+the `continuation` attribute.  The template finds the first preceding element
+of the same name, counts its lines, and handles any `startinglinenumber` or
+`continuation` element it finds on that element.
 -->
 <xsl:template name="db.linenumbering.start">
   <xsl:param name="node" select="."/>
@@ -191,22 +190,24 @@ of the same name, counts its lines, and handles any #{startinglinenumber} or
 
 <!--**==========================================================================
 db.orderedlist.start
-Determine the number to use for the first #{listitem} in an #{orderedlist}.
-:Revision:version="3.10" date="2013-08-12" status="final"
-$node: The #{orderedlist} element to use.
-$continuation: The value of the #{continuation} attribute.
-
-This template determines the starting number for an #{orderedlist} element using
-the #{continuation} attribute.  The template finds the first preceding #{orderedlist}
-element and counts its list items.  If that element also uses the #{continuation}
+Determine the number to use for the first `listitem` in an `orderedlist`.
+@revision[version=3.10 date=2013-08-12 status=final]
+
+[xsl:params]
+$node: The `orderedlist` element to use.
+$continuation: The value of the `continuation` attribute.
+
+This template determines the starting number for an `orderedlist` element using
+the `continuation` attribute.  The template finds the first preceding `orderedlist`
+element and counts its list items.  If that element also uses the `continuation`
 attribute, this template calls itself recursively to add that element's starting
 line number to its list item count.
 
 This template uses conditional processing when looking at preceding ordered lists
 and their child list items.
 
-The ${continuation} parameter is automatically set based on the #{continuation}
-attribute of ${node}. It exists as a parameter to allow this template to force
+The $continuation parameter is automatically set based on the `continuation`
+attribute of $node. It exists as a parameter to allow this template to force
 continuation when it calls itself recursively for conditional processing.
 -->
 <xsl:template name="db.orderedlist.start">
@@ -259,10 +260,10 @@ continuation when it calls itself recursively for conditional processing.
 <!--**==========================================================================
 db.personname
 Outputs the name of a person
-$node: The element containing tags such as #{firstname} and #{surname}
+$node: The element containing tags such as `firstname` and `surname`
 
-This template outputs the name of a person as modelled by the #{personname}
-element.  The #{personname} element allows authors to mark up components of
+This template outputs the name of a person as modelled by the `personname`
+element.  The `personname` element allows authors to mark up components of
 a person's name, such as the person's first name and surname.  This template
 assembles those into a string.
 -->
@@ -343,10 +344,10 @@ assembles those into a string.
 <!--**==========================================================================
 db.personname.list
 Outputs a list of people's names
-$nodes: The elements containing tags such as #{firstname} and #{surname}
+$nodes: The elements containing tags such as `firstname` and `surname`
 
-This template outputs a list of names of people as modelled by the #{personname}
-element.  The #{personname} element allows authors to mark up components of a
+This template outputs a list of names of people as modelled by the `personname`
+element.  The `personname` element allows authors to mark up components of a
 person's name, such as the person's first name and surname.
 -->
 <xsl:template name="db.personname.list">
diff --git a/xslt/docbook/common/db-profile.xsl b/xslt/docbook/common/db-profile.xsl
index 314a9c88..43cd3ba6 100644
--- a/xslt/docbook/common/db-profile.xsl
+++ b/xslt/docbook/common/db-profile.xsl
@@ -22,7 +22,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook Profiling
 Support for DocBook effectivity attributes
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This stylesheet contains utilities for handling conditional processing
 in DocBook documents.
@@ -32,10 +32,10 @@ in DocBook documents.
 <!--@@==========================================================================
 db.profile.arch
 The list of architectures for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{arch} attribute for conditional processing.
+`arch` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.arch" select="''"/>
 
@@ -43,10 +43,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.audience
 The list of audiences for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{audience} attribute for conditional processing.
+`audience` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.audience" select="''"/>
 
@@ -54,10 +54,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.condition
 The list of application-specific conditions for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{condition} attribute for conditional processing.
+`condition` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.condition" select="''"/>
 
@@ -65,10 +65,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.conformance
 The list of conformance characteristics for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{conformance} attribute for conditional processing.
+`conformance` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.conformance" select="''"/>
 
@@ -76,10 +76,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.os
 The list of operating systems for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{os} attribute for conditional processing.
+`os` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.os" select="''"/>
 
@@ -87,21 +87,21 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.outputformat
 The list of output formats for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{outputformat} attribute for conditional processing.
+`outputformat` attribute for conditional processing.
 -->
-<xsl:param name="db.profile.os" select="''"/>
+<xsl:param name="db.profile.outputformat" select="''"/>
 
 
 <!--@@==========================================================================
 db.profile.revision
 The list of editorial revisions for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{revision} attribute for conditional processing.
+`revision` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.revision" select="''"/>
 
@@ -109,10 +109,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.security
 The list of security levels for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{security} attribute for conditional processing.
+`security` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.security" select="''"/>
 
@@ -120,10 +120,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.userlevel
 The list of user experience levels for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{userlevel} attribute for conditional processing.
+`userlevel` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.userlevel" select="''"/>
 
@@ -131,10 +131,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.vendor
 The list of vendors for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{vendor} attribute for conditional processing.
+`vendor` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.vendor" select="''"/>
 
@@ -142,10 +142,10 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--@@==========================================================================
 db.profile.wordsize
 The list of word sizes for conditional processing.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
 
 This parameter takes a semicolon-separated list of values to match against the
-#{wordsize} attribute for conditional processing.
+`wordsize` attribute for conditional processing.
 -->
 <xsl:param name="db.profile.wordsize" select="''"/>
 
@@ -153,13 +153,15 @@ This parameter takes a semicolon-separated list of values to match against the
 <!--**==========================================================================
 db.profile.test
 Test if an element should be shown based on profiling attributes.
-:Revision:version="3.10" date="2013-08-12" status="final"
+@revision[version=3.10 date=2013-08-12 status=final]
+
+[xsl:params]
 $node: The element to check the condition for.
 
-This template looks at all the profiling attributes of the element ${node}:
-#{arch}, #{audience}, #{condition}, #{conformance}, #{os}, #{outputformat},
-#{revision}, #{security}, #{userlevel}, #{vendor}, and #{wordsize}. It returns
-the string #{"true"} if all attributes present match the corresponding parameter
+This template looks at all the profiling attributes of the element $node:
+`arch`, `audience`, `condition`, `conformance`, `os`, `outputformat`,
+`revision`, `security`, `userlevel`, `vendor`, and `wordsize`. It returns
+the string `"true"` if all attributes present match the corresponding parameter
 in this stylesheet. Attributes and parameters can both be lists, separated by
 semicolons. An attribute matches a parameter if there is at least one value in
 common between the two.
diff --git a/xslt/docbook/common/db-title.xsl b/xslt/docbook/common/db-title.xsl
index fc38124f..b8f2ad6c 100644
--- a/xslt/docbook/common/db-title.xsl
+++ b/xslt/docbook/common/db-title.xsl
@@ -27,7 +27,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook Titles
 Support for DocBook title, titleabbrev, and subtitle elements.
-:Revision:version="3.4" date="2011-11-10" status="final"
+@revision[version=3.4 date=2011-11-10 status=final]
 
 This stylesheet contains templates for outputting titles based on title,
 titleabbrev, or subtitle elements. It supports automatic titles for certain
@@ -38,16 +38,18 @@ elements with optional titles.
 <!--**==========================================================================
 db.title
 Output a title for an element.
-:Revision:version="3.28" date="2017-03-18" status="final"
+@revision[version=3.28 date=2017-03-18 status=final]
+
+[xsl:params]
 $node: The element to output the title of.
-$info: The info child element of ${node}.
+$info: The info child element of $node.
 
-This template outputs the title of the element ${node} as it might be used for
+This template outputs the title of the element $node as it might be used for
 a heading or for link text. For certain types of elements, this templates will
 use a localized automatic title if no explicit title is provided.
 
-When ${node} is an element for which this template cannot construct a title,
-it calls itself recursively passing the parent element of ${node}.
+When $node is an element for which this template cannot construct a title,
+it calls itself recursively passing the parent element of $node.
 -->
 <xsl:template name="db.title">
   <xsl:param name="node" select="."/>
@@ -136,13 +138,15 @@ it calls itself recursively passing the parent element of ${node}.
 <!--**==========================================================================
 db.titleabbrev
 Output an abbreviated title for an element.
-:Revision:version="3.4" date="2011-11-10" status="final"
+@revision[version=3.4 date=2011-11-10 status=final]
+
+[xsl:params]
 $node: The element to output the abbreviated title of.
-$info: The info child element of ${node}.
+$info: The info child element of $node.
 
-This template outputs the abbreviated title of the element ${node}, which is
-sometimes used for link text. If no explicit #{titleabbrev} element is found,
-this template just calls *{db.title}.
+This template outputs the abbreviated title of the element $node, which is
+sometimes used for link text. If no explicit `titleabbrev` element is found,
+this template just calls {db.title}.
 -->
 <xsl:template name="db.titleabbrev">
   <xsl:param name="node" select="."/>
@@ -166,13 +170,15 @@ this template just calls *{db.title}.
 <!--**==========================================================================
 db.subtitle
 Output a subtitle for an element.
-:Revision:version="3.4" date="2011-11-10" status="final"
+@revision[version=3.4 date=2011-11-10 status=final]
+
+[xsl:params]
 $node: The element to output the subtitle of.
-$info: The info child element of ${node}.
+$info: The info child element of $node.
 
-This template outputs the subtitle of the element ${node}, which is sometimes
-used for link text. If no explicit #{titleabbrev} element is found, this template
-just calls *{db.title}. This template is not suitable for determining whehter a
+This template outputs the subtitle of the element $node, which is sometimes
+used for link text. If no explicit `titleabbrev` element is found, this template
+just calls {db.title}. This template is not suitable for determining whehter a
 subtitle should be placed in a heading, as it will always return the title if
 a subtitle is not found.
 -->
diff --git a/xslt/docbook/common/db-xref.xsl b/xslt/docbook/common/db-xref.xsl
index cbfe135d..60defed2 100644
--- a/xslt/docbook/common/db-xref.xsl
+++ b/xslt/docbook/common/db-xref.xsl
@@ -24,15 +24,16 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook Links
-:Requires: db-chunk db-title l10n
 -->
 
 
 <!--**==========================================================================
 db.ulink.tooltip
 Generates the tooltip for an external link
+
+[xsl:params]
 $node: The element to generate a tooltip for
-$url: The URL of the link, usually from the #{url} attribute
+$url: The URL of the link, usually from the `url` attribute
 -->
 <xsl:template name="db.ulink.tooltip">
   <xsl:param name="node" select="."/>
@@ -59,9 +60,11 @@ $url: The URL of the link, usually from the #{url} attribute
 <!--**==========================================================================
 db.xref.content
 Generates the content of a cross reference
-$linkend: The id of the linked-to element, usually from the #{linkend} attribute
+
+[xsl:params]
+$linkend: The id of the linked-to element, usually from the `linkend` attribute
 $target: The linked-to element
-$xrefstyle: The cross reference style, usually from the #{xrefstyle} attribute
+$xrefstyle: The cross reference style, usually from the `xrefstyle` attribute
 
 REMARK: The xrefstyle/role stuff needs to be documented
 -->
@@ -101,9 +104,11 @@ REMARK: The xrefstyle/role stuff needs to be documented
 <!--**==========================================================================
 db.xref.target
 Generates the target identifier of a cross reference
-$linkend: The id of the linked-to element, usually from the #{linkend} attribute
+
+[xsl:params]
+$linkend: The id of the linked-to element, usually from the `linkend` attribute
 $target: The linked-to element
-$is_chunk: Whether ${target} is known to be a chunked element
+$is_chunk: Whether $target is known to be a chunked element
 
 REMARK: Talk about how this works with chunking
 -->
@@ -136,7 +141,9 @@ REMARK: Talk about how this works with chunking
 <!--**==========================================================================
 db.xref.tooltip
 Generates the tooltip for a cross reference
-$linkend: The id of the linked-to element, usually from the #{linkend} attribute
+
+[xsl:params]
+$linkend: The id of the linked-to element, usually from the `linkend` attribute
 $target: The linked-to element
 
 REMARK: Document this
diff --git a/xslt/docbook/html/db2html-bibliography.xsl b/xslt/docbook/html/db2html-bibliography.xsl
index d8c47a95..a65135fc 100644
--- a/xslt/docbook/html/db2html-bibliography.xsl
+++ b/xslt/docbook/html/db2html-bibliography.xsl
@@ -24,7 +24,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Bibliographies
-:Revision:version="3.4" date="2011-11-14" status="final"
+@revision[version=3.4 date=2011-11-14 status=final]
 
 This module provides templates to process DocBook bibliograpies.
 -->
@@ -33,11 +33,13 @@ This module provides templates to process DocBook bibliograpies.
 <!--**==========================================================================
 db2html.biblioentry.data
 Output structured data for a bibliography entry.
-:Revision:version="3.4" date="2011-11-14" status="final"
-$node: The #{biblioentry} or #{biblioset} element to output data for.
+@revision[version=3.4 date=2011-11-14 status=final]
+
+[xsl:params]
+$node: The `biblioentry` or `biblioset` element to output data for.
 
 This template outputs a bibliography entry, or part of a bibliography entry,
-based on structured data found in a #{biblioentry} or #{biblioset} element.
+based on structured data found in a `biblioentry` or `biblioset` element.
 -->
 <xsl:template name="db2html.biblioentry.data">
   <xsl:param name="node" select="."/>
@@ -109,15 +111,17 @@ based on structured data found in a #{biblioentry} or #{biblioset} element.
 <!--**==========================================================================
 db2html.biblioentry.label
 Output the label for a bibliography entry.
-:Revision:version="3.4" date="2011-11-14" status="final"
-$node: The #{biblioentry} or #{bibliomixed} element to generate a label for.
+@revision[version=3.4 date=2011-11-14 status=final]
+
+[xsl:params]
+$node: The `biblioentry` or `bibliomixed` element to generate a label for.
 
 This template outputs a label to be placed inline at the beginning of a bibliography
-entry. Labels are created for both #{biblioentry} and #{bibliomixed} elements.
+entry. Labels are created for both `biblioentry` and `bibliomixed` elements.
 The label is typically an abbreviation of the authors' names and the year of
-publication. In DocBook, it is usually provided with a leading #{abbrev}
-element. Without a leading #{abbrev} element, this template will instead
-use the #{xreflabel} or #{id} attribute.
+publication. In DocBook, it is usually provided with a leading `abbrev`
+element. Without a leading `abbrev` element, this template will instead
+use the `xreflabel` or `id` attribute.
 -->
 <xsl:template name="db2html.biblioentry.label">
   <xsl:param name="node" select="."/>
@@ -159,11 +163,11 @@ use the #{xreflabel} or #{id} attribute.
 
 <!--%%==========================================================================
 db2html.biblioentry.mode
-Format elements inside a #{biblioentry} or #{bibliomixed} element.
-:Revision:version="3.4" date="2011-11-14" status="final"
+Format elements inside a `biblioentry` or `bibliomixed` element.
+@revision[version=3.4 date=2011-11-14 status=final]
 
-This mode is used when processing the child elements of a #{biblioentry} or a
-#{bibliomixed} element. Some elements are treated differently when they appear
+This mode is used when processing the child elements of a `biblioentry` or a
+`bibliomixed` element. Some elements are treated differently when they appear
 inside a bibliography entry.
 -->
 <xsl:template mode="db2html.biblioentry.mode" match="*">
diff --git a/xslt/docbook/html/db2html-block.xsl b/xslt/docbook/html/db2html-block.xsl
index b9cb4ee9..d20bb1c7 100644
--- a/xslt/docbook/html/db2html-block.xsl
+++ b/xslt/docbook/html/db2html-block.xsl
@@ -24,7 +24,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Block Elements
-:Revision:version="3.4" date="2011-11-12" status="final"
+@revision[version=3.4 date=2011-11-12 status=final]
 
 This stylesheet handles most simple block-level elements, turning them into
 the appropriate HTML tags. It does not handle tables, lists, and various other
@@ -34,14 +34,16 @@ complex block-level elements.
 
 <!--**==========================================================================
 db2html.block
-Output an HTML #{div} element for a block-level element.
-:Revision:version="3.10" date="2013-08-09" status="final"
+Output an HTML `div` element for a block-level element.
+@revision[version=3.10 date=2013-08-09 status=final]
+
+[xsl:params]
 $node: The block-level element to render.
-$class: The value of the HTML #{class} attribute.
+$class: The value of the HTML `class` attribute.
 
-This template creates an HTML #{div} element for the given DocBook element.
-It passes the ${class} parameter to *{html.class.attr}.
-If the ${class} parameter is not provided, it uses the local name of ${node}.
+This template creates an HTML `div` element for the given DocBook element.
+It passes the $class parameter to {html.class.attr}.
+If the $class parameter is not provided, it uses the local name of $node.
 
 This template handles conditional processing.
 -->
@@ -74,21 +76,23 @@ This template handles conditional processing.
 <!--**==========================================================================
 db2html.block.formal
 Output HTML for a block-level element with an optional title and caption.
-:Revision:version="3.10" date="2013-08-09" status="final"
+@revision[version=3.10 date=2013-08-09 status=final]
+
+[xsl:params]
 $node: The block-level element to render.
-$class: The value of the HTML #{class} attribute.
+$class: The value of the HTML `class` attribute.
 $title: An element to use for the title.
 $caption: An element to use for the caption.
-$titleattr: An optional value for the HTML #{title} attribute.
+$titleattr: An optional value for the HTML `title` attribute.
 $icon: An icon for the block, as a copyable node set.
 
 This template outputs HTML for a formal DocBook element, one that can have
-a title or caption. It passes the ${class} parameter to *{html.class.attr}.
-If the ${class} parameter is not provided, it uses the
-local name of ${node}. Even if ${title} and ${caption} are both empty, this
-template still outputs the extra wrapper elements for formal elements. If
-${titleattr} is provided, it is used for the value of the HTML #{title}
-attribute on the outermost #{div} element.
+a title or caption. It passes the $class parameter to {html.class.attr}.
+If the $class parameter is not provided, it uses the local name of $node.
+Even if $title and $caption are both empty, this template still outputs
+the extra wrapper elements for formal elements. If $titleattr is provided,
+it is used for the value of the HTML `title` attribute on the outermost
+`div` element.
 
 This template handles conditional processing.
 -->
@@ -162,12 +166,14 @@ This template handles conditional processing.
 <!--**==========================================================================
 db2html.block.title
 Output a formal title for a block-level element.
-:Revision:version="3.4" date="2011-11-12" status="final"
+@revision[version=3.4 date=2011-11-12 status=final]
+
+[xsl:params]
 $node: The block-level element being processed.
 $title: The element containing the title.
 
-This template formats the contents of ${title} as a title for a block-level
-element.  It is called by *{db2html.block.formal}.
+This template formats the contents of $title as a title for a block-level
+element. It is called by {db2html.block.formal}.
 -->
 <xsl:template name="db2html.block.title">
   <xsl:param name="node" select="."/>
@@ -209,12 +215,14 @@ element.  It is called by *{db2html.block.formal}.
 
 <!--**==========================================================================
 db2html.blockquote
-Output an HTML #{blockquote} element.
-:Revision:version="3.10" date="2013-08-09" status="final"
+Output an HTML `blockquote` element.
+@revision[version=3.10 date=2013-08-09 status=final]
+
+[xsl:params]
 $node: The DocBook element ot render as a quote.
 
-This template creates an HTML #{blockquote} element for the given DocBook
-element. It's used for the DocBook #{blockquote} and #{epigraph} elements.
+This template creates an HTML `blockquote` element for the given DocBook
+element. It's used for the DocBook `blockquote` and `epigraph` elements.
 
 This template handles conditional processing.
 -->
@@ -258,14 +266,16 @@ This template handles conditional processing.
 
 <!--**==========================================================================
 db2html.para
-Output an HTML #{p} element for a block-level element.
-:Revision:version="3.10" date="2013-08-09" status="final"
+Output an HTML `p` element for a block-level element.
+@revision[version=3.10 date=2013-08-09 status=final]
+
+[xsl:params]
 $node: The block-level element to render.
-$class: The value of the HTML #{class} attribute.
+$class: The value of the HTML `class` attribute.
 
-This template creates an HTML #{p} element for the given DocBook element.
-It passes the ${class} parameter to *{html.class.attr}.
-If the ${class} parameter is not provided, it uses the local name of ${node}.
+This template creates an HTML `p` element for the given DocBook element.
+It passes the $class parameter to {html.class.attr}.
+If the $class parameter is not provided, it uses the local name of $node.
 
 This template handles conditional processing.
 -->
@@ -302,26 +312,28 @@ This template handles conditional processing.
 
 <!--**==========================================================================
 db2html.pre
-Output an HTML #{pre} element for a block-level element.
-:Revision:version="3.12" date="2013-11-02" status="final"
+Output an HTML `pre` element for a block-level element.
+@revision[version=3.12 date=2013-11-02 status=final]
+
+[xsl:params]
 $node: The block-level element to render.
-$class: The value of the HTML #{class} attribute.
+$class: The value of the HTML `class` attribute.
 $children: The child elements to process.
 
-This template creates an HTML #{pre} element for the given DocBook element.
-It passes the ${class} parameter to *{html.class.attr}.
-If the ${class} parameter is not provided, it uses the local name of ${node}.
+This template creates an HTML `pre` element for the given DocBook element.
+It passes the $class parameter to {html.class.attr}.
+If the $class parameter is not provided, it uses the local name of $node.
 
-If ${node} has the #{linenumbering} attribute set to #{"numbered"}, then this
-template will create line numbers for each line, using the *{utils.linenumbering}
+If $node has the `linenumbering` attribute set to `"numbered"`, then this
+template will create line numbers for each line, using the {utils.linenumbering}
 template.
 
 By default, this template applies templates to all child nodes. Pass child
-nodes in the ${children} parameter to override this behavior.
+nodes in the $children parameter to override this behavior.
 
-If @{html.syntax.highlight} is #{true}, this template automatically outputs
-syntax highlighting support based on the #{language} attribute of ${node},
-using *{html.syntax.class} to determine the correct highlighter.
+If {html.syntax.highlight} is `true`, this template automatically outputs
+syntax highlighting support based on the `language` attribute of $node,
+using {html.syntax.class} to determine the correct highlighter.
 
 This template handles conditional processing.
 -->
diff --git a/xslt/docbook/html/db2html-callout.xsl b/xslt/docbook/html/db2html-callout.xsl
index fa4e70e4..d215a675 100644
--- a/xslt/docbook/html/db2html-callout.xsl
+++ b/xslt/docbook/html/db2html-callout.xsl
@@ -23,25 +23,26 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Callouts
-:Requires: db2html-block db2html-xref html
-:Revision:version="1.0" date="2011-05-16" status="final"
+@revision[version=1.0 date=2011-05-16 status=final]
 
-This modules handles simple DocBook callouts using the #{co} and #{callout}
-elements. Currently, only callouts to #{co} elements are supported. The
-#{area} element is not supported.
+This modules handles simple DocBook callouts using the `co` and `callout`
+elements. Currently, only callouts to `co` elements are supported. The
+`area` element is not supported.
 -->
 
 
 <!--**==========================================================================
 db2html.callout.label
-Create a callout label for a #{co} element.
-:Revision:version="1.0" date="2011-05-16" status="final"
-$node: The #{co} element to create a callout label for.
+Create a callout label for a `co` element.
+@revision[version=1.0 date=2011-05-16 status=final]
 
-This template creates a label for a callout, taking a #{co} element as the
-${node} parameter. The label is numbered according to the position of the #{co}
-element in the document. To create the corresponding label for a #{callout}
-element, locate the corresponding #{co} element and call this template on it.
+[xsl:params]
+$node: The `co` element to create a callout label for.
+
+This template creates a label for a callout, taking a `co` element as the
+$node parameter. The label is numbered according to the position of the `co`
+element in the document. To create the corresponding label for a `callout`
+element, locate the corresponding `co` element and call this template on it.
 -->
 <xsl:template name="db2html.callout.label">
   <xsl:param name="node" select="."/>
diff --git a/xslt/docbook/html/db2html-classsynopsis.xsl b/xslt/docbook/html/db2html-classsynopsis.xsl
index c72e9eab..76a7b463 100644
--- a/xslt/docbook/html/db2html-classsynopsis.xsl
+++ b/xslt/docbook/html/db2html-classsynopsis.xsl
@@ -22,10 +22,9 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Class Synopses
-:Requires: db2html-xref html
-:Revision:version="1.0" date="2011-05-16" status="final"
+@revision[version=1.0 date=2011-05-16 status=final]
 
-This module handles the DocBook #{classsynopsis} and related elements. The
+This module handles the DocBook `classsynopsis` and related elements. The
 contents of the class-modeling elements are processed in a mode depending on
 the programming language to format the synopsis correctly.
 -->
@@ -36,13 +35,13 @@ the programming language to format the synopsis correctly.
 
 <!--@@==========================================================================
 db2html.classsynopsis.language
-The default programming language used to format #{classsynopsis} elements.
-:Revision:version="1.0" date="2011-05-16" status="final"
+The default programming language used to format `classsynopsis` elements.
+@revision[version=1.0 date=2011-05-16 status=final]
 
-This parameter sets the default value for the #{language} attribute of elements
-like #{classsynopsis}. Templates in this module will always use the #{language}
+This parameter sets the default value for the `language` attribute of elements
+like `classsynopsis`. Templates in this module will always use the `language`
 attribute if present. Otherwise, they fall back to this value. This parameter
-can be set with the #{db2html.classsynopsis.language} processing instruction
+can be set with the `db2html.classsynopsis.language` processing instruction
 at the root of a DocBook document.
 -->
 <xsl:param name="db2html.classsynopsis.language">
@@ -158,11 +157,11 @@ at the root of a DocBook document.
 <!--%%==========================================================================
 db2html.class.cpp.mode
 Process a C++ synopsis.
-:Revision:version="1.0" date="2011-05-16" status="final"
+@revision[version=1.0 date=2011-05-16 status=final]
 
 This mode is applied to child elements for synopsis elements for the C++
-programming language. In C++ synopses, the first #{modifier} element for
-methods is expected to mark the visibility, such as #{public} or #{private}.
+programming language. In C++ synopses, the first `modifier` element for
+methods is expected to mark the visibility, such as `public` or `private`.
 -->
 <xsl:template mode="db2html.class.cpp.mode" match="*">
   <xsl:apply-templates select="."/>
@@ -395,7 +394,7 @@ methods is expected to mark the visibility, such as #{public} or #{private}.
 <!--%%==========================================================================
 db2html.class.python.mode
 Process a Python synopsis.
-:Revision:version="1.0" date="2011-05-16" status="final"
+@revision[version=1.0 date=2011-05-16 status=final]
 
 This mode is applied to child elements for synopsis elements for the Python
 programming language.
diff --git a/xslt/docbook/html/db2html-cmdsynopsis.xsl b/xslt/docbook/html/db2html-cmdsynopsis.xsl
index 39967041..f7214798 100644
--- a/xslt/docbook/html/db2html-cmdsynopsis.xsl
+++ b/xslt/docbook/html/db2html-cmdsynopsis.xsl
@@ -25,8 +25,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Command Synopses
-:Requires: db2html-xref html
-:Revision:version="1.0" date="2011-05-16" status="final"
+@revision[version=1.0 date=2011-05-16 status=final]
 
 This module contains templates to process DocBook command synopsis elements.
 -->
@@ -326,21 +325,23 @@ This module contains templates to process DocBook command synopsis elements.
 
 <!--%%==========================================================================
 db2html.cmdsynopsis.sbr.padding.mode
-Output padding for elements leading up to an #{sbr} element.
-:Revision:version="1.0" date="2011-05-16" status="final"
-$sbr: The #{sbr} element to pad up to
-$sepchar: The value of the #{sepchar} attribute on the enclosing #{cmdsynopsis}
+Output padding for elements leading up to an `sbr` element.
+@revision[version=1.0 date=2011-05-16 status=final]
+
+[xsl:params]
+$sbr: The `sbr` element to pad up to
+$sepchar: The value of the `sepchar` attribute on the enclosing `cmdsynopsis`
 
 When processed in this mode, elements output whitespace to the length of the
 textual output they would normally produce.  This allows options to be aligned
-when explicit line breaks are inserted with #{sbr} elements.
+when explicit line breaks are inserted with `sbr` elements.
 
-To create the padding for a given #{sbr} element, this mode is called on the
-enclosing #{cmdsynopsis} element, passing the #{sbr} element.  When processed
+To create the padding for a given `sbr` element, this mode is called on the
+enclosing `cmdsynopsis` element, passing the `sbr` element.  When processed
 in this mode, elements should only output padding for content the leads up to
-the #{sbr} element passed in the ${sbr} parameter.  When processing children
-that don't contain the given #{sbr} element, the ${sbr} parameter should be
-set to #{false()} for those children.  This avoids additional descendant
+the `sbr` element passed in the $sbr parameter.  When processing children
+that don't contain the given `sbr` element, the $sbr parameter should be
+set to `false()` for those children.  This avoids additional descendant
 selectors, which are generally expensive to perform.
 -->
 <xsl:template mode="db2html.cmdsynopsis.sbr.padding.mode" match="node()">
diff --git a/xslt/docbook/html/db2html-css.xsl b/xslt/docbook/html/db2html-css.xsl
index 16b53331..496a3718 100644
--- a/xslt/docbook/html/db2html-css.xsl
+++ b/xslt/docbook/html/db2html-css.xsl
@@ -20,7 +20,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - CSS
-:Requires: color html l10n
 
 REMARK: Describe this module
 -->
diff --git a/xslt/docbook/html/db2html-division.xsl b/xslt/docbook/html/db2html-division.xsl
index 8a658c41..1679d712 100644
--- a/xslt/docbook/html/db2html-division.xsl
+++ b/xslt/docbook/html/db2html-division.xsl
@@ -28,11 +28,11 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook to HTML - Divisions
 Handle division-level DocBook elements.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This stylesheet contains templates to process top-level and sectioning elements
 in DocBook. It handles chunking and implements the interfaces provided by the
-common !{html} stylesheet.
+common {html} stylesheet.
 -->
 
 
@@ -156,13 +156,15 @@ common !{html} stylesheet.
 <!--**==========================================================================
 db2html.division.div
 Renders the content of a division element, chunking children if necessary
+
+[xsl:params]
 $node: The element to render the content of
-$info: The info child element of ${node}
+$info: The info child element of $node
 $entries: The entry-style child elements
 $divisions: The division-level child elements
-$depth_in_chunk: The depth of ${node} in the containing chunk
+$depth_in_chunk: The depth of $node in the containing chunk
 $depth_of_chunk: The depth of the containing chunk in the document
-$chunk_divisions: Whether to create new documents for ${divisions}
+$chunk_divisions: Whether to create new documents for $divisions
 
 REMARK: Talk about some of the parameters
 -->
@@ -291,10 +293,12 @@ REMARK: Talk about some of the parameters
 <!--%%==========================================================================
 db2html.division.div.content.mode
 Renders the block-level content of a division element
+
+[xsl:params]
 $depth_in_chunk: The depth of the context element in the containing chunk
 $depth_of_chunk: The depth of the containing chunk in the document
 
-REMARK: Talk about how this works with #{callback}
+REMARK: Talk about how this works with `callback`
 -->
 <xsl:template mode="db2html.division.div.content.mode" match="*">
   <xsl:param name="node" select="."/>
@@ -333,9 +337,11 @@ REMARK: Talk about how this works with #{callback}
 <!--**==========================================================================
 db2html.hgroup
 Output the title and subtitle for an element.
+
+[xsl:params]
 $node: The element containing the title.
 $info: FIXME.
-$depth_in_chunk: The depth of ${node} in the containing chunk.
+$depth_in_chunk: The depth of $node in the containing chunk.
 
 REMARK: Talk about the different kinds of title blocks
 -->
@@ -406,12 +412,14 @@ REMARK: Talk about the different kinds of title blocks
 <!--**==========================================================================
 db2html.division.about
 Output the copyrights, credits, and license information at the bottom of a page.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
 $node: A division-level element a page is being created for.
-$info: The info child element of ${node}
+$info: The info child element of $node
 
 This template outputs copyright information, credits, and license information for
-the division. By default it is called by the %{html.footer.mode} implementation.
+the division. By default it is called by the {html.footer.mode} implementation.
 -->
 <xsl:template name="db2html.division.about">
   <xsl:param name="node" select="."/>
diff --git a/xslt/docbook/html/db2html-ebnf.xsl b/xslt/docbook/html/db2html-ebnf.xsl
index ef964b68..cca94de4 100644
--- a/xslt/docbook/html/db2html-ebnf.xsl
+++ b/xslt/docbook/html/db2html-ebnf.xsl
@@ -22,7 +22,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - EBNF Elements
-:Requires: db2html-xref
 
 REMARK: Describe this module
 -->
diff --git a/xslt/docbook/html/db2html-footnote.xsl b/xslt/docbook/html/db2html-footnote.xsl
index f55281b8..f54ce0f7 100644
--- a/xslt/docbook/html/db2html-footnote.xsl
+++ b/xslt/docbook/html/db2html-footnote.xsl
@@ -30,8 +30,10 @@ FIXME: Describe this module
 <!--**==========================================================================
 db2html.footnote.link
 Output a link to a footnote.
-:Revision:version="3.4" date="2011-11-10" status="final"
-$node: The #{footnote} element to process.
+@revision[version=3.4 date=2011-11-10 status=final]
+
+[xsl:params]
+$node: The `footnote` element to process.
 
 This templates outputs an inline link to the footnote displayed at the bottom
 of the page.
@@ -78,8 +80,10 @@ of the page.
 <!--**==========================================================================
 db2html.footnote.note
 Output a footnote.
-:Revision:version="3.4" date="2011-11-10" status="final"
-$node: The #{footnote} element to process.
+@revision[version=3.4 date=2011-11-10 status=final]
+
+[xsl:params]
+$node: The `footnote` element to process.
 
 This templates outputs the actual text of a footnote as a block-level element.
 -->
@@ -130,12 +134,14 @@ This templates outputs the actual text of a footnote as a block-level element.
 <!--**==========================================================================
 db2html.footnote.footer
 Output all footnotes for a page.
-:Revision:version="3.4" date="2011-11-10" status="final"
+@revision[version=3.4 date=2011-11-10 status=final]
+
+[xsl:params]
 $node: The division-level element containing footnotes
 $depth_of_chunk: The depth of the containing chunk in the document.
 
-This template collects all #{footnote} elements under ${node} and outputs them
-with *{db2html.footnote.note}. It checks if each footnote would be displayed on
+This template collects all `footnote` elements under $node and outputs them
+with {db2html.footnote.note}. It checks if each footnote would be displayed on
 a separate page by a child division-level element, and if so, it doesn't output
 that footnote.
 -->
diff --git a/xslt/docbook/html/db2html-funcsynopsis.xsl b/xslt/docbook/html/db2html-funcsynopsis.xsl
index a88d9fb4..1e83b0c7 100644
--- a/xslt/docbook/html/db2html-funcsynopsis.xsl
+++ b/xslt/docbook/html/db2html-funcsynopsis.xsl
@@ -23,7 +23,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Function Synopses
-:Requires: db2html-block db2html-inline
 
 REMARK: Describe this module
 -->
@@ -31,13 +30,13 @@ REMARK: Describe this module
 
 <!--@@==========================================================================
 db2html.funcsynopsis.style
-How to render #{funcsynopsis} elements
+How to render `funcsynopsis` elements
 
-This parameter controls the indentation style used to render #{funcsynopsis}
-elements.  Supported values are #{'KR'} and #{'ANSI'}.  This value can also
-be set with the #{db2html.funcsynopsis.style} processing instruction at the
+This parameter controls the indentation style used to render `funcsynopsis`
+elements.  Supported values are `'KR'` and `'ANSI'`.  This value can also
+be set with the `db2html.funcsynopsis.style` processing instruction at the
 top of the XML document.  The same processing instruction or inside a
-#{funcsynopsis} element will override this setting for that synopsis.
+`funcsynopsis` element will override this setting for that synopsis.
 -->
 <xsl:param name="db2html.funcsynopsis.style">
   <xsl:choose>
diff --git a/xslt/docbook/html/db2html-index.xsl b/xslt/docbook/html/db2html-index.xsl
index fa3f6f97..d366d8e7 100644
--- a/xslt/docbook/html/db2html-index.xsl
+++ b/xslt/docbook/html/db2html-index.xsl
@@ -46,7 +46,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Indexes
-:Requires: db-chunk db2html-division l10n
 
 This module provides templates to process DocBook indexes.
 -->
diff --git a/xslt/docbook/html/db2html-inline.xsl b/xslt/docbook/html/db2html-inline.xsl
index 45085c71..72ba3eae 100644
--- a/xslt/docbook/html/db2html-inline.xsl
+++ b/xslt/docbook/html/db2html-inline.xsl
@@ -24,7 +24,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Inline Elements
-:Requires: db-common db2html-xref l10n
 
 REMARK: Describe this module
 -->
@@ -32,7 +31,9 @@ REMARK: Describe this module
 
 <!--**==========================================================================
 db2html.inline.children
-Renders the children of an inline element.
+Render the children of an inline element.
+
+[xsl:params]
 $node: The element to render
 $children: The child elements to process
 
@@ -55,11 +56,13 @@ REMARK: Document this template
 
 <!--**==========================================================================
 db2html.inline
-Renders an inline element as an HTML #{span} element
+Render an inline element as an HTML `span` element
+
+[xsl:params]
 $node: The element to render
 $children: The child elements to process
-$class: The value of the #{class} attribute on the #{span} tag
-$lang: The locale of the text in ${node}
+$class: The value of the `class` attribute on the `span` tag
+$lang: The locale of the text in $node
 $name-class: The class to use for the name of the element
 
 REMARK: Document this template
diff --git a/xslt/docbook/html/db2html-links.xsl b/xslt/docbook/html/db2html-links.xsl
index 3e0e741f..684451a7 100644
--- a/xslt/docbook/html/db2html-links.xsl
+++ b/xslt/docbook/html/db2html-links.xsl
@@ -23,7 +23,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Links
-:Revision:version="3.4" date="2011-11-08" status="final"
+@revision[version=3.4 date=2011-11-08 status=final]
 
 This stylesheet contains templates to handle implicit automatic links.
 -->
@@ -32,13 +32,15 @@ This stylesheet contains templates to handle implicit automatic links.
 <!--**==========================================================================
 db2html.links.linktrail
 Generate links to pages from ancestor elements.
-:Revision:version="3.20" date="2015-09-15" status="final"
+@revision[version=3.20 date=2015-09-15 status=final]
+
+[xsl:params]
 $node: The element to generate links for.
 
-This template outputs a trail of links for the ancestor pages of ${node}. If
-${node} has no ancestors, then it calls *{html.linktrails.empty} instead. This
-template calls *{html.linktrails.prefix} before the first link, passing ${node}
-as that template's #{node} parameter.
+This template outputs a trail of links for the ancestor pages of $node. If
+$node has no ancestors, then it calls {html.linktrails.empty} instead. This
+template calls {html.linktrails.prefix} before the first link, passing $node
+as that template's `node` parameter.
 -->
 <xsl:template name="db2html.links.linktrail">
   <xsl:param name="node" select="."/>
@@ -96,12 +98,14 @@ as that template's #{node} parameter.
 <!--**==========================================================================
 db2html.links.next
 Output links to the previous and next pages.
-:Revision:version="3.4" date="2011-11-08" status="final"
+@revision[version=3.4 date=2011-11-08 status=final]
+
+[xsl:params]
 $node: The element to generate links for.
 $depth_of_chunk: The depth of the containing chunk in the document.
 
 This template outputs links to the previous and next pages, if they exist. It
-calls *{db.chunk.chunk-id.axis} to find the previous and next pages. The block
+calls {db.chunk.chunk-id.axis} to find the previous and next pages. The block
 containing the links is end-floated by default. The links use the text "Previous"
 and "Next", although the actual page titles are used for tooltips.
 -->
@@ -191,11 +195,13 @@ and "Next", although the actual page titles are used for tooltips.
 <!--**==========================================================================
 db2html.links.section
 Output links to subsections.
-:Revision:version="3.4" date="2011-11-08" status="final"
+@revision[version=3.4 date=2011-11-08 status=final]
+
+[xsl:params]
 $node: The element to generate links for.
-$divisions: The division-level child elements of ${node} to link to.
+$divisions: The division-level child elements of $node to link to.
 
-This template outputs links to the child division-level elements of ${node},
+This template outputs links to the child division-level elements of $node,
 whether or not they are chunked.
 -->
 <xsl:template name="db2html.links.section">
diff --git a/xslt/docbook/html/db2html-list.xsl b/xslt/docbook/html/db2html-list.xsl
index 9758c100..c5dd3a8d 100644
--- a/xslt/docbook/html/db2html-list.xsl
+++ b/xslt/docbook/html/db2html-list.xsl
@@ -26,7 +26,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Lists
-:Revision:version="3.28" date="2016-10-27" status="review"
+@revision[version=3.28 date=2016-10-27 status=review]
 
 This stylesheet handles most list-like elements in DocBook, turning them into
 appropriate HTML tags.
diff --git a/xslt/docbook/html/db2html-math.xsl b/xslt/docbook/html/db2html-math.xsl
index eb5fada4..a5c4a58c 100644
--- a/xslt/docbook/html/db2html-math.xsl
+++ b/xslt/docbook/html/db2html-math.xsl
@@ -25,23 +25,25 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook to HTML - MathML
 Handle MathML in DocBook documents.
-:Revision: version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
-This stylesheet matches embedded MathML and processes it in %{db2html.math.mode}.
-The matched templates for the #{mml:math} element automatically set the #{display}
+This stylesheet matches embedded MathML and processes it in {db2html.math.mode}.
+The matched templates for the `mml:math` element automatically set the `display`
 attribute based on whether the element is in block or inline context.
 -->
 
 
 <!--**==========================================================================
 db2html.math.div
-Output an HTML #{div} element and block-level MathML.
-:Revision:version="3.8" date="2012-11-13" status="final"
-$node: The #{mml:math} element to render.
+Output an HTML `div` element and block-level MathML.
+@revision[version=3.8 date=2012-11-13 status=final]
 
-This template creates an HTML #{div} element for a MathML #{mml:math} element,
-then outputs MathML content. It sets the #{display} attribute on the output to
-#{"block"} and applies %{db2html.math.mode} to the child content.
+[xsl:params]
+$node: The `mml:math` element to render.
+
+This template creates an HTML `div` element for a MathML `mml:math` element,
+then outputs MathML content. It sets the `display` attribute on the output to
+`"block"` and applies {db2html.math.mode} to the child content.
 -->
 <xsl:template name="db2html.math.div">
   <xsl:param name="node" select="."/>
@@ -68,13 +70,15 @@ then outputs MathML content. It sets the #{display} attribute on the output to
 
 <!--**==========================================================================
 db2html.math.span
-Output an HTML #{span} element and inline MathML.
-:Revision:version="3.8" date="2012-11-13" status="final"
-$node: The #{mml:math} element to render.
+Output an HTML `span` element and inline MathML.
+@revision[version=3.8 date=2012-11-13 status=final]
+
+[xsl:params]
+$node: The `mml:math` element to render.
 
-This template creates an HTML #{span} element for a MathML #{mml:math} element,
-then outputs MathML content. It sets the #{display} attribute on the output to
-#{"inline"} and applies %{db2html.math.mode} to the child content.
+This template creates an HTML `span` element for a MathML `mml:math` element,
+then outputs MathML content. It sets the `display` attribute on the output to
+`"inline"` and applies {db2html.math.mode} to the child content.
 -->
 <xsl:template name="db2html.math.span">
   <xsl:param name="node" select="."/>
@@ -98,12 +102,12 @@ then outputs MathML content. It sets the #{display} attribute on the output to
 <!--%%==========================================================================
 db2html.math.mode
 Output MathML and handle Mallard extension.
-:Revision: version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
 This mode is used for processing MathML embedded into DocBook documents. For
 most types of MathML content, it simply copies the input directly, except it
 outputs the MathML in a way that allows the namespace to stripped for non-XML
-output. It converts #{xlink:href} attributes from MathML 2 to #{href} attributes
+output. It converts `xlink:href` attributes from MathML 2 to `href` attributes
 for MathML 3.
 -->
 <xsl:template mode="db2html.math.mode" match="mml:*">
diff --git a/xslt/docbook/html/db2html-media.xsl b/xslt/docbook/html/db2html-media.xsl
index be2f7349..66cd47f8 100644
--- a/xslt/docbook/html/db2html-media.xsl
+++ b/xslt/docbook/html/db2html-media.xsl
@@ -25,23 +25,25 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook to HTML - Images and Media
 Handle DocBook media elements.
-:Revision:version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
-This stylesheet contains templates for handling DocBook #{mediaobject} and
-#{inlinemediaobject} elements, as well as the various #{object} and #{data}
+This stylesheet contains templates for handling DocBook `mediaobject` and
+`inlinemediaobject` elements, as well as the various `object` and `data`
 elements found in these elements. This stylesheet also handles the deprecated
-DocBook 4 #{graphic} and #{inlinegraphic} elements.
+DocBook 4 `graphic` and `inlinegraphic` elements.
 -->
 
 
 <!--**==========================================================================
 db2html.audiodata
-Output an HTML #{audio} element for a #{audiodata} element.
-:Revision:version="3.8" date="2012-11-12" status="final"
-$node: The #{audiodata} element.
+Output an HTML `audio` element for a `audiodata` element.
+@revision[version=3.8 date=2012-11-12 status=final]
 
-This template creates an #{audio} element in the HTML output. This template
-calls *{db2html.mediaobject.fallback} for the contents of the #{audio} element.
+[xsl:params]
+$node: The `audiodata` element.
+
+This template creates an `audio` element in the HTML output. This template
+calls {db2html.mediaobject.fallback} for the contents of the `audio` element.
 -->
 <xsl:template name="db2html.audiodata">
   <xsl:param name="node" select="."/>
@@ -73,18 +75,20 @@ calls *{db2html.mediaobject.fallback} for the contents of the #{audio} element.
 
 <!--**==========================================================================
 db2html.imagedata
-Output an HTML #{img} element for a #{imagedata} element.
-:Revision:version="3.10" date="2013-08-11" status="final"
-$node: The #{imagedata} or other graphic element.
+Output an HTML `img` element for a `imagedata` element.
+@revision[version=3.10 date=2013-08-11 status=final]
+
+[xsl:params]
+$node: The `imagedata` or other graphic element.
 
-This template creates an #{img} element in the HTML output.  This template
-is called not only for #{imagedata} elements, but also for #{graphic} and
-#{inlinegraphic} elements.  Note that #{graphic} and #{inlinegraphic} are
+This template creates an `img` element in the HTML output.  This template
+is called not only for `imagedata` elements, but also for `graphic` and
+`inlinegraphic` elements.  Note that `graphic` and `inlinegraphic` are
 deprecated and should not be used in any newly-written DocBook files.  Use
-#{mediaobject} instead.
+`mediaobject` instead.
 
-This template looks for a #{textobject} with a #{phrase} child in an ancestor
-#{mediaobject} or #{inlinemediaobject} element. It uses the first available,
+This template looks for a `textobject` with a `phrase` child in an ancestor
+`mediaobject` or `inlinemediaobject` element. It uses the first available,
 taking conditional processing into consideration.
 -->
 <xsl:template name="db2html.imagedata">
@@ -136,15 +140,17 @@ taking conditional processing into consideration.
 
 <!--**==========================================================================
 db2html.videodata
-Output an HTML #{video} element for a #{videodata} element.
-:Revision:version="3.8" date="2012-11-12" status="final"
-$node: The #{videodata} element.
-
-This template creates a #{video} element in the HTML output. If the containing
-#{mediaobject} or #{inlinemediaobject} element has an #{imageobject} with the
-#{role} attribute set to #{"poster"}, that image will be used for the #{poster}
-attribute on the HTML #{video} element. This template calls
-*{db2html.mediaobject.fallback} for the contents of the #{video} element.
+Output an HTML `video` element for a `videodata` element.
+@revision[version=3.8 date=2012-11-12 status=final]
+
+[xsl:params]
+$node: The `videodata` element.
+
+This template creates a `video` element in the HTML output. If the containing
+`mediaobject` or `inlinemediaobject` element has an `imageobject` with the
+`role` attribute set to `"poster"`, that image will be used for the `poster`
+attribute on the HTML `video` element. This template calls
+{db2html.mediaobject.fallback} for the contents of the `video` element.
 -->
 <xsl:template name="db2html.videodata">
   <xsl:param name="node" select="."/>
@@ -201,21 +207,23 @@ attribute on the HTML #{video} element. This template calls
 
 <!--**==========================================================================
 db2html.mediaobject
-Outputs HTML for a #{mediaobject} element.
-:Revision:version="3.10" date="2013-08-11" status="final"
-$node: The #{mediaobject} element.
+Outputs HTML for a `mediaobject` element.
+@revision[version=3.10 date=2013-08-11 status=final]
 
-This template processes a #{mediaobject} element and outputs the appropriate
-HTML. DocBook allows multiple objects to be listed in a #{mediaobject} element.
+[xsl:params]
+$node: The `mediaobject` element.
+
+This template processes a `mediaobject` element and outputs the appropriate
+HTML. DocBook allows multiple objects to be listed in a `mediaobject` element.
 Processing tools are expected to choose the earliest suitable object. This
 template will select the first audio, image, or video object it can handle,
 filtering out images in non-web formats, and taking conditional processing
 into consideration. If no suitable non-text objects are found, this template
-calls *{db2html.mediaobject.fallback}.
+calls {db2html.mediaobject.fallback}.
 
-This template also detects MathML embedded in a DocBook 5 #{imagedata} element
-with the #{format} attribute #{"mathml"}, and passes it to the templates in
-!{db2html-math}.
+This template also detects MathML embedded in a DocBook 5 `imagedata` element
+with the `format` attribute `"mathml"`, and passes it to the templates in
+{db2html-math}.
 -->
 <xsl:template name="db2html.mediaobject">
   <xsl:param name="node" select="."/>
@@ -262,14 +270,16 @@ with the #{format} attribute #{"mathml"}, and passes it to the templates in
 
 <!--**==========================================================================
 db2html.mediaobject.fallback
-Outputs fallback HTML for a #{mediaobject} element.
-:Revision:version="3.10" date="2013-08-11" status="final"
-$node: The #{mediaobject} element.
-
-This template outputs HTML for the first suitable #{textobject} child element
-of ${node}. If ${node} is an #{inlinemediaobject}, it looks for a #{textobject}
-that contains a #{phrase} element. Otherwise, it looks for a #{textobject} with
-normal block content. It also handles conditional processing on the #{textobject}
+Outputs fallback HTML for a `mediaobject` element.
+@revision[version=3.10 date=2013-08-11 status=final]
+
+[xsl:params]
+$node: The `mediaobject` element.
+
+This template outputs HTML for the first suitable `textobject` child element
+of $node. If $node is an `inlinemediaobject`, it looks for a `textobject`
+that contains a `phrase` element. Otherwise, it looks for a `textobject` with
+normal block content. It also handles conditional processing on the `textobject`
 elements.
 -->
 <xsl:template name="db2html.mediaobject.fallback">
diff --git a/xslt/docbook/html/db2html-refentry.xsl b/xslt/docbook/html/db2html-refentry.xsl
index 63265039..d8e27c4a 100644
--- a/xslt/docbook/html/db2html-refentry.xsl
+++ b/xslt/docbook/html/db2html-refentry.xsl
@@ -23,7 +23,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Reference Pages
-:Requires: db-chunk db-title db2html-inline db2html-division db2html-xref l10n
 
 REMARK: Describe this module. Talk about refenty and friends
 -->
diff --git a/xslt/docbook/html/db2html-table.xsl b/xslt/docbook/html/db2html-table.xsl
index d0c98ebe..73d89dc5 100644
--- a/xslt/docbook/html/db2html-table.xsl
+++ b/xslt/docbook/html/db2html-table.xsl
@@ -22,7 +22,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Tables
-:Requires: db2html-block db2html-inline db2html-xref l10n
 
 REMARK: This needs lots of talk about CALS
 -->
@@ -30,10 +29,12 @@ REMARK: This needs lots of talk about CALS
 
 <!--**==========================================================================
 db2html.row
-Creates a #{tr} element for a #{row} element
-$row: The #{row} element to process
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Creates a `tr` element for a `row` element
+
+[xsl:params]
+$row: The `row` element to process
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 $colsep: Whether column separators are currently enabled
 $rowsep: Whether column separators are currently enabled
 $spanstr: The string representation of the row spans
@@ -101,55 +102,57 @@ FIXME
 
 <!--**==========================================================================
 db2html.entry
-Creates a #{td} element for an #{entry} element
-$entry: The #{entry} element to process
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Creates a `td` element for an `entry` element
+
+[xsl:params]
+$entry: The `entry` element to process
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 $colsep: Whether column separators are currently enabled
 $rowsep: Whether column separators are currently enabled
 $colpos: The output column position currently being considered
-$colnum: The actual column number of ${entry}
+$colnum: The actual column number of $entry
 $spanstr: The string representation of the row spans
 
-This template processes a single #{entry} element and generates #{td} elements
-as needed.  It then calls itself on the following #{entry} element, adjusting
+This template processes a single `entry` element and generates `td` elements
+as needed.  It then calls itself on the following `entry` element, adjusting
 parameters as necessary.  Under certain conditions, this template may not be
-able to output a #{td} element immediately.  In these cases, it makes whatever
-adjustments are needed and calls itself or *{db2html.entry.implicit} (which,
+able to output a `td` element immediately.  In these cases, it makes whatever
+adjustments are needed and calls itself or {db2html.entry.implicit} (which,
 in turn, calls this template again when it's finished).
 
-Three parameters are used to determine whether a #{td} element can be output.
-The ${spanstr} parameter provides infomation about row spans in effect from
-entries in previous rows; the ${colpos} parameter specifies which column we
-would output to if we created a #{td}; and the ${colnum} parameter specifies
-which column this #{entry} should be in, according to any relevant #{colspec}
-or #{spanspec} elemets.
+Three parameters are used to determine whether a `td` element can be output.
+The $spanstr parameter provides infomation about row spans in effect from
+entries in previous rows; the $colpos parameter specifies which column we
+would output to if we created a `td`; and the $colnum parameter specifies
+which column this `entry` should be in, according to any relevant `colspec`
+or `spanspec` elemets.
 
-There are two conditions that cause this template not to output a #{td} element
-immediately: if the ${spanstr} parameter does not start with #{0:}, and if the
-${colpos} parameter is less than the ${colnum} parameter.
+There are two conditions that cause this template not to output a `td` element
+immediately: if the $spanstr parameter does not start with `0:`, and if the
+$colpos parameter is less than the $colnum parameter.
 
-The ${spanstr} parameter specifies the row spans in effect from entries in
-previous rows.  As this template iterates over the #{entry} elements, it strips
-off parts of ${spanstr} so that only the parts relevant to the #{entry} are
-present.  If ${spanstr} does not start with #{0:}, then an entry in a previous
+The $spanstr parameter specifies the row spans in effect from entries in
+previous rows.  As this template iterates over the `entry` elements, it strips
+off parts of $spanstr so that only the parts relevant to the `entry` are
+present.  If $spanstr does not start with `0:`, then an entry in a previous
 row occupies this column position.  In this case, that value is removed from
-${spanstr}, the ${colpos} parameter is incremented, and *{db2html.entry} is
-called again.  Additionally, since *{db2html.entry.colnum} doesn't consider
-row spans, the ${colnum} parameter may be incremented as well.
+$spanstr, the $colpos parameter is incremented, and {db2html.entry} is
+called again.  Additionally, since {db2html.entry.colnum} doesn't consider
+row spans, the $colnum parameter may be incremented as well.
 
-If the ${colpos} parameter is less than the ${colnum} parameter, then the
+If the $colpos parameter is less than the $colnum parameter, then the
 document has skipped entries by explicitly referencing a column.  This is
 allowed in CALS tables, but not in HTML.  To fill the blank spaces, we call
-*{db2html.entry.implicit}, which outputs an empty #{td} element spanning as
-many columns as necessary to fill in the blanks.  The *{db2html.entry.implicit}
+{db2html.entry.implicit}, which outputs an empty `td` element spanning as
+many columns as necessary to fill in the blanks.  The {db2html.entry.implicit}
 template then calls this template again with appropriate parameter values.
 
-When this template is finally able to output a #{td} element, it calculates
-appropriate values for the #{style} and #{class} attribute based on DocBook
-attributes on the #{entry}, the relevant #{colspec} or #{spanspec}, and any
-relevant ancestor elements.  It then calls itself on the following #{entry}
-element to output the next #{td}.
+When this template is finally able to output a `td` element, it calculates
+appropriate values for the `style` and `class` attribute based on DocBook
+attributes on the `entry`, the relevant `colspec` or `spanspec`, and any
+relevant ancestor elements.  It then calls itself on the following `entry`
+element to output the next `td`.
 -->
 <xsl:template name="db2html.entry">
   <xsl:param name="entry" select="."/>
@@ -493,32 +496,34 @@ element to output the next #{td}.
 
 <!--**==========================================================================
 db2html.entry.implicit
-Creates an implicit #{td} element to fill up unoccupied columns
-$entry: The #{entry} element currently being processed
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Creates an implicit `td` element to fill up unoccupied columns
+
+[xsl:params]
+$entry: The `entry` element currently being processed
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 $colsep: Whether column separators are currently enabled
 $rowsep: Whether column separators are currently enabled
 $colpos: The output column position currently being considered
-$colnum: The actual column number of ${entry}
-$colspan: How many columns the implicit #{td} currently spans
+$colnum: The actual column number of $entry
+$colspan: How many columns the implicit `td` currently spans
 $spanstr: The string representation of the row spans
 
-CALS tables in DocBook don't need to have #{entry} elements for each column
+CALS tables in DocBook don't need to have `entry` elements for each column
 in each row, even when the column is not covered by a row-spanning entry from
-a previous row.  An #{entry} can explicitly specify which column it's in, and
+a previous row.  An `entry` can explicitly specify which column it's in, and
 any previous unfilled columns are considered blank.  Since HTML tables don't
-have this mechanism, we have to insert blank #{td} elements to fill the gaps.
+have this mechanism, we have to insert blank `td` elements to fill the gaps.
 
-When *{db2html.entry} detects a blank entry, it will call this template with
+When {db2html.entry} detects a blank entry, it will call this template with
 the approprite parameters.  This template then calls itself recursively, each
-time adjusting the ${colpos}, ${colspan}, and ${spanstr} parameters, until it
-comes across the last column that needs to be filled.  It then outputs a #{td}
-element with an appropriate #{colspan} attribute.
+time adjusting the $colpos, $colspan, and $spanstr parameters, until it
+comes across the last column that needs to be filled.  It then outputs a `td`
+element with an appropriate `colspan` attribute.
 
-Finally, this template calls *{db2html.entry} again on ${entry}.  With the
-values of ${colpos} and ${spanstr} suitably adjusted, that template is then
-able to output the #{td} for the #{entry} element.
+Finally, this template calls {db2html.entry} again on $entry.  With the
+values of $colpos and $spanstr suitably adjusted, that template is then
+able to output the `td` for the `entry` element.
 -->
 <xsl:template name="db2html.entry.implicit">
   <xsl:param name="entry"/>
@@ -621,11 +626,13 @@ able to output the #{td} for the #{entry} element.
 
 <!--**==========================================================================
 db2html.entry.colnum
-Calculates the actual column number for an #{entry} element
-$entry: The #{entry} element to process
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
-$colpos: The column position, as passed by the preceding #{entry}
+Calculates the actual column number for an `entry` element
+
+[xsl:params]
+$entry: The `entry` element to process
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
+$colpos: The column position, as passed by the preceding `entry`
 
 FIXME
 -->
@@ -673,10 +680,12 @@ FIXME
 
 <!--**==========================================================================
 db2html.colspec.colnum
-Calculates the column number for a #{colspec} element
-$colspec: The #{colspec} element to process
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Calculates the column number for a `colspec` element
+
+[xsl:params]
+$colspec: The `colspec` element to process
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 
 FIXME
 -->
@@ -708,15 +717,17 @@ FIXME
 
 <!--**==========================================================================
 db2html.entry.colspan
-Calculates the #{colspan} for an #{entry} element
-$entry: The #{entry} element to process
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Calculates the `colspan` for an `entry` element
+
+[xsl:params]
+$entry: The `entry` element to process
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 
-This template calculates how many columns an #{entry} element should span.
+This template calculates how many columns an `entry` element should span.
 In CALS tables, column spanning is done by specifying starting and ending
-#{colspec} elements, or by specifying a #{spanspec} element which specifies
-starting and ending #{colspec} elements.
+`colspec` elements, or by specifying a `spanspec` element which specifies
+starting and ending `colspec` elements.
 -->
 <xsl:template name="db2html.entry.colspan">
   <xsl:param name="entry" select="."/>
@@ -778,9 +789,11 @@ starting and ending #{colspec} elements.
 <!--**==========================================================================
 db2html.spanstr
 Generates a string specifying the row spans in effect
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
-$spanstr: The ${spanstr} parameter used by the previous row
+
+[xsl:params]
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
+$spanstr: The $spanstr parameter used by the previous row
 
 REMARK: This template needs to be explained in detail, but I forgot how it works.
 -->
@@ -884,9 +897,11 @@ REMARK: This template needs to be explained in detail, but I forgot how it works
 
 <!--**==========================================================================
 db2html.spanstr.pop
-Calculates the remaining spans after an #{entry} element
-$colspecs: The #{colspec} elements currently in scope
-$spanspecs: The #{spanspec} elements currently in scope
+Calculates the remaining spans after an `entry` element
+
+[xsl:params]
+$colspecs: The `colspec` elements currently in scope
+$spanspecs: The `spanspec` elements currently in scope
 $colspan: The number of columns to pop
 $spanstr: The string representation of the column spans
 
diff --git a/xslt/docbook/html/db2html-xref.xsl b/xslt/docbook/html/db2html-xref.xsl
index 4a642e36..edcdd68c 100644
--- a/xslt/docbook/html/db2html-xref.xsl
+++ b/xslt/docbook/html/db2html-xref.xsl
@@ -23,7 +23,6 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 
 <!--!!==========================================================================
 DocBook to HTML - Links and Cross References
-:Requires: db-xref
 
 REMARK: Describe this module
 -->
@@ -32,8 +31,10 @@ REMARK: Describe this module
 <!--**==========================================================================
 db2html.anchor
 Generates an anchor point for an element
+
+[xsl:params]
 $node: The element to generate an anchor for
-$name: The text to use for the #{name} attribute
+$name: The text to use for the `name` attribute
 
 REMARK: Describe this template
 -->
@@ -46,7 +47,9 @@ REMARK: Describe this template
 
 <!--**==========================================================================
 db2html.link
-Generates a hyperlink from a #{link} element
+Generates a hyperlink from a `link` element
+
+[xsl:params]
 $linkend: The id of the element being linked to
 $target: The element being linked to
 
@@ -84,7 +87,9 @@ REMARK: Describe this template
 
 <!--**==========================================================================
 db2html.ulink
-Generates a hyperlink from a #{ulink} element
+Generates a hyperlink from a `ulink` element
+
+[xsl:params]
 $url: The URL to link to
 $content: Optional content to use for the text of the link
 
@@ -122,7 +127,9 @@ REMARK: Describe this template
 
 <!--**==========================================================================
 db2html.xlink
-Generates a hyperlink from a DocBook 5 #{link} element
+Generates a hyperlink from a DocBook 5 `link` element
+
+[xsl:params]
 $node: The node in question
 $linkend: The ID of the element to link to
 $url: The URL to link to
@@ -154,7 +161,9 @@ Note that this template is also called for inline elements that use DocBook 5's
 
 <!--**==========================================================================
 db2html.xref
-Generates a hyperlink from an #{xref} element
+Generates a hyperlink from an `xref` element
+
+[xsl:params]
 $linkend: The id of the element being linked to
 $target: The element being linked to
 $endterm: The id of an element whose contents will be used for the link text
diff --git a/xslt/docbook/html/db2html.xsl b/xslt/docbook/html/db2html.xsl
index d95ef9b5..351afc7a 100644
--- a/xslt/docbook/html/db2html.xsl
+++ b/xslt/docbook/html/db2html.xsl
@@ -24,15 +24,15 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook to HTML
 Transform DocBook to HTML.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This top-level stylesheet includes all the necessary stylesheets to transform
-DocBook documents into HTML. It imports !{db2xhtml}, overrides parameters, and
+DocBook documents into HTML. It imports {db2xhtml}, overrides parameters, and
 sets a namespace alias to output non-XML HTML. This stylesheet sets
-@{html.xhtml} to #{false}.
+{html.xhtml} to `false`.
 -->
 
-<xsl:import href="db2xhtml.xsl"><?pass?></xsl:import>
+<xsl:import href="db2xhtml.xsl"><?xsldoc.passthrough?></xsl:import>
 
 <xsl:param name="html.xhtml" select="false()"/>
 <xsl:param name="db.profile.outputformat" select="'html'"/>
diff --git a/xslt/docbook/html/db2xhtml.xsl b/xslt/docbook/html/db2xhtml.xsl
index 3fd96317..bc12a788 100644
--- a/xslt/docbook/html/db2xhtml.xsl
+++ b/xslt/docbook/html/db2xhtml.xsl
@@ -21,11 +21,11 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 DocBook to XHTML
 Transform DocBook to XHTML.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This top-level stylesheet includes all the necessary stylesheets to transform
 DocBook documents into XHTML. This stylesheet sets the parameter
-@{db.chunk.extension}.
+{db.chunk.extension}.
 -->
 
 <xsl:import href="../../common/l10n.xsl"/>
diff --git a/xslt/mallard/common/mal-gloss.xsl b/xslt/mallard/common/mal-gloss.xsl
index d0dbf0ff..d5b6ac36 100644
--- a/xslt/mallard/common/mal-gloss.xsl
+++ b/xslt/mallard/common/mal-gloss.xsl
@@ -34,9 +34,9 @@ with the Mallard Glossary extension.
 
 <!--++==========================================================================
 mal.gloss.key
-Get a #{gloss:term} element from its #{id} attribute.
+Get a `gloss:term` element from its `id` attribute.
 
-This key returns #{gloss:term} elements based on their #{id} attribute. This
+This key returns `gloss:term` elements based on their `id` attribute. This
 key only applies to elements inside a cache file. Make sure to make the cache
 file the context document before calling this key.
 -->
@@ -48,15 +48,17 @@ file the context document before calling this key.
 <!--**==========================================================================
 mal.gloss.match
 Determine whether a glossary term matches a criterion.
-$match: A #{gloss:match} element containing criteria.
-$term: A #{gloss:term} element to attempt to match.
+
+[xsl:params]
+$match: A `gloss:match` element containing criteria.
+$term: A `gloss:term` element to attempt to match.
 
 This template determines whether a glossary term matches a condition, as given
-by a #{gloss:match} element. If the term matches, an empty string is output.
+by a `gloss:match` element. If the term matches, an empty string is output.
 Otherwise, a non-empty string is output.
 
 To determine if a term matches a set of matches, call this template for each
-#{gloss:match} element, then check if the concatenated result is empty.
+`gloss:match` element, then check if the concatenated result is empty.
 -->
 <xsl:template name="mal.gloss.match">
   <xsl:param name="match"/>
@@ -70,26 +72,28 @@ To determine if a term matches a set of matches, call this template for each
 <!--**==========================================================================
 mal.gloss.terms
 Output the glossary terms for a page or section.
-$node: The glossary #{page} or #{section} to output terms for.
 
-This template outputs the terms that should be displayed for ${node}.This output
-is a result tree fragment. To use these results, call #{exsl:node-set} on them.
+[xsl:params]
+$node: The glossary `page` or `section` to output terms for.
+
+This template outputs the terms that should be displayed for $node.This output
+is a result tree fragment. To use these results, call `exsl:node-set` on them.
 This template locates all terms throughout all pages and filters them based on
-any #{gloss:match} elements in the #{info} child of ${node}, and also excludes
-terms that are matched by child sections of ${node}.
+any `gloss:match` elements in the `info` child of $node, and also excludes
+terms that are matched by child sections of $node.
 
 The filtered terms are then grouped by matching ID. For each unique ID, this
-template outputs a #{gloss:term} element with the corresponding #{id} attribute.
-Each of these elements contains #{title} elements reflecting the titles in the
+template outputs a `gloss:term` element with the corresponding `id` attribute.
+Each of these elements contains `title` elements reflecting the titles in the
 actual term definitions. These titles have duplicates removed, compared by the
 space-normalized string value, and are sorted.
 
-These #{gloss:term} elements then contain further #{gloss:term} elements, which
-are copies of the actual terms with the same ID. These elements have an #{xref}
+These `gloss:term` elements then contain further `gloss:term` elements, which
+are copies of the actual terms with the same ID. These elements have an `xref`
 attribute added containing the ID of the containing page.
 
-The top-level #{gloss:term} elements and the #{gloss:term} elements they contain
-are not sorted. Only the #{title} elements in the top-level #{gloss:term}
+The top-level `gloss:term` elements and the `gloss:term` elements they contain
+are not sorted. Only the `title` elements in the top-level `gloss:term`
 elements are sorted.
 -->
 <xsl:template name="mal.gloss.terms">
diff --git a/xslt/mallard/common/mal-if.xsl b/xslt/mallard/common/mal-if.xsl
index ed43862f..0a3e7d1a 100644
--- a/xslt/mallard/common/mal-if.xsl
+++ b/xslt/mallard/common/mal-if.xsl
@@ -24,7 +24,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard Conditionals
 Support for run-time conditional processing.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This stylesheet contains utilities for handling conditional processing
 in Mallard documents.
@@ -34,11 +34,11 @@ in Mallard documents.
 <!--@@==========================================================================
 mal.if.target
 The list of supported target tokens.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This parameter takes a space-separated list of tokens to enable for conditional
-processing. It is used by the template *{mal.if.test}. This parameter is meant
-to hold tokens starting with #{target:}. It should usually be set by the primary
+processing. It is used by the template {mal.if.test}. This parameter is meant
+to hold tokens starting with `target:`. It should usually be set by the primary
 importing stylesheet.
 -->
 <xsl:param name="mal.if.target" select="''"/>
@@ -47,11 +47,11 @@ importing stylesheet.
 <!--@@==========================================================================
 mal.if.platform
 The list of supported platform tokens.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This parameter takes a space-separated list of tokens to enable for conditional
-processing. It is used by the template *{mal.if.test}. This parameter is meant
-to hold tokens starting with #{platform:}. It should usually be set by hand or
+processing. It is used by the template {mal.if.test}. This parameter is meant
+to hold tokens starting with `platform:`. It should usually be set by hand or
 by a customization stylesheet.
 -->
 <xsl:param name="mal.if.platform" select="''"/>
@@ -60,10 +60,10 @@ by a customization stylesheet.
 <!--@@==========================================================================
 mal.if.features
 The list of supported feature tokens.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This parameter takes a space-separated list of tokens to enable for conditional
-processing. It is used by the template *{mal.if.test}. This parameter is meant
+processing. It is used by the template {mal.if.test}. This parameter is meant
 to hold tokens that specify the capabilities of these stylesheets. It should
 usually be set by the primary importing stylesheet.
 -->
@@ -75,10 +75,10 @@ mallard:1.0
 <!--@@==========================================================================
 mal.if.custom
 A custom list of supported tokens.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This parameter takes a space-separated list of tokens to enable for conditional
-processing. It is used by the template *{mal.if.test}. This parameter is meant
+processing. It is used by the template {mal.if.test}. This parameter is meant
 to hold extra values enabled by hand or by a customization stylesheet.
 -->
 <xsl:param name="mal.if.custom" select="''"/>
@@ -87,10 +87,10 @@ to hold extra values enabled by hand or by a customization stylesheet.
 <!--@@==========================================================================
 mal.if.maybe
 A list of tokens that may be true.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This parameter takes a space-separated list of tokens that may be true. The
-template *{mal.if.test} returns special flags when a condition may be true,
+template {mal.if.test} returns special flags when a condition may be true,
 allowing conditional processing to be deferred (for example, to CSS media
 selectors). This parameter should usually be set by the primary importing
 stylesheet.
@@ -109,33 +109,35 @@ stylesheet.
 <!--**==========================================================================
 mal.if.test
 Test if a condition is true.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
 $node: The element to check the condition for.
 $test: The test expression.
 
-This template evaluates the test expression ${test}, which is taken automatically
-from the #{test} or #{if:test} attribute of $node. It splits the expression on
+This template evaluates the test expression $test, which is taken automatically
+from the `test` or `if:test` attribute of $node. It splits the expression on
 commas into subexpressions, then splits each subexpression on spaces into tokens.
 A token is taken to be true if it's in one of the space-separated lists from
-@{mal.if.target}, @{mal.if.platform}, @{mal.if.features}, or @{mal.if.custom}.
+{mal.if.target}, {mal.if.platform}, {mal.if.features}, or {mal.if.custom}.
 If the token starts with an exclamation point, the exclamation point is stripped
 and the resulting truth value is negated.
 
 A subexpression is true if all its tokens is true. The full test expression is
 true if any subexpression is true. If the test expression is true, the literal
-string #{'true'} is returned. If the test expression is false, the empty
+string `'true'` is returned. If the test expression is false, the empty
 string is returned.
 
 This template can handle "maybe" values: tokens that may or may not be true,
 and whose truth values are deferred to post-transform time. A token is maybe
-if it appears in the space-separated list @{mal.if.maybe}. If a subexpression
+if it appears in the space-separated list {mal.if.maybe}. If a subexpression
 contains a maybe value and does not contain any false tokens, its truth value
 is a special string constructed from the maybe tokens and starting with the
-string #{if__}. If any subexpressions are maybe and none of the subexpressions
+string `if__`. If any subexpressions are maybe and none of the subexpressions
 are false, the return value is a space-separated list of the maybe strings.
 
 Maybe tokens usually must be handled specifically by the importing stylesheet.
-It's usually not sufficient to just add a token to @{mal.if.maybe}. This
+It's usually not sufficient to just add a token to {mal.if.maybe}. This
 template will handle any maybe token, but it does not handle the actual logic
 of dynamically showing or hiding content based on those tokens.
 -->
diff --git a/xslt/mallard/common/mal-link.xsl b/xslt/mallard/common/mal-link.xsl
index 923953f6..25ae61d2 100644
--- a/xslt/mallard/common/mal-link.xsl
+++ b/xslt/mallard/common/mal-link.xsl
@@ -25,7 +25,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard Links
 Common linking utilities for Mallard documents.
-:Revision:version="3.4" date="2012-01-17" status="final"
+@revision[version=3.4 date=2012-01-17 status=final]
 
 This stylesheet contains various utilities for handling links in Mallard
 documents.  The templates in this stylesheet make it easier to handle the
@@ -37,7 +37,7 @@ linking systems.
 <!--@@==========================================================================
 mal.cache.file
 The location of the cache file.
-:Revision:version="3.0" date="2010-01-02" status="final"
+@revision[version=3.0 date=2010-01-02 status=final]
 
 In order to locate and process links between pages, this stylesheet requires
 a Mallard cache file.  Use this parameter to pass the path to a valid cache
@@ -49,11 +49,11 @@ file.
 <!--@@==========================================================================
 mal.cache
 The cache document as a node set.
-:Revision:version="3.0" date="2010-01-02" status="final"
+@revision[version=3.0 date=2010-01-02 status=final]
 
-This parameter points to the root #{cache:cache} element of a Mallard cache
+This parameter points to the root `cache:cache` element of a Mallard cache
 document.  By default, it selects the root element from the file provided in
-@{mal.cache.file}.
+{mal.cache.file}.
 
 Some processing tools may create a Mallard cache document without outputting
 it to a file.  Those tools can use this parameter directly.
@@ -63,30 +63,30 @@ it to a file.  Those tools can use this parameter directly.
 
 <!--++==========================================================================
 mal.cache.key
-Get a page or section from the #{id} attribute.
-:Revision:version="3.4" date="2012-01-25" status="final"
+Get a page or section from the `id` attribute.
+@revision[version=3.4 date=2012-01-25 status=final]
 
-This key returns a #{page} or #{section} element from a Mallard cache file from
-the #{id} attribute. In cache files, the #{id} attribute of #{section} elements
+This key returns a `page` or `section` element from a Mallard cache file from
+the `id` attribute. In cache files, the `id` attribute of `section` elements
 is set to a qualified ID by prefixing it with the containing page ID and the
 hash character.
 
-The context node must be in the document @{mal.cache} when this key is called.
+The context node must be in the document {mal.cache} when this key is called.
 -->
 <xsl:key name="mal.cache.key" match="cache:cache//*" use="@id"/>
 
 
 <!--++==========================================================================
 mal.cache.link.key
-Get #{link} elements from a link type and #{xref} attribute.
-:Revision:version="3.4" date="2012-01-25" status="final"
+Get `link` elements from a link type and `xref` attribute.
+@revision[version=3.4 date=2012-01-25 status=final]
 
-This key returns all #{link} elements from a Mallard cache file from the #{type}
-and #{xref} attributes. They key is the concatenation of the #{type} attribute,
-the colon character, and the #{xref} attribute. Only #{link} elements with both
-a #{type} and #{xref} attribute are supported.
+This key returns all `link` elements from a Mallard cache file from the `type`
+and `xref` attributes. They key is the concatenation of the `type` attribute,
+the colon character, and the `xref` attribute. Only `link` elements with both
+a `type` and `xref` attribute are supported.
 
-The context node must be in the document @{mal.cache} when this key is called.
+The context node must be in the document {mal.cache} when this key is called.
 -->
 <xsl:key name="mal.cache.link.key"
          match="mal:info/mal:link[@type][@xref]"
@@ -96,9 +96,9 @@ The context node must be in the document @{mal.cache} when this key is called.
 <!--@@==========================================================================
 mal.link.prefix
 A prefix for link targets.
-:Revision:version="3.4" date="2012-01-17" status="final"
+@revision[version=3.4 date=2012-01-17 status=final]
 
-When link targets are constructed by *{mal.link.target} from #{xref} attributes,
+When link targets are constructed by {mal.link.target} from `xref` attributes,
 this string is prepended. This can be used, for example, to specify absolute
 directories or URLs.
 -->
@@ -108,9 +108,9 @@ directories or URLs.
 <!--@@==========================================================================
 mal.link.extension
 The filename extension for output files.
-:Revision:version="3.4" date="2012-01-17" status="final"
+@revision[version=3.4 date=2012-01-17 status=final]
 
-When link targets are constructed by *{mal.link.target} from #{xref} attributes,
+When link targets are constructed by {mal.link.target} from `xref` attributes,
 this string is appended. This is used to specify the file extension when creating
 output files from Mallard pages.
 -->
@@ -120,10 +120,10 @@ output files from Mallard pages.
 <!--@@==========================================================================
 mal.link.default_root
 The default root ID.
-:Revision:version="3.4" date="2012-01-17" status="final"
+@revision[version=3.4 date=2012-01-17 status=final]
 
 This parameter provides the default ID for the page that is taken to be the
-root of the document.  By default, #{'index'} is used.  This should not be
+root of the document.  By default, `'index'` is used.  This should not be
 changed for normal Mallard documents.  It may be necessary to change it for
 some Mallard extension formats.
 -->
@@ -133,17 +133,19 @@ some Mallard extension formats.
 <!--**==========================================================================
 mal.link.linkid
 Output the fully qualified link ID for a page or section.
-:Revision:version="3.0" date="2010-01-02" status="final"
-$node: The #{page} or #{section} element to generate a link ID for.
+@revision[version=3.0 date=2010-01-02 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to generate a link ID for.
 
 This template outputs the fully qualified link ID for a page or section.  For
-#{page} elements, the link ID is identical to the ID.  For #{section} elements,
+`page` elements, the link ID is identical to the ID.  For `section` elements,
 however, the link ID is the containing page ID and the section ID, joined with
-the #{#} character.
+the `#` character.
 
-The link ID is used in Mallard cache files to ensure all #{id} attributes are
+The link ID is used in Mallard cache files to ensure all `id` attributes are
 unique.  All of the templates in this stylesheet that use a link ID use this
-template or *{mal.link.xref.linkid}.
+template or {mal.link.xref.linkid}.
 -->
 <xsl:template name="mal.link.linkid">
   <xsl:param name="node" select="."/>
@@ -163,16 +165,18 @@ template or *{mal.link.xref.linkid}.
 
 <!--**==========================================================================
 mal.link.xref.linkid
-Output the fully qualified link ID for an #{xref} attribute.
-:Revision:version="3.0" date="2010-01-02" status="final"
-$node: The element containing an #{xref} attribute.
-$xref: The #{xref} value to generate a link ID from.
+Output the fully qualified link ID for an `xref` attribute.
+@revision[version=3.0 date=2010-01-02 status=final]
+
+[xsl:params]
+$node: The element containing an `xref` attribute.
+$xref: The `xref` value to generate a link ID from.
 
-This template outputs the fully qualified link ID for an #{xref} attribute.
-This may simply be ${xref}, but if ${xref} starts with the #{#} character, it
-is prefixed with the ID of the page that contains ${node}.
+This template outputs the fully qualified link ID for an `xref` attribute.
+This may simply be $xref, but if $xref starts with the `#` character, it
+is prefixed with the ID of the page that contains $node.
 
-See *{mal.link.linkid} for more on link IDs.
+See {mal.link.linkid} for more on link IDs.
 -->
 <xsl:template name="mal.link.xref.linkid">
   <xsl:param name="node" select="."/>
@@ -186,39 +190,41 @@ See *{mal.link.linkid} for more on link IDs.
 
 <!--**==========================================================================
 mal.link.content
-Output the content for a #{link} element.
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+Output the content for a `link` element.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate title.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
 This template outputs the automatic text content for a link.  It should only
-be used for links that do not have specified content.  If ${xref} points to a
+be used for links that do not have specified content.  If $xref points to a
 valid page or section, the appropriate link title from that page or section
-will be selected, based on the list of roles in ${role}. The first role for
+will be selected, based on the list of roles in $role. The first role for
 which a matching link title is found will be used. Otherwise, the link title
-without a role is used, or the primary title. The %{mal.link.content.mode}
+without a role is used, or the primary title. The {mal.link.content.mode}
 mode is applied to the contents of that title.  Stylesheets using this template
 should map that mode to inline processing.
 
-For inline links, ${node} should be the #{link} element. For links from a
-#{links} element, ${node} should be that #{links} element, or the containing
-element when the #{links} element is implicit.
+For inline links, $node should be the `link` element. For links from a
+`links` element, $node should be that `links` element, or the containing
+element when the `links` element is implicit.
 
-This template first calls *{mal.link.content.custom} with the same arguments.
+This template first calls {mal.link.content.custom} with the same arguments.
 If that template returns a non-empty result, it is used as the return value,
 overriding any other behavior of this template.
 
-If only ${href} is provided, that URL is used as the text content.  If a target
-page or section cannot be found, ${xref} is used as the text content.
+If only $href is provided, that URL is used as the text content.  If a target
+page or section cannot be found, $xref is used as the text content.
 
 Normally, this template automatically looks up information from a targret node
-according to the ${xref} parameter. However, if the ${info} parameter is given,
+according to the $xref parameter. However, if the $info parameter is given,
 information in that node set is used instead. This is useful for external info
-links, where the target information is provided as child elements to the #{link}
+links, where the target information is provided as child elements to the `link`
 element.
 -->
 <xsl:template name="mal.link.content">
@@ -304,18 +310,20 @@ element.
 
 <!--**==========================================================================
 mal.link.content.custom
-Output the content for a custom #{link} element.
+Output the content for a custom `link` element.
 :Stub: true
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate title.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
-This template is called by *{mal.link.content} to create content for custom
-links. Use this template to support the #{action} attribute or extended #{xref}
+This template is called by {mal.link.content} to create content for custom
+links. Use this template to support the `action` attribute or extended `xref`
 attributes containing slash or colon characters.
 -->
 <xsl:template name="mal.link.content.custom">
@@ -330,12 +338,12 @@ attributes containing slash or colon characters.
 
 <!--%%==========================================================================
 mal.link.content.mode
-Output the content for a link from the contents of a #{title} element.
-:Revision:version="3.0" date="2010-01-02" status="final"
+Output the content for a link from the contents of a `title` element.
+@revision[version=3.0 date=2010-01-02 status=final]
 
-This mode is applied to the contents of a #{title} element by *{mal.link.content}.
+This mode is applied to the contents of a `title` element by {mal.link.content}.
 By default, it returns the string value of its input.  Stylesheets that use
-*{mal.link.content} should map this mode to inline processing.
+{mal.link.content} should map this mode to inline processing.
 -->
 <xsl:template mode="mal.link.content.mode" match="* | text()">
   <xsl:value-of select="."/>
@@ -344,32 +352,34 @@ By default, it returns the string value of its input.  Stylesheets that use
 
 <!--**==========================================================================
 mal.link.desc
-Output the desc content for a #{link} element.
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+Output the desc content for a `link` element.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate desc.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
-This template outputs the secondary desc text content for a link. If ${xref}
+This template outputs the secondary desc text content for a link. If $xref
 points to a valid page or section, the desc from that page or section will be
-used. The %{mal.link.content.mode} mode is applied to the contents of that
+used. The {mal.link.content.mode} mode is applied to the contents of that
 desc. Stylesheets using this template should map that mode to inline processing.
 
-For inline links, ${node} should be the #{link} element. For links from a
-#{links} element, ${node} should be that #{links} element, or the containing
-element when the #{links} element is implicit.
+For inline links, $node should be the `link` element. For links from a
+`links` element, $node should be that `links` element, or the containing
+element when the `links` element is implicit.
 
-This template first calls *{mal.link.desc.custom} with the same arguments.
+This template first calls {mal.link.desc.custom} with the same arguments.
 If that template returns a non-empty result, it is used as the return value,
 overriding any other behavior of this template.
 
 Normally, this template automatically looks up information from a targret node
-according to the ${xref} parameter. However, if the ${info} parameter is given,
+according to the $xref parameter. However, if the $info parameter is given,
 information in that node set is used instead. This is useful for external info
-links, where the target information is provided as child elements to the #{link}
+links, where the target information is provided as child elements to the `link`
 element.
 -->
 <xsl:template name="mal.link.desc">
@@ -418,18 +428,20 @@ element.
 
 <!--**==========================================================================
 mal.link.desc.custom
-Output the desc content for a custom #{link} element.
+Output the desc content for a custom `link` element.
 :Stub: true
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate title.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
-This template is called by *{mal.link.desc} to create content for custom links.
-Use this template to support the #{action} attribute or extended #{xref}
+This template is called by {mal.link.desc} to create content for custom links.
+Use this template to support the `action` attribute or extended `xref`
 attributes containing slash or colon characters.
 -->
 <xsl:template name="mal.link.desc.custom">
@@ -444,35 +456,37 @@ attributes containing slash or colon characters.
 
 <!--**==========================================================================
 mal.link.tooltip
-Output a tooltip for a #{link} element.
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+Output a tooltip for a `link` element.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate title.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
-This template outputs a text-only tooltip for a link. If ${xref} points to a
+This template outputs a text-only tooltip for a link. If $xref points to a
 valid page or section, the text title from that page or section will be used.
 If the target does not specify a text title, the primary title is used.
 
-For inline links, ${node} should be the #{link} element. For links from a
-#{links} element, ${node} should be that #{links} element, or the containing
-element when the #{links} element is implicit.
+For inline links, $node should be the `link` element. For links from a
+`links` element, $node should be that `links` element, or the containing
+element when the `links` element is implicit.
 
-This template first calls *{mal.link.tooltip.custom} with the same arguments.
+This template first calls {mal.link.tooltip.custom} with the same arguments.
 If that template returns a non-empty string, it is used as the return value,
 overriding any other behavior of this template.
 
-If only ${href} is provided, that URL is used as the tooltip. If a target
-page or section cannot be found, ${xref} is used as the text content. Special
+If only $href is provided, that URL is used as the tooltip. If a target
+page or section cannot be found, $xref is used as the text content. Special
 tooltips may be provided for certain URI schemes.
 
 Normally, this template automatically looks up information from a targret node
-according to the ${xref} parameter. However, if the ${info} parameter is given,
+according to the $xref parameter. However, if the $info parameter is given,
 information in that node set is used instead. This is useful for external info
-links, where the target information is provided as child elements to the #{link}
+links, where the target information is provided as child elements to the `link`
 element.
 -->
 <xsl:template name="mal.link.tooltip">
@@ -542,18 +556,20 @@ element.
 
 <!--**==========================================================================
 mal.link.tooltip.custom
-Output a tooltip for a custom #{link} element.
+Output a tooltip for a custom `link` element.
 :Stub: true
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
 $role: A space-separated list of link roles, used to select the appropriate title.
-$info: An #{info} element that overrides the info found in a target node.
+$info: An `info` element that overrides the info found in a target node.
 
-This template is called by *{mal.link.tooltip} to create tooltips for custom
-links. Use this template to support the #{action} attribute or extended #{xref}
+This template is called by {mal.link.tooltip} to create tooltips for custom
+links. Use this template to support the `action` attribute or extended `xref`
 attributes containing slash or colon characters.
 -->
 <xsl:template name="mal.link.tooltip.custom">
@@ -568,28 +584,30 @@ attributes containing slash or colon characters.
 
 <!--**==========================================================================
 mal.link.target
-Output the target URL for a #{link} or other linking element.
-:Revision:version="3.28" date="2017-08-11" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
-
-This template outputs a URL for a #{link} element or another element using
-linking attributes.  If ${xref} points to a valid page or section, it uses
-a file name based on the ID of the target page plus @{mal.link.extension}.
-Otherwise, the link will point to ${href}.
-
-For inline links, ${node} should be the #{link} element. For links from a
-#{links} element, ${node} should be that #{links} element, or the containing
-element when the #{links} element is implicit.
-
-This template first calls *{mal.link.target.custom} with the same arguments.
+Output the target URL for a `link` or other linking element.
+@revision[version=3.28 date=2017-08-11 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
+
+This template outputs a URL for a `link` element or another element using
+linking attributes.  If $xref points to a valid page or section, it uses
+a file name based on the ID of the target page plus {mal.link.extension}.
+Otherwise, the link will point to $href.
+
+For inline links, $node should be the `link` element. For links from a
+`links` element, $node should be that `links` element, or the containing
+element when the `links` element is implicit.
+
+This template first calls {mal.link.target.custom} with the same arguments.
 If that template returns a non-empty string, it is used as the return value,
 overriding any other behavior of this template.
 
-If ${xref} contains a #{/} or #{:} character, this template calls
-*{mal.link.target.extended}, which by default just uses ${href} instead.
+If $xref contains a `/` or `:` character, this template calls
+{mal.link.target.extended}, which by default just uses $href instead.
 Override that template to provide extended xref behavior.
 -->
 <xsl:template name="mal.link.target">
@@ -662,18 +680,20 @@ fallback to the built-in behavior.
 
 <!--**==========================================================================
 mal.link.target.extended
-Output the target URL for an element with an extended #{xref} attribute.
+Output the target URL for an element with an extended `xref` attribute.
 :Stub: true
-:Revision:version="3.28" date="2017-08-11" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
-
-This template is called by *{mal.link.target} to create URLs for links with
-a #{/} or #{:} in the #{xref} attribute. By default, it just outputs the
-value of ${href}. Override this template to provide behavior for extended
-#{xref} attributes.
+@revision[version=3.28 date=2017-08-11 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
+
+This template is called by {mal.link.target} to create URLs for links with
+a `/` or `:` in the `xref` attribute. By default, it just outputs the
+value of $href. Override this template to provide behavior for extended
+`xref` attributes.
 -->
 <xsl:template name="mal.link.target.extended">
   <xsl:param name="node" select="."/>
@@ -686,16 +706,18 @@ value of ${href}. Override this template to provide behavior for extended
 
 <!--**==========================================================================
 mal.link.target.custom
-Output the target URL for an element with #{action} or extended #{xref} attributes.
+Output the target URL for an element with `action` or extended `xref` attributes.
 :Stub: true
-:Revision:version="3.4" date="2012-01-17" status="final"
-$node: The #{link} or other element creating the link.
-$action: The #{action} attribute of ${node}.
-$xref: The #{xref} attribute of ${node}.
-$href: The #{href} attribute of ${node}.
-
-This template is called by *{mal.link.target} to create URLs for custom links.
-Use this template to support the #{action} attribute or extended #{xref}
+@revision[version=3.4 date=2012-01-17 status=final]
+
+[xsl:params]
+$node: The `link` or other element creating the link.
+$action: The `action` attribute of $node.
+$xref: The `xref` attribute of $node.
+$href: The `href` attribute of $node.
+
+This template is called by {mal.link.target} to create URLs for custom links.
+Use this template to support the `action` attribute or extended `xref`
 attributes containing slash or colon characters.
 -->
 <xsl:template name="mal.link.target.custom">
@@ -709,31 +731,33 @@ attributes containing slash or colon characters.
 <!--**==========================================================================
 mal.link.guidelinks
 Output the guide links for a page or section.
-:Revision:version="3.18" date="2015-06-07" status="final"
-$node: The #{page} or #{section} element to generate links for.
-$role: A space-separated list of link roles, used to select the appropriate title, default #{"guide"}.
+@revision[version=3.18 date=2015-06-07 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to generate links for.
+$role: A space-separated list of link roles, used to select the appropriate title, default `"guide"`.
 
 This template outputs all the guide links for a page or section, whether
 declared as guide links in the page or section or as topic links from another
-guide page.  It outputs each of the links as a #{link} element within the
-Mallard namespace.  Each #{link} element has an #{xref} attribute pointing
-to the target page or section. Or, in the case of external links, the #{link}
-element has an #{href} attribute pointing to the external resource.
+guide page.  It outputs each of the links as a `link` element within the
+Mallard namespace.  Each `link` element has an `xref` attribute pointing
+to the target page or section. Or, in the case of external links, the `link`
+element has an `href` attribute pointing to the external resource.
 
-Each #{link} element contains a #{title} with #{type="sort"} providing the
-sort title of the target page or section. The ${role} attribute is used to
+Each `link` element contains a `title` with `type="sort"` providing the
+sort title of the target page or section. The $role attribute is used to
 select a link title to sort on when a sort title is not present. The results
-are not sorted when returned from this template. Use #{xsl:sort} on the sort
+are not sorted when returned from this template. Use `xsl:sort` on the sort
 titles to sort the results.
 
-When a link comes from a guide link on ${node} that has an #{href}
-attribute but not an #{xref} attribute, it is taken to be an external
-link. In that case, the output link has an #{href} attribute instead of
-an #{xref} attribute, and it has an #{info} child element. This element
-has a copy of all the child elements of the source #{link} element.
+When a link comes from a guide link on $node that has an `href`
+attribute but not an `xref` attribute, it is taken to be an external
+link. In that case, the output link has an `href` attribute instead of
+an `xref` attribute, and it has an `info` child element. This element
+has a copy of all the child elements of the source `link` element.
 
 The output is a result tree fragment.  To use these results, call
-#{exsl:node-set} on them.
+`exsl:node-set` on them.
 -->
 <xsl:template name="mal.link.guidelinks">
   <xsl:param name="node" select="."/>
@@ -810,40 +834,42 @@ The output is a result tree fragment.  To use these results, call
 <!--**==========================================================================
 mal.link.topiclinks
 Output the topic links for a page or section.
-:Revision:version="3.18" date="2015-06-06" status="final"
-$node: The #{page} or #{section} element to generate links for.
-$groups: The list of all valid link groups for ${node}.
-$role: A space-separated list of link roles, used to select the appropriate title, default #{"topic"}.
+@revision[version=3.18 date=2015-06-06 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to generate links for.
+$groups: The list of all valid link groups for $node.
+$role: A space-separated list of link roles, used to select the appropriate title, default `"topic"`.
 
 This template outputs all the topic links for a guide page or section, whether
 declared as topic links in the page or section or as guide links from another
-page or section.  It outputs each of the links as a #{link} element within the
-Mallard namespace.  Each #{link} element has an #{xref} attribute pointing
-to the target page or section. Or, in the case of external links, the #{link}
-element has an #{href} attribute pointing to the external resource.
+page or section.  It outputs each of the links as a `link` element within the
+Mallard namespace.  Each `link` element has an `xref` attribute pointing
+to the target page or section. Or, in the case of external links, the `link`
+element has an `href` attribute pointing to the external resource.
 
-Each #{link} element contains a #{title} with #{type="sort"} providing the
-sort title of the target page or section. The ${role} attribute is used to
+Each `link` element contains a `title` with `type="sort"` providing the
+sort title of the target page or section. The $role attribute is used to
 select a link title to sort on when a sort title is not present. The results
-are not sorted when returned from this template. Use #{xsl:sort} on the sort
+are not sorted when returned from this template. Use `xsl:sort` on the sort
 titles to sort the results.
 
-Each #{link} element also contains a #{group} attribute.  The #{group}
+Each `link` element also contains a `group` attribute.  The `group`
 attribute is normalized.  It will either point to a link group declared
-in ${groups}, or it will be set to #{#default}.  Each #{link} element also
-contains a #{groupsort} attribute giving the numerical position of the
-#{group} attribute in the normalized group list for ${node}.
+in $groups, or it will be set to `#default`.  Each `link` element also
+contains a `groupsort` attribute giving the numerical position of the
+`group` attribute in the normalized group list for $node.
 
-The ${groups} parameter can be calculated automatically from ${node}.
+The $groups parameter can be calculated automatically from $node.
 
-When a link comes from a topic link on ${node} that has an #{href}
-attribute but not an #{xref} attribute, it is taken to be an external
-link. In that case, the output link has an #{href} attribute instead of
-an #{xref} attribute, and it has an #{info} child element. This element
-has a copy of all the child elements of the source #{link} element.
+When a link comes from a topic link on $node that has an `href`
+attribute but not an `xref` attribute, it is taken to be an external
+link. In that case, the output link has an `href` attribute instead of
+an `xref` attribute, and it has an `info` child element. This element
+has a copy of all the child elements of the source `link` element.
 
 The output is a result tree fragment.  To use these results, call
-#{exsl:node-set} on them.
+`exsl:node-set` on them.
 -->
 <xsl:template name="mal.link.topiclinks">
   <xsl:param name="node" select="."/>
@@ -1023,31 +1049,33 @@ The output is a result tree fragment.  To use these results, call
 <!--**==========================================================================
 mal.link.seealsolinks
 Output the see-also links for a page or section.
-:Revision:version="3.18" date="2015-06-07" status="final"
-$node: The #{page} or #{section} element to generate links for.
-$role: A space-separated list of link roles, used to select the appropriate title, default #{"seealso"}.
+@revision[version=3.18 date=2015-06-07 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to generate links for.
+$role: A space-separated list of link roles, used to select the appropriate title, default `"seealso"`.
 
 This template outputs all the see-also links for a page or section, whether
 declared in the page or section or in another page or section.  It outputs
-each of the links as a #{link} element within the Mallard namespace.  Each
-#{link} element has an #{xref} attribute pointing to the target page or section.
-Or, in the case of external links, the #{link} element has an #{href} attribute
+each of the links as a `link` element within the Mallard namespace.  Each
+`link` element has an `xref` attribute pointing to the target page or section.
+Or, in the case of external links, the `link` element has an `href` attribute
 pointing to the external resource.
 
-Each #{link} element contains a #{title} with #{type="sort"} providing the
-sort title of the target page or section. The ${role} attribute is used to
+Each `link` element contains a `title` with `type="sort"` providing the
+sort title of the target page or section. The $role attribute is used to
 select a link title to sort on when a sort title is not present. The results
-are not sorted when returned from this template. Use #{xsl:sort} on the sort
+are not sorted when returned from this template. Use `xsl:sort` on the sort
 titles to sort the results.
 
-When a link comes from a topic link on ${node} that has an #{href}
-attribute but not an #{xref} attribute, it is taken to be an external
-link. In that case, the output link has an #{href} attribute instead of
-an #{xref} attribute, and it has an #{info} child element. This element
-has a copy of all the child elements of the source #{link} element.
+When a link comes from a topic link on $node that has an `href`
+attribute but not an `xref` attribute, it is taken to be an external
+link. In that case, the output link has an `href` attribute instead of
+an `xref` attribute, and it has an `info` child element. This element
+has a copy of all the child elements of the source `link` element.
 
 The output is a result tree fragment.  To use these results, call
-#{exsl:node-set} on them.
+`exsl:node-set` on them.
 -->
 <xsl:template name="mal.link.seealsolinks">
   <xsl:param name="node" select="."/>
@@ -1124,36 +1152,38 @@ The output is a result tree fragment.  To use these results, call
 <!--**==========================================================================
 mal.link.linktrails
 Output link trails for a page or section.
-:Revision:version="3.4" date="2012-01-18" status="final"
-$node: The #{page} or #{section} element to generate links for.
-$trail: The link trail leading to ${node}.
+@revision[version=3.4 date=2012-01-18 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to generate links for.
+$trail: The link trail leading to $node.
 $root: The ID of the root page.
 
 This template outputs lists of links, where each list is a path of topic links
-that leads to ${node}.  Each link list is output as a #{link} element in the
-Mallard namespace with an #{xref} attribute pointing to the target page or
-section.  Each #{link} has a #{title} element with #{type="sort"} providing
+that leads to $node.  Each link list is output as a `link` element in the
+Mallard namespace with an `xref` attribute pointing to the target page or
+section.  Each `link` has a `title` element with `type="sort"` providing
 the sort title of the target page or section.
 
-Each #{link} element may also contain another #{link} element providing the
+Each `link` element may also contain another `link` element providing the
 next link in the trail.  Each of these links also contains a sort titles and
 may also contain another link.
 
-The results are not sorted when returned from this template.  Use #{xsl:sort}
+The results are not sorted when returned from this template.  Use `xsl:sort`
 on the nested sort titles to sort the results.  The output is a result tree
-fragment.  To use these results, call #{exsl:node-set} on them.
+fragment.  To use these results, call `exsl:node-set` on them.
 
-This template calls itself recursively.  It finds the guide links for ${node}
-using *{mal.link.guidelinks}.  It then calls *{mal.link.linktrails} on each
-guide, wrapping ${trail} with a link to the guide as the new ${trail} parameter.
+This template calls itself recursively.  It finds the guide links for $node
+using {mal.link.guidelinks}.  It then calls {mal.link.linktrails} on each
+guide, wrapping $trail with a link to the guide as the new $trail parameter.
 
-If there are no guide links for ${node} and ${node} is a #{section} element,
-this template calls itself on the containing page, wrapping ${trails} with a
-link to that page.  This #{link} element has the attribute #{child="section"}
+If there are no guide links for $node and $node is a `section` element,
+this template calls itself on the containing page, wrapping $trails with a
+link to that page.  This `link` element has the attribute `child="section"`
 to indicate the link from it to its child is not a topic link.
 
-Recursion stops when the ID of ${node} is ${root}.  Link trails are only
-output if they reach ${root}, which is @{mal.link.default_root} by default.
+Recursion stops when the ID of $node is $root.  Link trails are only
+output if they reach $root, which is {mal.link.default_root} by default.
 -->
 <!--
 FIXME:
@@ -1233,14 +1263,16 @@ FIXME:
 <!--**==========================================================================
 mal.link.sorttitle
 Output the sort title for a page or section.
-:Revision:version="3.10" date="2013-07-30" status="final"
-$node: The #{page} or #{section} element to output a sort title for.
+@revision[version=3.10 date=2013-07-30 status=final]
+
+[xsl:params]
+$node: The `page` or `section` element to output a sort title for.
 $role: A space-separated list of link roles, used to select the appropriate title.
 
 This template returns a sort title for a page or section as a normalized string.
-If ${node} defines a sort title in its #{info} element, the value of that title
-is always used first. Otherwise, if ${role} is defined and ${node} has a link
-title with a matching role, that title is used. Otherwise, if ${node} has a link
+If $node defines a sort title in its `info` element, the value of that title
+is always used first. Otherwise, if $role is defined and $node has a link
+title with a matching role, that title is used. Otherwise, if $node has a link
 title with no role, that title is used. Otherwise, the primary title is used.
 -->
 <xsl:template name="mal.link.sorttitle">
diff --git a/xslt/mallard/common/mal-sort.xsl b/xslt/mallard/common/mal-sort.xsl
index f76c4206..1384eada 100644
--- a/xslt/mallard/common/mal-sort.xsl
+++ b/xslt/mallard/common/mal-sort.xsl
@@ -25,8 +25,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard Topological Sort
 Sort a Mallard document.
-:Requires: mal-link
-:Revision:version="1.0" date="2010-07-08"
+@revision[version=1.0 date=2010-07-08]
 
 This stylesheet contains utilities for sorting the pages in a Mallard
 document based on their informational links.
@@ -36,20 +35,22 @@ document based on their informational links.
 <!--**==========================================================================
 mal.sort.tsort
 Sort pages based on topic and next links.
-:Revision:version="1.0" date="2010-07-08"
-$node: The current #{page} in the Mallard cache file.
+@revision[version=1.0 date=2010-07-08]
+
+[xsl:params]
+$node: The current `page` in the Mallard cache file.
 
 This template outputs links to pages sorted according to their topic and
 next links. Pages occur after the first guide that references them, in
 their sort order for that guide. Page series constructed with next links
 always appear in order at the sort position of their first page.
 
-This template outputs #{link} elements with #{xref} attributes pointing to
+This template outputs `link` elements with `xref` attributes pointing to
 the target page. The output is a result tree fragment.  To use these results,
-call #{exsl:node-set} on them.
+call `exsl:node-set` on them.
 
-You can specify a starting node with the ${node} parameter. By default, it
-uses the node pointed to by @{mal.link.default_root}.
+You can specify a starting node with the $node parameter. By default, it
+uses the node pointed to by {mal.link.default_root}.
 
 This template does not include any nodes that are not reachable through
 topic or next links.
diff --git a/xslt/mallard/html/mal2html-api.xsl b/xslt/mallard/html/mal2html-api.xsl
index b97f8063..ec969518 100644
--- a/xslt/mallard/html/mal2html-api.xsl
+++ b/xslt/mallard/html/mal2html-api.xsl
@@ -37,17 +37,19 @@ extension.
 <!--**==========================================================================
 mal2html.api.links.function
 Output links as a synopsis of functions.
-$node: A #{links} element to link from.
+
+[xsl:params]
+$node: A `links` element to link from.
 $links: A list of topic links already filtered by group.
 
 This template outputs links as a synopsis according to the programming language
-specified by the #{api:mime} attribute of ${node}. If #{api:mime} is recognized,
+specified by the `api:mime` attribute of $node. If `api:mime` is recognized,
 one of the language-specific templates in this stylesheet is called. Otherwise,
-the links are passed to *{mal2html.links.ul}.
+the links are passed to {mal2html.links.ul}.
 
-This template does not handle titles or other wrapper information for #{links}
+This template does not handle titles or other wrapper information for `links`
 elements. It should be called by an appropriate template that handles the
-#{links} element.
+`links` element.
 -->
 <xsl:template name="mal2html.api.links.function">
   <xsl:param name="node" select="."/>
@@ -72,14 +74,16 @@ elements. It should be called by an appropriate template that handles the
 <!--**==========================================================================
 mal2html.api.links.function.c
 Output links as a synopsis of C functions.
-$node: A #{links} element to link from.
+
+[xsl:params]
+$node: A `links` element to link from.
 $links: A list of topic links already filtered by group.
 
 This template outputs links as a synopsis of C functions. It is called by
-*{mal2html.api.links.function} when the #{api:mime} attribute of ${node} is
-#{text/x-csrc} or #{text/x-chdr}. The target nodes of ${links} are expected
-to have at least an #{api:name} element. Any links whose target does not
-have an #{api:name} element will be passed to *{mal2html.links.ul} after
+{mal2html.api.links.function} when the `api:mime` attribute of $node is
+`text/x-csrc` or `text/x-chdr`. The target nodes of $links are expected
+to have at least an `api:name` element. Any links whose target does not
+have an `api:name` element will be passed to {mal2html.links.ul} after
 the synopsis.
 -->
 <xsl:template name="mal2html.api.links.function.c">
diff --git a/xslt/mallard/html/mal2html-block.xsl b/xslt/mallard/html/mal2html-block.xsl
index 6c9dd19a..f90a1bf6 100644
--- a/xslt/mallard/html/mal2html-block.xsl
+++ b/xslt/mallard/html/mal2html-block.xsl
@@ -27,7 +27,7 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - Blocks
 Handle simple Mallard block elements.
-:Revision:version="1.0" date="2010-06-03" status="final"
+@revision[version=1.0 date=2010-06-03 status=final]
 
 This stylesheet contains templates for handling most Mallard block elements,
 except the list and table elements.
@@ -36,17 +36,17 @@ except the list and table elements.
 
 <!--**==========================================================================
 mal2html.pre
-Output an HTML #{pre} element.
-:Revision:version="3.12" date="2013-11-02" status="final"
-$node: The source element to output a #{pre} for.
+Output an HTML `pre` element.
+@revision[version=3.12 date=2013-11-02 status=final]
+$node: The source element to output a `pre` for.
 
-This template outputs an HTML #{pre} element along with a wrapper #{div} element
+This template outputs an HTML `pre` element along with a wrapper `div` element
 for CSS styling. It should be called for verbatim block elements. It will
-automatically strip leading and trailing newlines using *{utils.strip_newlines}.
+automatically strip leading and trailing newlines using {utils.strip_newlines}.
 
-If @{html.syntax.highlight} is #{true}, this template automatically outputs
-syntax highlighting support based on the #{mime} attribute of ${node}, using
-*{html.syntax.class} to determine the correct highlighter.
+If {html.syntax.highlight} is `true`, this template automatically outputs
+syntax highlighting support based on the `mime` attribute of $node, using
+{html.syntax.class} to determine the correct highlighter.
 -->
 <xsl:template name="mal2html.pre">
   <xsl:param name="node" select="."/>
@@ -111,7 +111,7 @@ syntax highlighting support based on the #{mime} attribute of ${node}, using
 <!--%%==========================================================================
 mal2html.block.mode
 Process Mallard elements in block mode.
-:Revision:version="1.0" date="2010-06-03" status="final"
+@revision[version=1.0 date=2010-06-03 status=final]
 $restricted: Whether this is restricted block mode.
 
 This mode is applied to elements in block context. It should be called by
@@ -120,12 +120,12 @@ may appear in both block an inline mode, and the processing expectations for
 those elements is different depending on context.
 
 Implementations of this mode should generally output a wrapper div and process
-the child elements, either in %{mal2html.block.mode} or %{mal2html.inline.mode},
+the child elements, either in {mal2html.block.mode} or {mal2html.inline.mode},
 or using special processing for particular content models.
 
 When this mode encounters unknown content, templates in the same mode are
-applied to the children, but the ${restricted} parameter is set to #{true}.
-When ${restricted} is #{true}, unknown block elements are ignored. This is
+applied to the children, but the $restricted parameter is set to `true`.
+When $restricted is `true`, unknown block elements are ignored. This is
 in accordance with the Mallard specification on fallback block content.
 -->
 <xsl:template mode="mal2html.block.mode" match="*">
diff --git a/xslt/mallard/html/mal2html-gloss.xsl b/xslt/mallard/html/mal2html-gloss.xsl
index a7bb7a28..749b7524 100644
--- a/xslt/mallard/html/mal2html-gloss.xsl
+++ b/xslt/mallard/html/mal2html-gloss.xsl
@@ -36,11 +36,13 @@ Mallard Glossary extension in HTML.
 <!--**==========================================================================
 mal2html.gloss.terms
 Display the glossary terms for a page or section.
-$node: The glossary #{page} or #{section} to output terms for.
+
+[xsl:params]
+$node: The glossary `page` or `section` to output terms for.
 
 This template shows the glossary terms for a page or section. It collects the
-terms with the *{mal.gloss.terms} template, sorts them, and merges terms with
-the same primary title. Terms that are not defined in the same page as ${node}
+terms with the {mal.gloss.terms} template, sorts them, and merges terms with
+the same primary title. Terms that are not defined in the same page as $node
 include a link to their defining page.
 -->
 <xsl:template name="mal2html.gloss.terms">
diff --git a/xslt/mallard/html/mal2html-inline.xsl b/xslt/mallard/html/mal2html-inline.xsl
index 67232626..4048b261 100644
--- a/xslt/mallard/html/mal2html-inline.xsl
+++ b/xslt/mallard/html/mal2html-inline.xsl
@@ -24,10 +24,10 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - Inlines
 Handle simple Mallard inline elements.
-:Revision:version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
 This stylesheet contains templates to handle most Mallard inline elements.
-It also maps %{mal.link.content.mode} to %{mal2html.inline.mode}.
+It also maps {mal.link.content.mode} to {mal2html.inline.mode}.
 -->
 
 <xsl:template mode="mal.link.content.mode" match="*">
@@ -38,7 +38,7 @@ It also maps %{mal.link.content.mode} to %{mal2html.inline.mode}.
 <!--%%==========================================================================
 mal2html.inline.mode
 Process Mallard elements in inline mode.
-:Revision:version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
 This mode is applied to elements in inline context. It is be called by certain
 block elements and inline elements to process child content. Certain elements
@@ -46,9 +46,9 @@ may appear in both block and inline mode, and the processing expectations for
 those elements is different depending on context.
 
 Implementations of this mode should handle ubiquitous linking, text directionality,
-and other common inline features. Note that the *{mal2html.span} template handles
+and other common inline features. Note that the {mal2html.span} template handles
 these things automatically, and is suitable for most inline elements. You can use
-the %{mal2html.inline.content.mode} to output special content for the child
+the {mal2html.inline.content.mode} to output special content for the child
 elements.
 -->
 <xsl:template mode="mal2html.inline.mode" match="*">
@@ -63,11 +63,11 @@ elements.
 <!--%%==========================================================================
 mal2html.inline.content.mode
 Output the contents of an inline element.
-:Revision:version="1.0" date="2010-06-03" status="final"
+@revision[version=1.0 date=2010-06-03 status=final]
 
 This template outputs the contents of the inline element it matches. It is
-usually called by *{mal2html.span} to allow elements like #{guiseq}, #{keyseq},
-and #{link} output special inner contents while still using the generic wrapper
+usually called by {mal2html.span} to allow elements like `guiseq`, `keyseq`,
+and `link` output special inner contents while still using the generic wrapper
 template.
 -->
 <xsl:template mode="mal2html.inline.content.mode" match="node()">
@@ -77,18 +77,20 @@ template.
 
 <!--**==========================================================================
 mal2html.span
-Output an HTML #{span} element.
-:Revision:version="3.10" date="2013-07-10" status="final"
-$node: The source element to output a #{span} for.
-$class: An additional string to prepend to the #{class} attribute.
-
-This template outputs an HTML #{span} element for a source element. It creates
-a #{class} attribute automatically by passing the local name of ${node} and the
-${class} parameter to *{html.class.attr}. To output the contents of ${node}, it
-applies the mode %{mal2html.inline.content.mode} to ${node}.
-
-This template automatically handles ubiquitous linking if ${node} contains
-an #{xref} or #{href} attribute.
+Output an HTML `span` element.
+@revision[version=3.10 date=2013-07-10 status=final]
+
+[xsl:params]
+$node: The source element to output a `span` for.
+$class: An additional string to prepend to the `class` attribute.
+
+This template outputs an HTML `span` element for a source element. It creates
+a `class` attribute automatically by passing the local name of $node and the
+$class parameter to {html.class.attr}. To output the contents of $node, it
+applies the mode {mal2html.inline.content.mode} to $node.
+
+This template automatically handles ubiquitous linking if $node contains
+an `xref` or `href` attribute.
 -->
 <xsl:template name="mal2html.span">
   <xsl:param name="node" select="."/>
diff --git a/xslt/mallard/html/mal2html-links.xsl b/xslt/mallard/html/mal2html-links.xsl
index 29d22083..3099894c 100644
--- a/xslt/mallard/html/mal2html-links.xsl
+++ b/xslt/mallard/html/mal2html-links.xsl
@@ -43,24 +43,26 @@ Mallard links element and implicitly.
 <!--**==========================================================================
 mal2html.links.links
 Output links in one of a number of formats.
-:Revision:version="3.10" date="2013-07-30" status="final"
-$node: A #{links}, #{page}, or #{section} element to link from.
+@revision[version=3.10 date=2013-07-30 status=final]
+
+[xsl:params]
+$node: A `links`, `page`, or `section` element to link from.
 $depth: The depth level for the HTML header element.
-$links: A list of links, as from a template in !{mal-link}.
+$links: A list of links, as from a template in {mal-link}.
 $role: A space-separated list of link roles, used to select the appropriate title.
 $divs: Whether to default to divs instead of a list.
-$title: A default title to use if no #{title} element is found.
+$title: A default title to use if no `title` element is found.
 
-This is a common formatting template used by some #{links} element handlers.
+This is a common formatting template used by some `links` element handlers.
 It selects an appropriate way to render the links based on style hints and
-extension attributes on ${node}. This template (or the templates it calls)
-will pass through #{class} and #{data-*} attributes found on the #{link}
+extension attributes on $node. This template (or the templates it calls)
+will pass through `class` and `data-*` attributes found on the `link`
 elements to the top-level container element of each output link.
 
 This template handles link sorting.
 
-If ${node} is a #{links} element with a #{title} element, that #{title}
-element will be processed as the title. Otherwise, the optional ${title}
+If $node is a `links` element with a `title` element, that `title`
+element will be processed as the title. Otherwise, the optional $title
 parameter will be used if provided.
 -->
 <xsl:template name="mal2html.links.links">
@@ -251,16 +253,18 @@ parameter will be used if provided.
 
 <!--**==========================================================================
 mal2html.links.ul
-Output links in an HTML #{ul} element.
-:Revision:version="3.28" date="2017-08-04" status="final"
-$node: A #{links} element to link from.
-$links: A list of links, as from a template in !{mal-link}.
+Output links in an HTML `ul` element.
+@revision[version=3.28 date=2017-08-04 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$links: A list of links, as from a template in {mal-link}.
 $role: A space-separated list of link roles, used to select the appropriate title.
 $bold: Whether to bold the link titles.
 $nodesc: Whether to omit descriptions.
 
-This is a common formatting template used by some #{links} element handlers.
-It outputs an HTML #{ul} element and calls *{mal2html.links.ul.li} on each
+This is a common formatting template used by some `links` element handlers.
+It outputs an HTML `ul` element and calls {mal2html.links.ul.li} on each
 link to output a list item with a link.
 
 This template handles link sorting.
@@ -290,15 +294,17 @@ This template handles link sorting.
 <!--**==========================================================================
 mal2html.links.ul.li
 Output a list item with a link.
-:Revision:version="3.10" date="2013-07-30" status="final"
-$node: A #{links} element to link from.
-$link: The #{link} element from a list of links.
-$xref: An #{xref} string pointing to the target node.
+@revision[version=3.10 date=2013-07-30 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$link: The `link` element from a list of links.
+$xref: An `xref` string pointing to the target node.
 $role: A space-separated list of link roles, used to select the appropriate title.
 $bold: Whether to bold the link titles.
 $nodesc: Whether to omit descriptions.
 
-This template is called by *{mal2html.links.ul} to output a list item with
+This template is called by {mal2html.links.ul} to output a list item with
 a link for each target.
 -->
 <xsl:template name="mal2html.links.ul.li">
@@ -374,13 +380,15 @@ a link for each target.
 <!--**==========================================================================
 mal2html.links.guide
 Output guide links from a page or section.
-:Revision:version="3.4" date="2012-02-23" status="final"
-$node: A #{links}, #{page}, or #{section} element to link from.
+@revision[version=3.4 date=2012-02-23 status=final]
+
+[xsl:params]
+$node: A `links`, `page`, or `section` element to link from.
 $depth: The depth level for the HTML header element.
-$links: A list of links from *{mal.link.guidelinks}.
+$links: A list of links from {mal.link.guidelinks}.
 
 This template outputs guide links for a page or section. It does not extract
-the links itself. They must be passed in with the ${links} parameter.
+the links itself. They must be passed in with the $links parameter.
 -->
 <xsl:template name="mal2html.links.guide" match="mal:links[@type = 'guide']">
   <xsl:param name="node" select="."/>
@@ -416,17 +424,19 @@ the links itself. They must be passed in with the ${links} parameter.
 <!--**==========================================================================
 mal2html.links.prevnext
 Output links to the previous and next pages.
-:Revision:version="1.0" date="2011-06-15" status="final"
-$node: A #{links} or #{page} element to link from.
+@revision[version=1.0 date=2011-06-15 status=final]
+
+[xsl:params]
+$node: A `links` or `page` element to link from.
 
 This template outputs links to the previous and next page in a Mallard series,
 if they exist. The block containing the links is end-floated by default. The
 links use the text "Previous" and "Next", although the actual page titles are
 used for tooltips.
 
-If the #{links} element has the style hint #{top}, it will be inserted before
+If the `links` element has the style hint `top`, it will be inserted before
 the page title, instead of in its position on the page. This is handled by the
-calling functions in !{mal2html-page}.
+calling functions in {mal2html-page}.
 -->
 <xsl:template name="mal2html.links.prevnext" match="mal:links[@type = 'prevnext']">
   <xsl:param name="node" select="."/>
@@ -503,12 +513,14 @@ calling functions in !{mal2html-page}.
 <!--**==========================================================================
 mal2html.links.section
 Output links to subsections.
-:Revision:version="1.0" date="2011-06-15" status="final"
-$node: The section #{links} element.
+@revision[version=1.0 date=2011-06-15 status=final]
+
+[xsl:params]
+$node: The section `links` element.
 $depth: The depth level for the HTML header element.
 
-This template outputs links to the child sections of the #{page} or #{section}
-element containing ${node}.
+This template outputs links to the child sections of the `page` or `section`
+element containing $node.
 -->
 <xsl:template name="mal2html.links.section" match="mal:links[@type = 'section']">
   <xsl:param name="node" select="."/>
@@ -600,13 +612,15 @@ element containing ${node}.
 <!--**==========================================================================
 mal2html.links.seealso
 Output seealso links from a page or section.
-:Revision:version="3.4" date="2012-02-23" status="final"
-$node: A #{links}, #{page}, or #{section} element to link from.
+@revision[version=3.4 date=2012-02-23 status=final]
+
+[xsl:params]
+$node: A `links`, `page`, or `section` element to link from.
 $depth: The depth level for the HTML header element.
-$links: A list of links from *{mal.link.seealsolinks}.
+$links: A list of links from {mal.link.seealsolinks}.
 
 This template outputs seealso links for a page or section. It does not extract
-the links itself. They must be passed in with the ${links} parameter.
+the links itself. They must be passed in with the $links parameter.
 -->
 <xsl:template name="mal2html.links.seealso" match="mal:links[@type = 'seealso']">
   <xsl:param name="node" select="."/>
@@ -632,15 +646,17 @@ the links itself. They must be passed in with the ${links} parameter.
 <!--**==========================================================================
 mal2html.links.series
 Output links to pages in a series.
-:Revision:version="1.0" date="2011-06-15" status="final"
-$node: A #{links} or #{page} element to start from.
+@revision[version=1.0 date=2011-06-15 status=final]
+
+[xsl:params]
+$node: A `links` or `page` element to start from.
 
 A series in Mallard is a list of page such that each page in the list has a
 next link to the following page. This template outputs links to each page in
 a series. The current page is output in its place, althought it is not a link.
 
-This template calls *{mal2html.links.series.prev} and
-*{mal2html.links.series.next} to find and output the links.
+This template calls {mal2html.links.series.prev} and
+{mal2html.links.series.next} to find and output the links.
 -->
 <xsl:template name="mal2html.links.series" match="mal:links[@type = 'series']">
   <xsl:param name="node" select="."/>
@@ -705,13 +721,15 @@ This template calls *{mal2html.links.series.prev} and
 <!--**==========================================================================
 mal2html.links.series.prev
 Output preceding links to pages in a series.
-:Revision:version="1.0" date="2011-06-15" status="final"
-$node: The current #{page} element.
-$links: The series #{links} element.
+@revision[version=1.0 date=2011-06-15 status=final]
+
+[xsl:params]
+$node: The current `page` element.
+$links: The series `links` element.
 
-This template is called by *{mal2html.links.series} to output the pages before
+This template is called by {mal2html.links.series} to output the pages before
 the starting page in the series. This template finds the previous page for the
-page ${node}. It then calls itself recursively on that page, and outputs a link
+page $node. It then calls itself recursively on that page, and outputs a link
 to it.
 -->
 <xsl:template name="mal2html.links.series.prev">
@@ -760,13 +778,15 @@ to it.
 <!--**==========================================================================
 mal2html.links.series.next
 Output following links to pages in a series.
-:Revision:version="1.0" date="2011-06-15" status="final"
-$node: The current #{page} element.
-$links: The series #{links} element.
+@revision[version=1.0 date=2011-06-15 status=final]
 
-This template is called by *{mal2html.links.series} to output the pages after
+[xsl:params]
+$node: The current `page` element.
+$links: The series `links` element.
+
+This template is called by {mal2html.links.series} to output the pages after
 the starting page in the series. This template finds the next page for the page
-${node}. It outputs a link to that page, then calls itself recursively on that
+$node. It outputs a link to that page, then calls itself recursively on that
 page.
 -->
 <xsl:template name="mal2html.links.series.next">
@@ -815,18 +835,20 @@ page.
 <!--**==========================================================================
 mal2html.links.topic
 Output topic links from a page or section.
-:Revision:version="3.4" date="2012-02-23" status="final"
-$node: A #{links}, #{page}, or #{section} element to link from.
+@revision[version=3.4 date=2012-02-23 status=final]
+
+[xsl:params]
+$node: A `links`, `page`, or `section` element to link from.
 $depth: The depth level for the HTML header element.
-$links: A list of links from *{mal.link.topiclinks}.
-$groups: The list of link groups for this #{links} element.
+$links: A list of links from {mal.link.topiclinks}.
+$groups: The list of link groups for this `links` element.
 $allgroups: The list of all valid groups for the page or section.
 
 This template outputs topic links for a page or section. It does not extract
-the links itself. They must be passed in with the ${links} parameter. This
-template only outputs links which have a group that matches ${groups}. The
-${groups} parameter is not expected to have the implicit groups #{first},
-#{default}, and #{last}. These are added automatically by this template
+the links itself. They must be passed in with the $links parameter. This
+template only outputs links which have a group that matches $groups. The
+$groups parameter is not expected to have the implicit groups `first`,
+`default`, and `last`. These are added automatically by this template
 when determining which links to output.
 -->
 <xsl:template name="mal2html.links.topic" match="mal:links[@type = 'topic']">
diff --git a/xslt/mallard/html/mal2html-list.xsl b/xslt/mallard/html/mal2html-list.xsl
index 352bc3fc..d494f243 100644
--- a/xslt/mallard/html/mal2html-list.xsl
+++ b/xslt/mallard/html/mal2html-list.xsl
@@ -26,11 +26,11 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - Lists
 Handle Mallard list elements.
-:Revision: version="1.0" date="2010-06-04" status="final"
+@revision[version=1.0 date=2010-06-04 status=final]
 
-This stylesheet contains templates for the #{list}, #{steps}, #{terms}, and
-#{tree} elements in %{mal2html.block.mode}. It handles the parent list elements,
-as well as any special processing for child #{item} elements.
+This stylesheet contains templates for the `list`, `steps`, `terms`, and
+`tree` elements in {mal2html.block.mode}. It handles the parent list elements,
+as well as any special processing for child `item` elements.
 -->
 
 <!-- = list = -->
@@ -302,16 +302,18 @@ as well as any special processing for child #{item} elements.
 
 <!--%%==========================================================================
 mal2html.tree.mode
-Process an #{item} element inside a #{tree}.
-:Revision: version="1.0" date="2010-06-04" status="final"
+Process an `item` element inside a `tree`.
+@revision[version=1.0 date=2010-06-04 status=final]
+
+[xsl:params]
 $lines: Whether to draw lines indicating hierarchy.
-$prefix: The line markers used by the parent #{item}.
+$prefix: The line markers used by the parent `item`.
 
-This mode is used for processing #{item} elements in #{tree} elements. It is
-applied by the template for #{tree} and recursively calls itself. If the parent
-#{tree} has the style hint #{"lines"}, the ${lines} parameter will be #{true}.
+This mode is used for processing `item` elements in `tree` elements. It is
+applied by the template for `tree` and recursively calls itself. If the parent
+`tree` has the style hint `"lines"`, the $lines parameter will be `true`.
 In this case, this template calculates a prefix based on its position and
-neighboring #{item} elements, and passes that prefix to child elements.
+neighboring `item` elements, and passes that prefix to child elements.
 -->
 <xsl:template mode="mal2html.tree.mode" match="mal:item">
   <xsl:param name="lines" select="false()"/>
diff --git a/xslt/mallard/html/mal2html-math.xsl b/xslt/mallard/html/mal2html-math.xsl
index 4c4befca..70875f74 100644
--- a/xslt/mallard/html/mal2html-math.xsl
+++ b/xslt/mallard/html/mal2html-math.xsl
@@ -25,12 +25,12 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - MathML
 Handle MathML in Mallard documents.
-:Revision: version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
-This stylesheet matches embedded MathML in %{mal2html.block.mode} and
-%{mal2html.inline.mode} and processes it in %{mal2html.math.mode}. The
-matched templates for the #{mml:math} element automatically set the
-#{display} attribute based on whether the element is in block or inline
+This stylesheet matches embedded MathML in {mal2html.block.mode} and
+{mal2html.inline.mode} and processes it in {mal2html.math.mode}. The
+matched templates for the `mml:math` element automatically set the
+`display` attribute based on whether the element is in block or inline
 context.
 -->
 
@@ -38,14 +38,14 @@ context.
 <!--%%==========================================================================
 mal2html.math.mode
 Output MathML and handle Mallard extensions.
-:Revision: version="3.8" date="2012-11-13" status="final"
+@revision[version=3.8 date=2012-11-13 status=final]
 
 This mode is used for processing MathML embedded into Mallard documents. For
 most types of MathML content, it simply copies the input directly, except it
 outputs the MathML in a way that allows the namespace to stripped for non-XML
-output. It checks for Mallard linking using the #{mal:xref} attribute and
-transforms this to a MathML #{href} attribute. It also converts #{xlink:href}
-attributes from MathML 2 to #{href} attributes for MathML 3.
+output. It checks for Mallard linking using the `mal:xref` attribute and
+transforms this to a MathML `href` attribute. It also converts `xlink:href`
+attributes from MathML 2 to `href` attributes for MathML 3.
 -->
 <xsl:template mode="mal2html.math.mode" match="mml:*">
   <xsl:element name="{local-name(.)}" namespace="{$html.mathml.namespace}">
diff --git a/xslt/mallard/html/mal2html-media.xsl b/xslt/mallard/html/mal2html-media.xsl
index a9b0ba6f..62302c5b 100644
--- a/xslt/mallard/html/mal2html-media.xsl
+++ b/xslt/mallard/html/mal2html-media.xsl
@@ -25,23 +25,25 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - Media Elements
 Handle Mallard media elements.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
-This stylesheet contains templates for handling Mallard #{media} elements.
-It also handles TTML inside block audio and video #{media} elements.
+This stylesheet contains templates for handling Mallard `media` elements.
+It also handles TTML inside block audio and video `media` elements.
 -->
 
 
 <!--**==========================================================================
 mal2html.media.image
-Output an #{img} element for an image.
-:Revision:version="3.8" date="2012-11-05" status="final"
-$node: The Mallard #{media} element.
-$inline: Whether ${node} is inline.
-
-This template outputs an HTML #{img} element for a Mallard #{media} element
-with the #{type} attribute set to #{"image"} (or with no #{type} attribute).
-If ${node} has fallback content, it is used for the #{alt} attribute.
+Output an `img` element for an image.
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
+$node: The Mallard `media` element.
+$inline: Whether $node is inline.
+
+This template outputs an HTML `img` element for a Mallard `media` element
+with the `type` attribute set to `"image"` (or with no `type` attribute).
+If $node has fallback content, it is used for the `alt` attribute.
 -->
 <xsl:template name="mal2html.media.image">
   <xsl:param name="node" select="."/>
@@ -91,19 +93,21 @@ If ${node} has fallback content, it is used for the #{alt} attribute.
 
 <!--**==========================================================================
 mal2html.media.video
-Output a #{video} element for a video.
-:Revision:version="3.8" date="2012-11-05" status="final"
-$node: The Mallard #{media} element.
-$inline: Whether ${node} is inline.
-
-This template outputs an HTML #{video} element for a Mallard #{media} element
-with the #{type} attribute set to #{"video"}. It converts any fallback content
-in the source to the #{video} element's fallback content. If ${inline} is
-#{false}, this template will process TTML child content.
-
-If ${node} has a child image #{media} element with the #{style} attribute set
-to #{"poster"}, that image will be used for the #{poster} attribute on the
-HTML #{video} element.
+Output a `video` element for a video.
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
+$node: The Mallard `media` element.
+$inline: Whether $node is inline.
+
+This template outputs an HTML `video` element for a Mallard `media` element
+with the `type` attribute set to `"video"`. It converts any fallback content
+in the source to the `video` element's fallback content. If $inline is
+`false`, this template will process TTML child content.
+
+If $node has a child image `media` element with the `style` attribute set
+to `"poster"`, that image will be used for the `poster` attribute on the
+HTML `video` element.
 -->
 <xsl:template name="mal2html.media.video">
   <xsl:param name="node" select="."/>
@@ -149,15 +153,17 @@ HTML #{video} element.
 
 <!--**==========================================================================
 mal2html.media.audio
-Output an #{audio} element for an audio object.
-:Revision:version="3.8" date="2012-11-05" status="final"
-$node: The Mallard #{media} element.
-$inline: Whether ${node} is inline.
-
-This template outputs an HTML #{audio} element for a Mallard #{media} element
-with the #{type} attribute set to #{"audio"}. It converts any fallback content
-in the source to the #{audio} element's fallback content. If ${inline} is
-#{false}, this template will process TTML child content.
+Output an `audio` element for an audio object.
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
+$node: The Mallard `media` element.
+$inline: Whether $node is inline.
+
+This template outputs an HTML `audio` element for a Mallard `media` element
+with the `type` attribute set to `"audio"`. It converts any fallback content
+in the source to the `audio` element's fallback content. If $inline is
+`false`, this template will process TTML child content.
 -->
 <xsl:template name="mal2html.media.audio">
   <xsl:param name="node" select="."/>
@@ -198,8 +204,8 @@ in the source to the #{audio} element's fallback content. If ${inline} is
 
 <!--%%==========================================================================
 mal2html.ttml.mode
-Process TTML subtitles in a Mallard #{media} element.
-:Revision:version="3.8" date="2012-11-05" status="final"
+Process TTML subtitles in a Mallard `media` element.
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This mode is applied to TTML elements inside block audio and video elements.
 It outputs HTML elements that are hidden by default and shown dynamically as
diff --git a/xslt/mallard/html/mal2html-page.xsl b/xslt/mallard/html/mal2html-page.xsl
index 9c5460f5..d03b274e 100644
--- a/xslt/mallard/html/mal2html-page.xsl
+++ b/xslt/mallard/html/mal2html-page.xsl
@@ -29,18 +29,18 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - Pages
 Handle pages, sections, and top-level data.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
-This stylesheet contains templates to process Mallard #{page} and #{section}
+This stylesheet contains templates to process Mallard `page` and `section`
 elements, including implementations of the interfaces provided by the common
-!{html} stylesheet.
+{html} stylesheet.
 -->
 
 
 <!--@@==========================================================================
 mal2html.editor_mode
 Add information that's useful to writers and editors.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 When this parameter is set to true, these stylesheets will output editorial
 comments, status markers, and other information that's useful to writers and
@@ -52,12 +52,14 @@ editors.
 <!--**==========================================================================
 mal2html.page.about
 Output the copyrights, credits, and license information at the bottom of a page.
-:Revision:version="3.8" date="2012-11-05" status="final"
-$node: The top-level #{page} element.
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
+$node: The top-level `page` element.
 
 This template outputs copyright information, credits, and license information for
-the page. By default it is called by the %{html.footer.mode} implementation for
-the #{page} element. Information is extracted from the #{info} element of ${node}.
+the page. By default it is called by the {html.footer.mode} implementation for
+the `page` element. Information is extracted from the `info` element of $node.
 -->
 <xsl:template name="mal2html.page.about">
   <xsl:param name="node" select="."/>
@@ -216,13 +218,15 @@ the #{page} element. Information is extracted from the #{info} element of ${node
 <!--**==========================================================================
 mal2html.page.linktrails
 Ouput trails of guide links for a page.
-:Revision:version="3.4" date="2011-11-19" status="final"
-$node: The top-level #{page} element.
+@revision[version=3.4 date=2011-11-19 status=final]
+
+[xsl:params]
+$node: The top-level `page` element.
 
-This template outputs all of the link trails for the page ${node}. It gets the
-trails from ${mal.link.linktrails}. If the result is non-empty, it outputs a
-wrapper #{div}, sorts the trails, and calls *{mal2html.page.linktrails.trail}
-on each one. Otherwise, it calls the stub template *{mal2html.page.linktrails.empty}.
+This template outputs all of the link trails for the page $node. It gets the
+trails from $mal.link.linktrails. If the result is non-empty, it outputs a
+wrapper `div`, sorts the trails, and calls {mal2html.page.linktrails.trail}
+on each one. Otherwise, it calls the stub template {mal2html.page.linktrails.empty}.
 -->
 <xsl:template name="mal2html.page.linktrails">
   <xsl:param name="node" select="."/>
@@ -258,13 +262,15 @@ on each one. Otherwise, it calls the stub template *{mal2html.page.linktrails.em
 mal2html.page.linktrails.empty
 Deprecated stub to output something when no link trails are present.
 :Stub: true
-:Revision:version="3.20" date="2015-09-17" status="final"
-$node: The top-level #{page} element.
+@revision[version=3.20 date=2015-09-17 status=final]
+
+[xsl:params]
+$node: The top-level `page` element.
 
-This template is deprecated. Use *{html.linktrails.empty} instead. By default,
-this template calls *{html.linktrails.empty}, passing the ${node} parameter.
+This template is deprecated. Use {html.linktrails.empty} instead. By default,
+this template calls {html.linktrails.empty}, passing the $node parameter.
 
-This template is a stub. It is called by ${mal2html.page.linktrails} when there
+This template is a stub. It is called by $mal2html.page.linktrails when there
 are no link trails to output. Some customizations prepend extra site links to
 link trails. This template allows them to output those links even when no link
 trails would otherwise be present.
@@ -280,13 +286,15 @@ trails would otherwise be present.
 <!--**==========================================================================
 mal2html.page.linktrails.trail
 Output one trail of guide links.
-:Revision:version="3.20" date="2015-09-19" status="final"
-$node: A #{link} element from *{mal.link.linktrails}.
+@revision[version=3.20 date=2015-09-19 status=final]
 
-This template outputs an HTML #{div} element containing all the links in a
-single link trail. It calls *{html.linktrails.prefix} (by way of 
-*{mal2html.page.linktrails.trail.prefix}) to output a custom boilerplate prefix,
-then calls *{mal2html.page.linktrails.link} to output the actual links.
+[xsl:params]
+$node: A `link` element from {mal.link.linktrails}.
+
+This template outputs an HTML `div` element containing all the links in a
+single link trail. It calls {html.linktrails.prefix} (by way of 
+{mal2html.page.linktrails.trail.prefix}) to output a custom boilerplate prefix,
+then calls {mal2html.page.linktrails.link} to output the actual links.
 -->
 <xsl:template name="mal2html.page.linktrails.trail">
   <xsl:param name="node" select="."/>
@@ -305,15 +313,17 @@ then calls *{mal2html.page.linktrails.link} to output the actual links.
 mal2html.page.linktrails.trail.prefix
 Deprecated stub to output extra content before a link trail.
 :Stub: true
-:Revision:version="3.20" date="2015-09-17" status="final"
-$node: A #{link} element from *{mal.link.linktrails}.
+@revision[version=3.20 date=2015-09-17 status=final]
+
+[xsl:params]
+$node: A `link` element from {mal.link.linktrails}.
 
-This template is deprecated. Use *{html.linktrails.prefix} instead. By default,
-this template calls *{html.linktrails.prefix}, passing the ${node} parameter.
+This template is deprecated. Use {html.linktrails.prefix} instead. By default,
+this template calls {html.linktrails.prefix}, passing the $node parameter.
 
-This template is a stub. It is called by *{mal2html.page.linktrails.trail} for
+This template is a stub. It is called by {mal2html.page.linktrails.trail} for
 each link trail before the normal links are output with
-*{mal2html.page.linktrails.link}. This template is useful for adding extra site
+{mal2html.page.linktrails.link}. This template is useful for adding extra site
 links at the beginning of each link trail.
 -->
 <xsl:template name="mal2html.page.linktrails.trail.prefix">
@@ -327,17 +337,19 @@ links at the beginning of each link trail.
 <!--**==========================================================================
 mal2html.page.linktrails.link
 Output a link and the following links in a link trail.
-:Revision:version="3.4" date="2011-11-19" status="final"
-$node: A #{link} element from *{mal.link.linktrails}.
+@revision[version=3.4 date=2011-11-19 status=final]
+
+[xsl:params]
+$node: A `link` element from {mal.link.linktrails}.
 $direction: The text directionality.
 
-This template is called by *{mal2html.page.linktrails.trail} to output the links
-in a trail. Link trails returned by *{mal.link.linktrails} are returned as nested
-#{link} elements. This template takes one of those elements, outputs an HTML #{a}
-element, then calls itself recursively on the child #{link} element, if it exists.
+This template is called by {mal2html.page.linktrails.trail} to output the links
+in a trail. Link trails returned by {mal.link.linktrails} are returned as nested
+`link` elements. This template takes one of those elements, outputs an HTML `a`
+element, then calls itself recursively on the child `link` element, if it exists.
 
-The ${direction} parameter specifies the current text directionality. If not
-provided, it is computed automatically with *{l10n.direction}. It determines the
+The $direction parameter specifies the current text directionality. If not
+provided, it is computed automatically with {l10n.direction}. It determines the
 separators used between links.
 -->
 <xsl:template name="mal2html.page.linktrails.link">
@@ -388,12 +400,14 @@ separators used between links.
 <!--**==========================================================================
 mal2html.editor.badge
 Output a badge for a link showing the revision status of the target.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
+
+[xsl:params]
 $target: The page or section being linked to.
 
 This template may be called by link formatters to output a badge showing the
 revision status of the linked-to page or section. It only outputs a badge if
-@{mal2html.editor_mode} is #{true}.
+{mal2html.editor_mode} is `true`.
 -->
 <xsl:template name="mal2html.editor.badge">
   <xsl:param name="target" select="."/>
@@ -461,12 +475,14 @@ revision status of the linked-to page or section. It only outputs a badge if
 <!--**==========================================================================
 mal2html.editor.banner
 Output a banner with the revision status of a page.
-:Revision:version="3.8" date="2012-11-05" status="final"
-$node: The top-level #{page} element.
+@revision[version=3.8 date=2012-11-05 status=final]
 
-This template is called by the %{html.body.mode} implementation for #{page}
+[xsl:params]
+$node: The top-level `page` element.
+
+This template is called by the {html.body.mode} implementation for `page`
 elements. It outputs a banner providing information about the revision status
-of ${node}. It only outputs a banner if @{mal2html.editor_mode} is #{true}.
+of $node. It only outputs a banner if {mal2html.editor_mode} is `true`.
 -->
 <xsl:template name="mal2html.editor.banner">
   <xsl:param name="node" select="."/>
@@ -724,12 +740,14 @@ of ${node}. It only outputs a banner if @{mal2html.editor_mode} is #{true}.
 
 <!--**==========================================================================
 mal2html.section
-Output HTML for a Mallard #{section} element.
-:Revision:version="3.4" date="2012-01-26" status="final"
-$node: The #{section} element.
+Output HTML for a Mallard `section` element.
+@revision[version=3.4 date=2012-01-26 status=final]
+
+[xsl:params]
+$node: The `section` element.
 
-This template outputs HTML for a #{section} element. It it called by the
-templates that handle #{page} and #{section} elements.
+This template outputs HTML for a `section` element. It it called by the
+templates that handle `page` and `section` elements.
 -->
 <xsl:template name="mal2html.section">
   <xsl:param name="node" select="."/>
@@ -928,11 +946,11 @@ templates that handle #{page} and #{section} elements.
 <!--%%==========================================================================
 mal2html.title.mode
 Output headings for titles and subtitles.
-:Revision:version="3.10" date="2013-07-10" status="final"
+@revision[version=3.10 date=2013-07-10 status=final]
 
-This template is called on #{title} and #{subtitle} elements that appear as
-direct child content of #{page} or #{section} elements. Normal block titles
-are processed in %{mal2html.block.mode}.
+This template is called on `title` and `subtitle` elements that appear as
+direct child content of `page` or `section` elements. Normal block titles
+are processed in {mal2html.block.mode}.
 -->
 <xsl:template mode="mal2html.title.mode" match="mal:title | mal:subtitle">
   <xsl:if test="not(contains(concat(' ', @style, ' '), ' hidden '))">
diff --git a/xslt/mallard/html/mal2html-svg.xsl b/xslt/mallard/html/mal2html-svg.xsl
index 31fb7355..3aa2ee03 100644
--- a/xslt/mallard/html/mal2html-svg.xsl
+++ b/xslt/mallard/html/mal2html-svg.xsl
@@ -27,22 +27,22 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML - SVG
 Handle embedded SVG.
-:Revision: version="1.0" date="2010-06-04" status="final"
+@revision[version=1.0 date=2010-06-04 status=final]
 
-This stylesheet matches embedded SVG in %{mal2html.block.mode} and processes it
-in %{mal2html.svg.mode}.
+This stylesheet matches embedded SVG in {mal2html.block.mode} and processes it
+in {mal2html.svg.mode}.
 -->
 
 <!--%%==========================================================================
 mal2html.svg.mode
 Output SVG and handle Mallard extensions.
-:Revision: version="3.18" date="2015-05-04" status="final"
+@revision[version=3.18 date=2015-05-04 status=final]
 
 This mode is used for processing SVG embedded into Mallard documents. For most
 types of SVG content, it simply copies the input directly, except it outputs
 the SVG in a way that allows the namespace to stripped for non-XML output. It
-checks for Mallard linking using the #{mal:xref} attribute and transforms this
-to an XLink #{xlink:href} attribute.
+checks for Mallard linking using the `mal:xref` attribute and transforms this
+to an XLink `xlink:href` attribute.
 -->
 <xsl:template mode="mal2html.svg.mode" match="svg:*">
   <xsl:choose>
diff --git a/xslt/mallard/html/mal2html-ui.xsl b/xslt/mallard/html/mal2html-ui.xsl
index 1d81a6b2..07064791 100644
--- a/xslt/mallard/html/mal2html-ui.xsl
+++ b/xslt/mallard/html/mal2html-ui.xsl
@@ -36,17 +36,19 @@ extension.
 <!--**==========================================================================
 mal2html.ui.expander.data
 Output data for an expander.
-:Revision:version="3.4" date="2012-02-25" status="final"
+@revision[version=3.4 date=2012-02-25 status=final]
+
+[xsl:params]
 $node: The source element to output data for.
-$expander: Whether ${node} is actually an expander.
+$expander: Whether $node is actually an expander.
 
-This template outputs an HTML #{div} element with the #{class} attribute set to
-#{"yelp-data yelp-data-ui-expander"}. All #{yelp-data} elements are hidden by
+This template outputs an HTML `div` element with the `class` attribute set to
+`"yelp-data yelp-data-ui-expander"`. All `yelp-data` elements are hidden by
 the CSS. The div contains information about text directionality, the default
 expanded state, and optionally additional titles for the expanded and collapsed
 states.
 
-The expander information is only output if the ${expander} parameter is #{true}.
+The expander information is only output if the $expander parameter is `true`.
 This parameter can be calculated automatically, but it will give false negatives
 for blocks that produce automatic titles.
 -->
@@ -98,15 +100,17 @@ http://projectmallard.org/ui/1.0/ui_expanded.html</xsl:text>
 <!--**==========================================================================
 mal2html.ui.links.tiles
 Output links as thumbnail tiles.
-:Revision:version="3.28" date="2015-10-22" status="volatile"
-$node: A #{links} element to link from.
-$links: A list of links, as from a template in !{mal-link}.
+@revision[version=3.28 date=2015-10-22 status=volatile]
+
+[xsl:params]
+$node: A `links` element to link from.
+$links: A list of links, as from a template in {mal-link}.
 $role: A link role, used to select the appropriate title and thumbnail.
 
 This template outputs links as thumbnail tiles. For each link, it outputs
-a #{div} element with a thumbnail, title, and desc (unless the #{nodesc}
-style hint is used). This template calls *{mal2html.ui.links.img} to find
-the best-match thumbnail and output the HTML #{img} element for each link.
+a `div` element with a thumbnail, title, and desc (unless the `nodesc`
+style hint is used). This template calls {mal2html.ui.links.img} to find
+the best-match thumbnail and output the HTML `img` element for each link.
 
 This template handles link sorting.
 -->
@@ -196,17 +200,19 @@ This template handles link sorting.
 <!--DEPRECATED==================================================================
 _mal2html.ui.links.hover
 Output links with thumbnails shown on hover.
-:Revision:version="3.4" date="2012-02-26" status="final"
-$node: A #{links} element to link from.
-$links: A list of links, as from a template in !{mal-link}.
+@revision[version=3.4 date=2012-02-26 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$links: A list of links, as from a template in {mal-link}.
 $role: A link role, used to select the appropriate title and thumbnail.
 
 This template outputs links alongside thumbnail images, using the UI extension.
 The thumbnail image for each link is shown when the user hovers over that link.
-This template calls *{mal2html.ui.links.img} to find the best-match thumbnail
-and output the HTML #{img} element for each link.
+This template calls {mal2html.ui.links.img} to find the best-match thumbnail
+and output the HTML `img` element for each link.
 
-If ${node} contains a #{ui:thumb} element, that image is used when no links
+If $node contains a `ui:thumb` element, that image is used when no links
 are hovered.
 
 This template handles link sorting.
@@ -317,30 +323,32 @@ This template handles link sorting.
 <!--**==========================================================================
 mal2html.ui.links.img
 Output an image for a link using UI thumbnails.
-:Revision:version="3.28" date="2017-08-11" status="final"
-$node: A #{links} element to link from.
-$thumbs: A list of candidate #{uix:thumb} elements.
+@revision[version=3.28 date=2017-08-11 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$thumbs: A list of candidate `uix:thumb` elements.
 $role: A link role, used to select the appropriate thumbnail.
 $width: The width to fit thumbnails into.
 $height: The height to fit thumbnails into.
 
-This template selects the best-fit thumbnail from ${thumbs}, based on how well
-the aspect ratio and dimensions of each image matches the ${width} and ${height}
-parameters. It outputs an HTML #{img} element for the best-fit thumbnail. It
-calls ${mal2thml.ui.links.img.src} to output the #{src} attribute, and calls
-${mal2html.ui.links.img.attrs} to output #{width} and #{height} attributes.
+This template selects the best-fit thumbnail from $thumbs, based on how well
+the aspect ratio and dimensions of each image matches the $width and $height
+parameters. It outputs an HTML `img` element for the best-fit thumbnail. It
+calls $mal2thml.ui.links.img.src to output the `src` attribute, and calls
+$mal2html.ui.links.img.attrs to output `width` and `height` attributes.
 
 Before checking for a best-fit thumbnail on dimensions, this template first
-looks for #{uix:thumb} elements with the #{type} attribute set to #{"links"}.
-Within those, it looks for #{uix:thumb} elements whose #{role} attribute
-matches the ${role} parameter. This is similar to how link titles are
+looks for `uix:thumb` elements with the `type` attribute set to `"links"`.
+Within those, it looks for `uix:thumb` elements whose `role` attribute
+matches the $role parameter. This is similar to how link titles are
 selected.
 
-If the ${thumbs} parameter is empty, this template attempts to use a default
-thumbnail provided by a #{uix:thumb} child element of ${node}.
+If the $thumbs parameter is empty, this template attempts to use a default
+thumbnail provided by a `uix:thumb` child element of $node.
 
-The ${width} and ${height} parameters can be computed automatically from the
-${node} element.
+The $width and $height parameters can be computed automatically from the
+$node element.
 -->
 <xsl:template name="mal2html.ui.links.img">
   <xsl:param name="node"/>
@@ -395,15 +403,17 @@ ${node} element.
 
 <!--**==========================================================================
 mal2html.ui.links.img.src
-Output the #{src} attribute for a thumbnail image.
-:Revision:version="3.28" date="2017-08-11" status="final"
-$node: A #{links} element to link from.
-$thumb: A #{uix:thumb} element.
+Output the `src` attribute for a thumbnail image.
+@revision[version=3.28 date=2017-08-11 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$thumb: A `uix:thumb` element.
 $width: The width to fit thumbnails into.
 $height: The height to fit thumbnails into.
 
-This template outputs #{src} attribute for the HTML #{img} element created
-from ${thumb}. By default, it just copies the #{src} attribute of ${thumb}.
+This template outputs `src` attribute for the HTML `img` element created
+from $thumb. By default, it just copies the `src` attribute of $thumb.
 Override this template if you need to support multi-directory output.
 -->
 <xsl:template name="mal2html.ui.links.img.src">
@@ -417,17 +427,19 @@ Override this template if you need to support multi-directory output.
 
 <!--**==========================================================================
 mal2html.ui.links.img.attrs
-Output the #{width} and #{height} attributes for a thumbnail image.
-:Revision:version="3.28" date="2017-08-11" status="final"
-$node: A #{links} element to link from.
-$thumb: A #{uix:thumb} element.
+Output the `width` and `height` attributes for a thumbnail image.
+@revision[version=3.28 date=2017-08-11 status=final]
+
+[xsl:params]
+$node: A `links` element to link from.
+$thumb: A `uix:thumb` element.
 $width: The width to fit thumbnails into.
 $height: The height to fit thumbnails into.
 
-This template outputs #{width} and #{height} attributes for the HTML #{img}
-element created from ${thumb}, based on the #{uix:overflow} attribute on ${node}.
-The ${width} and ${height} parameters can be computed automatically from the
-${node} element.
+This template outputs `width` and `height` attributes for the HTML `img`
+element created from $thumb, based on the `uix:overflow` attribute on $node.
+The $width and $height parameters can be computed automatically from the
+$node element.
 -->
 <xsl:template name="mal2html.ui.links.img.attrs">
   <xsl:param name="node"/>
diff --git a/xslt/mallard/html/mal2html.xsl b/xslt/mallard/html/mal2html.xsl
index 70dbdb3a..01f1b23a 100644
--- a/xslt/mallard/html/mal2html.xsl
+++ b/xslt/mallard/html/mal2html.xsl
@@ -24,15 +24,15 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to HTML
 Transform Mallard to HTML.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This top-level stylesheet includes all the necessary stylesheets to transform
-Mallard documents into HTML. It imports !{mal2xhtml}, overrides parameters, and
+Mallard documents into HTML. It imports {mal2xhtml}, overrides parameters, and
 sets a namespace alias to output non-XML HTML. In particular, this stylesheet
-sets @{html.xhtml} to #{false} and @{mal.if.target} to #{'target:html'}.
+sets {html.xhtml} to `false` and {mal.if.target} to `'target:html'`.
 -->
 
-<xsl:import href="mal2xhtml.xsl"><?pass?></xsl:import>
+<xsl:import href="mal2xhtml.xsl"><?xsldoc.passthrough?></xsl:import>
 
 <xsl:param name="html.xhtml" select="false()"/>
 <xsl:param name="mal.if.target" select="'target:html'"/>
diff --git a/xslt/mallard/html/mal2xhtml.xsl b/xslt/mallard/html/mal2xhtml.xsl
index b3c90057..2f7038f3 100644
--- a/xslt/mallard/html/mal2xhtml.xsl
+++ b/xslt/mallard/html/mal2xhtml.xsl
@@ -24,12 +24,12 @@ along with this program; see the file COPYING.LGPL.  If not, see <http://www.gnu
 <!--!!==========================================================================
 Mallard to XHTML
 Transform Mallard to XHTML.
-:Revision:version="3.8" date="2012-11-05" status="final"
+@revision[version=3.8 date=2012-11-05 status=final]
 
 This top-level stylesheet includes all the necessary stylesheets to transform
 Mallard documents into XHTML. This stylesheet sets the parameters
-@{mal.if.target}, @{mal.if.features}, @{mal.if.maybe}, @{mal.link.extension},
-and @{ttml.features}.
+{mal.if.target}, {mal.if.features}, {mal.if.maybe}, {mal.link.extension},
+and {ttml.features}.
 -->
 
 <xsl:import href="../../common/l10n.xsl"/>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]