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"/>


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)