get.refentry.metadata — Gathers metadata from a refentry and its ancestors
<xsl:template name="get.refentry.metadata"> <xsl:param name="refname"/> <xsl:param name="info"/> <xsl:param name="prefs"/> ... </xsl:template>
Reference documentation for particular commands, functions,
etc., is sometimes viewed in isolation from its greater "context". For
example, users view Unix man pages as, well, individual pages, not as
part of a "book" of some kind. Therefore, it is sometimes necessary to
embed "context" information in output for each refentry
.
However, one problem is that different users mark up that
context information in different ways. Often (usually), the
context information is not actually part of the content of the
refentry
itself, but instead part of the content of a
parent or ancestor element to the refentry
. And
even then, DocBook provides a variety of elements that users might
potentially use to mark up the same kind of information. One user
might use the productnumber
element to mark up version
information about a particular product, while another might use
the releaseinfo
element.
Taking all that in mind, the
get.refentry.metadata
template tries to gather
metadata from a refentry
element and its ancestor
elements in an intelligent and user-configurable way. The basic
mechanism used in the XPath expressions throughout this stylesheet
is to select the relevant metadata from the *info element that is
closest to the actual refentry
– either on the
refentry
itself, or on its nearest ancestor.
The get.refentry.metadata
template is actually just sort of a "driver" template; it
calls other templates that do the actual data collection,
then returns the data as a set.
The first refname
in the refentry
A set of info nodes (from a refentry
element and its ancestors)
A node containing user preferences (from global stylesheet parameters)
Returns a node set with the following elements. The
descriptions are verbatim from the man(7)
man
page.
the title of the man page (e.g., MAN
)
the section number the man page should be placed in (e.g.,
7
)
the date of the last revision
the source of the command
the title of the manual (e.g., Linux Programmer's Manual)