123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478 |
- <?xml version="1.0"?>
- <reference xml:id="template"><?dbhtml dir="template"?><?dbhtml filename="index.html"?>
-
-
- <info>
- <title>Titlepage Template Stylesheet Reference</title>
- <releaseinfo role="meta">
- $Id: titlepage.xsl 9600 2012-09-11 12:12:09Z kosek $
- </releaseinfo>
- </info>
- <partintro xml:id="intro_partintro">
- <title>Introduction</title>
-
- <para>This is technical reference documentation for the
- “titlepage” templates in the DocBook XSL Stylesheets.</para>
-
- <para>This is not intended to be user documentation. It is
- provided for developers writing customization layers for the
- stylesheets.</para>
- </partintro>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="templates">
- <refnamediv>
- <refname>t:templates</refname>
- <refpurpose>Construct a stylesheet for the templates provided</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:templates"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>The <literal>t:templates</literal> element is the root of a
- set of templates. This template creates an appropriate
- <literal>xsl:stylesheet</literal> for the templates.</para>
- <para>If the <literal>t:templates</literal> element has a
- <literal>base-stylesheet</literal> attribute, an
- <literal>xsl:import</literal> statement is constructed for it.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star">
- <refnamediv>
- <refname>xsl:*</refname>
- <refpurpose>Copy xsl: elements straight through</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="xsl:*"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template simply copies the xsl: elements
- straight through into the result tree.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage">
- <refnamediv>
- <refname>t:titlepage</refname>
- <refpurpose>Create the templates necessary to construct a title page</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:titlepage"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>The <literal>t:titlepage</literal> element creates a set of
- templates for processing the titlepage for an element. The
- <quote>root</quote> of this template set is the template named
- <quote><literal>wrapper.titlepage</literal></quote>. That is the
- template that should be called to generate the title page.
- </para>
- <para>The <literal>t:titlepage</literal> element has three attributes:
- <variablelist>
- <varlistentry><term>element</term>
- <listitem>
- <para>The name of the source document element for which
- these templates apply. In other words, to make a title page for the
- <tag>article</tag> element, set the
- <tag class="attribute">element</tag> attribute to
- <quote><literal>article</literal></quote>. This attribute is required.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term>wrapper</term>
- <listitem>
- <para>The entire title page can be wrapped with an element.
- This attribute identifies that element.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term>class</term>
- <listitem>
- <para>If the <tag class="attribute">class</tag> attribute
- is set, a <tag class="attribute">class</tag> attribute with this
- value will be added to the wrapper element that surrounds the entire
- title page.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>Any other attributes are copied through literally to the
- wrapper element.</para>
- <para>The content of a <literal>t:titlepage</literal> is one or
- more <literal>t:titlepage-content</literal>,
- <literal>t:titlepage-separator</literal>, and
- <literal>t:titlepage-before</literal> elements.</para>
- <para>Each of these elements may be provided for the <quote>recto</quote>
- and <quote>verso</quote> sides of the title page.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy.literal.atts">
- <refnamediv>
- <refname>@* (in copy.literal.atts mode)</refname>
- <refpurpose>Copy t:titlepage attributes</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="@*" mode="copy.literal.atts"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template copies all of the <quote>other</quote> attributes
- from a <literal>t:titlepage</literal> element onto the specified
- wrapper.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-content">
- <refnamediv>
- <refname>t:titlepage-content</refname>
- <refpurpose>Create templates for the content of one side of a title page</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:titlepage-content"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>The title page content, that is, the elements from the source
- document that are rendered on the title page, can be controlled independently
- for the recto and verso sides of the title page.</para>
- <para>The <literal>t:titlepage-content</literal> element has two attributes:
- <variablelist>
- <varlistentry><term>side</term>
- <listitem>
- <para>Identifies the side of the page to which this title
- page content applies. The
- <tag class="attribute">side</tag> attribute is required and
- must be set to either
- <quote><literal>recto</literal></quote> or
- <quote><literal>verso</literal></quote>. In addition, you must specify
- exactly one <literal>t:titlepage-content</literal> for each side
- within each <literal>t:titlepage</literal>.</para>
- </listitem>
- </varlistentry>
- <varlistentry><term>order</term>
- <listitem>
- <para>Indicates how the order of the elements presented on
- the title page is determined. If the
- <tag class="attribute">order</tag> is
- <quote><literal>document</literal></quote>, the elements are presented
- in document order. Otherwise (if the
- <tag class="attribute">order</tag> is
- <quote><literal>stylesheet</literal></quote>), the elements are presented
- in the order that they appear in the template (and consequently in
- the stylesheet).</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>The content of a <literal>t:titlepage-content</literal> element is
- a list of element names. These names should be unqualified. They identify
- the elements in the source document that should appear on the title page.
- </para>
- <para>Each element may have a single attribute:
- <tag class="attribute">predicate</tag>. The value of this
- attribute is used as a predicate for the expression that matches
- the element on which it occurs.</para>
- <para>In other words, to put only the first three authors on the
- recto-side of a title
- page, you could specify:
- <screen>
- <t:titlepage-contents side="recto">
- <!-- other titlepage elements -->
- <author predicate="[count(previous-sibling::author)<2]"/>
- <!-- other titlepage elements -->
- </t:titlepage-contents>
- </screen>
- </para>
- <para>Usually, the elements so named are empty. But it is possible to
- make one level of selection within them. Suppose that you want to
- process <literal>authorgroup</literal> elements on the title page, but
- you want to select only proper authors, editors, or corporate authors,
- not collaborators or other credited authors.</para>
- <para>In that case, you can put a <literal>t:or</literal> group inside
- the <literal>authorgroup</literal> element:
- <screen>
- <t:titlepage-contents side="recto">
- <!-- other titlepage elements -->
- <authorgroup>
- <t:or>
- <author/>
- <editor/>
- <corpauthor/>
- </t:or>
- </authorgroup>
- <!-- other titlepage elements -->
- </t:titlepage-contents>
- </screen>
- </para>
- <para>This will have the effect of automatically generating a template
- for processing <literal>authorgroup</literal>s in the title page mode,
- selecting only the specified children. If you need more complex processing,
- you'll have to construct the templates by hand.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-separator">
- <refnamediv>
- <refname>t:titlepage-separator</refname>
- <refpurpose>Create templates for the separator</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:titlepage-separator"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>The title page is separated from the content which follows it by
- the markup specified in the <literal>t:titlepage-separator</literal>
- element.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-before">
- <refnamediv>
- <refname>t:titlepage-before</refname>
- <refpurpose>Create templates for what precedes a title page</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:titlepage-before"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>Each side of the title page is preceded by the markup specified
- in the <literal>t:titlepage-before</literal> element for that
- side.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_copy">
- <refnamediv>
- <refname>* (in copy mode)</refname>
- <refpurpose>Copy elements</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="*" mode="copy"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template simply copies the elements that it applies to
- straight through into the result tree.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy">
- <refnamediv>
- <refname>@* (in copy mode)</refname>
- <refpurpose>Copy attributes</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="@*" mode="copy"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template simply copies the attributes that it applies to
- straight through into the result tree.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_document.order">
- <refnamediv>
- <refname>* (in document.order mode)</refname>
- <refpurpose>Create rules to process titlepage elements in document order</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="*" mode="document.order"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template is called to process all of the children of the
- <literal>t:titlepage-content</literal> element. It creates the hairy
- select expression necessary to process each of those elements in
- the title page.</para>
- <para>Note that this template automatically handles the case where
- some DocBook elements, like title and subtitle, can occur both inside
- the *info elements where metadata is usually stored and outside.
- </para>
- <para>It also automatically calculates the name for the *info container
- and handles elements that have historically had containers with different
- names.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_document.order">
- <refnamediv>
- <refname>* (in document.order mode)</refname>
- <refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="*" mode="document.order"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template is called to process all of the children of the
- <literal>t:titlepage-content</literal> element. It creates the set
- of <literal>xsl:apply-templates</literal> elements necessary
- process each of those elements in the title page.</para>
- <para>Note that this template automatically handles the case where
- some DocBook elements, like title and subtitle, can occur both inside
- the *info elements where metadata is usually stored and outside.
- </para>
- <para>It also automatically calculates the name for the *info container
- and handles elements that have historically had containers with different
- names.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.specialrules">
- <refnamediv>
- <refname>* (in titlepage.specialrules mode)</refname>
- <refpurpose>Create templates for special rules</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="*" mode="titlepage.specialrules"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template is called to process all of the descendants of the
- <literal>t:titlepage-content</literal> element that require special
- processing. At present, that's just <literal>t:or</literal> elements.
- </para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.subrules">
- <refnamediv>
- <refname>* (in titlepage.subrules mode)</refname>
- <refpurpose>Create template for individual special rules</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="*" mode="titlepage.subrules"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template is called to process the children of special
- template elements.
- </para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or">
- <refnamediv>
- <refname>t:or</refname>
- <refpurpose>Process the t:or special rule</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:or"/><xsl:template match="t:or" mode="titlepage.subrules"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>This template processes t:or.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or_in_titlepage.subrules">
- <refnamediv>
- <refname>t:or (in titlepage.subrules mode)</refname>
- <refpurpose>Process the t:or special rule in
- titlepage.subrules mode</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template match="t:or" mode="titlepage.subrules"/></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>The titlepage.subrules mode doesn't apply to t:or, so just
- reprocess this node in the normal mode.</para>
- </refsect1></refentry>
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.element-or-list">
- <refnamediv>
- <refname>element-or-list</refname>
- <refpurpose>Construct the "or-list" used in the select attribute for
- special rules.</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <synopsis><xsl:template name="element-or-list">
- <xsl:param name="elements" select="*"/>
- <xsl:param name="element.count" select="count($elements)"/>
- <xsl:param name="count" select="1"/>
- <xsl:param name="orlist"/>
- ...
- </xsl:template></synopsis>
- </refsynopsisdiv>
- <refsect1><title>Description</title>
- <para>Walk through each of the children of t:or, producing the
- text of the select attribute.</para>
- </refsect1></refentry>
- </reference>
|