2
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
4
xmlns:date="http://exslt.org/dates-and-times"
5
exclude-result-prefixes="doc date"
8
<!-- ********************************************************************
9
$Id: refentry.xsl 1179 2005-11-22 08:26:49Z axis3x3 $
10
********************************************************************
12
This file is part of the XSL DocBook Stylesheet distribution.
13
See ../README or http://docbook.sf.net/release/xsl/current/ for
14
copyright and other information.
16
******************************************************************** -->
18
<!-- ==================================================================== -->
20
<doc:reference xmlns="">
22
<releaseinfo role="meta">
23
$Id: refentry.xsl 1179 2005-11-22 08:26:49Z axis3x3 $
25
<author><orgname>The DocBook Project</orgname></author>
26
<copyright><year>2005</year>
27
<holder>The DocBook Project</holder>
30
<title>Refentry Metadata-Gathering Template Reference</title>
33
<section><title>Introduction</title>
35
<para>This is technical reference documentation for the "refentry
36
metadata gathering" templates in the DocBook XSL Stylesheets.</para>
38
<para>This is not intended to be user documentation. It is provided
39
for developers writing customization layers for the
43
<para>Currently, only the manpages stylesheets make use of these
44
templates. They are, however, potentially useful elsewhere.</para>
52
<!-- ==================================================================== -->
54
<doc:template name="get.refentry.metadata" xmlns="">
55
<refpurpose>Gathers metadata from a refentry and its parent</refpurpose>
58
<para>Reference documentation for particular commands, functions,
59
etc., is sometimes viewed in isolation from its greater "context". For
60
example, users view Unix man pages as, well, individual pages, not as
61
part of a "book" of some kind. Therefore, it is sometimes necessary to
62
embed "context" information in output for each <tag>refentry</tag>.</para>
64
<para>However, one problem is that mark up that context information in
65
different ways. Often (usually), it is not actually part fo the
66
content of the <tag>refentry</tag> itself, but instead part of its
67
parent element's content. And even then, DocBook provides a variety of
68
elements that users might potentially use to mark up the same kind of
69
information. One user might use the <tag>productnumber</tag> element
70
to mark up version information about a particular product, while
71
another might use the <tag>releaseinfo</tag> element.</para>
73
<para>Taking all that in mind, the
74
<function>get.refentry.info</function> function tries to gather data
75
from a <tag>refentry</tag> element and its parent element in an
76
intelligent and user-configurable way.</para>
79
<para>The <function>get.refentry.info</function> is actually just
80
sort of a "driver" function; it calls other function that do that
81
actual data collection, the returns the data as a set.</para>
84
<para>The manpages stylesheets are an application of these APIs.</para>
92
<para>The first <tag>refname</tag> in the refentry</para>
98
<para>An info node (from a <tag>refentry</tag> element)</para>
102
<term>parentinfo</term>
104
<para>An info node (from a parent of a <tag>refentry</tag>
111
<para>A node containing users preferences (from global
112
stylesheet parameters)</para>
119
<para>Returns a node set with the following elements. The
120
descriptions are verbatim from the <literal>man(7)</literal> man
126
<para>the title of the man page (e.g., <literal>MAN</literal>)</para>
132
<para>the section number the man page should be placed in (e.g.,
133
<literal>7</literal>)</para>
139
<para>the date of the last revision</para>
145
<para>the source of the command</para>
151
<para>the title of the manual (e.g., <citetitle>Linux
152
Programmer's Manual</citetitle>)</para>
160
<xsl:template name="get.refentry.metadata">
161
<xsl:param name="refname"/>
162
<xsl:param name="info"/>
163
<xsl:param name="parentinfo"/>
164
<xsl:param name="prefs"/>
166
<xsl:call-template name="get.refentry.title">
167
<xsl:with-param name="refname" select="$refname"/>
171
<xsl:call-template name="get.refentry.section"/>
174
<xsl:call-template name="get.refentry.date">
175
<xsl:with-param name="info" select="$info"/>
176
<xsl:with-param name="parentinfo" select="$parentinfo"/>
177
<xsl:with-param name="prefs" select="$prefs/DatePrefs"/>
181
<xsl:call-template name="get.refentry.source">
182
<xsl:with-param name="info" select="$info"/>
183
<xsl:with-param name="parentinfo" select="$parentinfo"/>
184
<xsl:with-param name="prefs" select="$prefs/SourcePrefs"/>
188
<xsl:call-template name="get.refentry.manual">
189
<xsl:with-param name="info" select="$info"/>
190
<xsl:with-param name="parentinfo" select="$parentinfo"/>
191
<xsl:with-param name="prefs" select="$prefs/ManualPrefs"/>
196
<!-- ====================================================================== -->
198
<doc:template name="get.refentry.title" xmlns="">
199
<refpurpose>Gets title metadata for a refentry</refpurpose>
202
<para>The <literal>man(7)</literal> man page describes this as "the
203
title of the man page (e.g., <literal>MAN</literal>). This differs
204
from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
205
<tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
206
otherwise, we just use first <tag>refname</tag> in the first
207
<tag>refnamediv</tag> in the source.</para>
215
<para>The first <tag>refname</tag> in the refentry</para>
222
<para>Returns a <tag>title</tag> node.</para></refreturn>
225
<xsl:template name="get.refentry.title">
226
<xsl:param name="refname"/>
228
<xsl:when test="refmeta/refentrytitle">
230
<xsl:apply-templates select="refmeta/refentrytitle/node()"/>
234
<xsl:copy-of select="$refname"/>
239
<!-- ==================================================================== -->
241
<doc:template name="get.refentry.section" xmlns="">
242
<refpurpose>Gets section metadata for a refentry</refpurpose>
245
<para>The <literal>man(7)</literal> man page describes this as "the
246
section number the man page should be placed in (e.g.,
247
<literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
248
specified in the source, and we find that the <tag>refentry</tag> is
249
for a function, we use the section number <literal>3</literal>
250
["Library calls (functions within program libraries)"]; otherwise, we
251
default to using <literal>1</literal> ["Executable programs or shell
255
<refparameter><para>[none]</para></refparameter>
258
<para>Returns a <tag>section</tag> node.</para></refreturn>
260
<xsl:template name="get.refentry.section">
262
<xsl:when test="refmeta/manvolnum">
263
<xsl:value-of select="refmeta/manvolnum"/>
265
<xsl:when test=".//funcsynopsis">3</xsl:when>
266
<xsl:otherwise>1</xsl:otherwise>
270
<!-- ==================================================================== -->
272
<doc:template name="get.refentry.date" xmlns="">
273
<refpurpose>Gets date metadata for a refentry</refpurpose>
276
<para>The <literal>man(7)</literal> man page describes this as "the
277
date of the last revision". If we cannot find a date in the source, we
286
<para>An info node (from a <tag>refentry</tag> element)</para>
290
<term>parentinfo</term>
292
<para>An info node (from a parent of a <tag>refentry</tag> element)</para>
298
<para>A node containing users preferences (from global stylesheet parameters)</para>
304
<refreturn><para>Returns a <tag>date</tag> node.</para></refreturn>
307
<xsl:template name="get.refentry.date">
308
<xsl:param name="info"/>
309
<xsl:param name="parentinfo"/>
310
<xsl:param name="prefs"/>
311
<xsl:variable name="Date">
313
<!-- * if profiling is enabled for date, and the date -->
314
<!-- * profile is non-empty, use it -->
315
<xsl:when test="$prefs/@profileEnabled != '0' and
316
$prefs/@profile != ''">
317
<xsl:call-template name="evaluate.info.profile">
318
<xsl:with-param name="profile" select="$prefs/@profile"/>
319
<xsl:with-param name="info" select="$info"/>
320
<xsl:with-param name="parentinfo" select="$parentinfo"/>
324
<!-- * either profiling is not enabled for date, or the-->
325
<!-- * date profile is empty, so we need to look for date -->
326
<!-- * first in *info, then in parentinfo -->
328
<!-- * look for date or pubdate in *info -->
329
<xsl:when test="$info/date
334
|$info/pubdate)[1]/node()"/>
337
<!-- * look for date or pubdate in parentinfo -->
341
select="($parentinfo/date
342
|$parentinfo/pubdate)[1]/node()"/>
350
<xsl:when test="$Date != ''">
351
<xsl:value-of select="$Date"/>
353
<!-- * We couldn't find a date, so we generate a date. -->
354
<!-- * And we make it an appropriately localized date. -->
356
<xsl:call-template name="datetime.format">
357
<xsl:with-param name="date">
359
<xsl:when test="function-available('date:date-time')">
360
<xsl:value-of select="date:date-time()"/>
362
<xsl:when test="function-available('date:dateTime')">
364
<xsl:value-of select="date:dateTime()"/>
368
<xsl:with-param name="format">
369
<xsl:call-template name="gentext.template">
370
<xsl:with-param name="context" select="'datetime'"/>
371
<xsl:with-param name="name" select="'format'"/>
379
<!-- ==================================================================== -->
381
<doc:template name="get.refentry.source" xmlns="">
382
<refpurpose>Gets source metadata for a refentry</refpurpose>
385
<para>The <literal>man(7)</literal> man page describes this as "the
386
source of the command", and provides the following examples:
389
<para>For binaries, use something like: GNU, NET-2, SLS
390
Distribution, MCC Distribution.</para>
393
<para>For system calls, use the version of the kernel that you are
394
currently looking at: Linux 0.99.11.</para>
397
<para>For library calls, use the source of the function: GNU, BSD
398
4.3, Linux DLL 4.4.1.</para>
403
<para>In practice, there are many pages that simply have a version
404
number in the "source" field. So, it looks like what we have is a
406
<replaceable>Name</replaceable> <replaceable>Version</replaceable>,
412
<para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
418
<para>version name</para>
422
Each part is optional. If the <replaceable>Name</replaceable> is a
423
product name, then the <replaceable>Version</replaceable> is probably
424
the version of the product. Or there may be no
425
<replaceable>Name</replaceable>, in which case, if there is a
426
<replaceable>Version</replaceable>, it is probably the version of the
427
item itself, not the product it is part of. Or, if the
428
<replaceable>Name</replaceable> is an organization name, then there
429
probably will be no <replaceable>Version</replaceable>.
438
<para>An info node (from a <tag>refentry</tag> element)</para>
442
<term>parentinfo</term>
444
<para>An info node (from a parent of a <tag>refentry</tag> element)</para>
450
<para>A node containing users preferences (from global
451
stylesheet parameters)</para>
457
<refreturn><para>Returns a <tag>source</tag> node.</para></refreturn>
460
<xsl:template name="get.refentry.source">
461
<xsl:param name="info"/>
462
<xsl:param name="parentinfo"/>
463
<xsl:param name="prefs"/>
464
<xsl:variable name="Name">
465
<xsl:if test="$prefs/Name/@suppress = '0'">
466
<xsl:call-template name="get.refentry.source.name">
467
<xsl:with-param name="info" select="$info"/>
468
<xsl:with-param name="parentinfo" select="$parentinfo"/>
469
<xsl:with-param name="prefs" select="$prefs/Name"/>
473
<xsl:variable name="Version">
474
<xsl:if test="$prefs/Version/@suppress = '0'">
475
<xsl:call-template name="get.refentry.version">
476
<xsl:with-param name="info" select="$info"/>
477
<xsl:with-param name="parentinfo" select="$parentinfo"/>
478
<xsl:with-param name="prefs" select="$prefs/Version"/>
483
<!-- * if we have a Name and/or Version, use either or both -->
484
<!-- * of those, in the form "Name Version" or just "Name" -->
485
<!-- * or just "Version" -->
486
<xsl:when test="$Name != '' or $Version != ''">
488
<xsl:when test="$Name != '' and $Version != ''">
489
<xsl:copy-of select="$Name"/>
490
<xsl:text> </xsl:text>
493
<xsl:copy-of select="$Name"/>
496
<xsl:copy-of select="$Version"/>
498
<!-- * if no Name and no Version, use fallback (if any) -->
499
<xsl:when test="$prefs/@fallback != ''">
500
<xsl:call-template name="evaluate.info.profile">
501
<xsl:with-param name="profile" select="$prefs/@fallback"/>
502
<xsl:with-param name="info" select="$info"/>
503
<xsl:with-param name="parentinfo" select="$parentinfo"/>
507
<!-- * found nothing, so leave <source> empty -->
512
<!-- ==================================================================== -->
514
<doc:template name="get.refentry.source.name" xmlns="">
515
<refpurpose>Gets source-name metadata for a refentry</refpurpose>
518
<para>A "source name" is one part of a (potentially) two-part
519
<replaceable>Name</replaceable> <replaceable>Version</replaceable>
520
source field. For more details, see the documentation for the
521
<function>get.refentry.source</function> template.</para>
529
<para>An info node (from a <tag>refentry</tag> element)</para>
533
<term>parentinfo</term>
535
<para>An info node (from a parent of a <tag>refentry</tag> element)</para>
541
<para>A node containing users preferences (from global
542
stylesheet parameters)</para>
548
<refreturn><para>Depending on what output method is used for the
549
current stylesheet, either returns a text node or possibly an element
550
node, containing "source name" data.</para></refreturn>
553
<xsl:template name="get.refentry.source.name">
554
<xsl:param name="info"/>
555
<xsl:param name="parentinfo"/>
556
<xsl:param name="prefs"/>
558
<!-- * if profiling is enabled for source.name, and the -->
559
<!-- * source.name profile is non-empty, use it -->
560
<xsl:when test="$prefs/@profileEnabled != '0' and
561
$prefs/@profile != ''">
562
<xsl:message>using source.name profile</xsl:message>
563
<xsl:call-template name="evaluate.info.profile">
564
<xsl:with-param name="profile" select="$prefs/@profile"/>
565
<xsl:with-param name="info" select="$info"/>
566
<xsl:with-param name="parentinfo" select="$parentinfo"/>
570
<!-- * either profiling for source.name is not enabled, or-->
571
<!-- * the source.name profile is empty; so we need to look -->
572
<!-- * for a name to use -->
574
<xsl:when test="refmeta/refmiscinfo[@class = 'source']">
576
select="refmeta/refmiscinfo[@class = 'source'][1]/node()"/>
578
<!-- * no <refmisc class="source"/> found, so we need to -->
579
<!-- * check *info and parentinfo -->
580
<xsl:when test="$info/productname">
581
<xsl:apply-templates select="$info/productname/node()"/>
583
<xsl:when test="$info/orgname">
584
<xsl:apply-templates select="$info/orgname/node()"/>
586
<xsl:when test="$info/corpname">
587
<xsl:apply-templates select="$info/corpname/node()"/>
589
<xsl:when test="$info/corpcredit">
590
<xsl:apply-templates select="$info/corpcredit/node()"/>
592
<xsl:when test="$info/corpauthor">
593
<xsl:apply-templates select="$info/corpauthor/node()"/>
595
<xsl:when test="$info/author/orgname">
596
<xsl:apply-templates select="$info/author/orgname/node()"/>
598
<xsl:when test="$info/author/publishername">
599
<xsl:apply-templates select="$info/author/publishername/node()"/>
601
<!-- * then check parentinfo -->
602
<xsl:when test="$parentinfo/productname">
603
<xsl:apply-templates select="$parentinfo/productname/node()"/>
605
<xsl:when test="$parentinfo/orgname">
606
<xsl:apply-templates select="$parentinfo/orgname/node()"/>
608
<xsl:when test="$parentinfo/corpname">
609
<xsl:apply-templates select="$parentinfo/corpname/node()"/>
611
<xsl:when test="$parentinfo/corpcredit">
612
<xsl:apply-templates select="$parentinfo/corpcredit/node()"/>
614
<xsl:when test="$parentinfo/corpauthor">
615
<xsl:apply-templates select="$parentinfo/corpauthor/node()"/>
617
<xsl:when test="$parentinfo/author/orgname">
618
<xsl:apply-templates select="$parentinfo/author/orgname/node()"/>
620
<xsl:when test="$parentinfo/author/publishername">
621
<xsl:apply-templates select="$parentinfo/author/publishername/node()"/>
624
<!-- * found nothing, so return nothing -->
631
<!-- ==================================================================== -->
633
<doc:template name="get.refentry.version" xmlns="">
634
<refpurpose>Gets version metadata for a refentry</refpurpose>
637
<para>A "version" is one part of a (potentially) two-part
638
<replaceable>Name</replaceable> <replaceable>Version</replaceable>
639
source field. For more details, see the documentation for the
640
<function>get.refentry.source</function> template.</para>
648
<para>An info node (from a <tag>refentry</tag> element)</para>
652
<term>parentinfo</term>
654
<para>An info node (from a parent of a <tag>refentry</tag> element)</para>
660
<para>A node containing users preferences (from global
661
stylesheet parameters)</para>
667
<refreturn><para>Depending on what output method is used for the
668
current stylesheet, either returns a text node or possibly an element
669
node, containing "version" data.</para></refreturn>
672
<xsl:template name="get.refentry.version">
673
<xsl:param name="info"/>
674
<xsl:param name="parentinfo"/>
675
<xsl:param name="prefs"/>
677
<!-- * if profiling is enabled for version, and the -->
678
<!-- * version profile is non-empty, use it -->
679
<xsl:when test="$prefs/@profileEnabled != '0' and
680
$prefs/@profile != ''">
681
<xsl:message>using version profile</xsl:message>
682
<xsl:call-template name="evaluate.info.profile">
683
<xsl:with-param name="profile" select="$prefs/@profile"/>
684
<xsl:with-param name="info" select="$info"/>
685
<xsl:with-param name="parentinfo" select="$parentinfo"/>
689
<!-- * either profiling for source.name is not enabled, or-->
690
<!-- * the source.name profile is empty; so we need to look -->
691
<!-- * for a name to use -->
693
<xsl:when test="refmeta/refmiscinfo[@class = 'version']">
695
select="refmeta/refmiscinfo[@class = 'version'][1]/node()"/>
697
<!-- * no <refmisc class="version"/> found, so we need to -->
698
<!-- * check *info and parentinfo -->
699
<xsl:when test="$info/productnumber">
700
<xsl:apply-templates select="$info/productnumber/node()"/>
702
<xsl:when test="$info/edition">
703
<xsl:apply-templates select="$info/edition/node()"/>
705
<xsl:when test="$info/releaseinfo">
706
<xsl:apply-templates select="$info/releaseinfo/node()"/>
708
<!-- * then check parentinfo -->
709
<xsl:when test="$parentinfo/productnumber">
710
<xsl:apply-templates select="$parentinfo/productnumber/node()"/>
712
<xsl:when test="$parentinfo/edition">
713
<xsl:apply-templates select="$parentinfo/edition/node()"/>
715
<xsl:when test="$parentinfo/releaseinfo">
716
<xsl:apply-templates select="$parentinfo/releaseinfo/node()"/>
719
<!-- *found nothing, so return nothing -->
726
<!-- ==================================================================== -->
728
<doc:template name="get.refentry.manual" xmlns="">
729
<refpurpose>Gets source metadata for a refentry</refpurpose>
732
<para>The <literal>man(7)</literal> man page describes this as "the
733
title of the manual (e.g., <citetitle>Linux Programmer's
734
Manual</citetitle>)". Here are some examples from existing man pages:
737
<para><citetitle>dpkg utilities</citetitle>
738
(<command>dpkg-name</command>)</para>
741
<para><citetitle>User Contributed Perl Documentation</citetitle>
742
(<command>GET</command>)</para>
745
<para><citetitle>GNU Development Tools</citetitle>
746
(<command>ld</command>)</para>
749
<para><citetitle>Emperor Norton Utilities</citetitle>
750
(<command>ddate</command>)</para>
753
<para><citetitle>Debian GNU/Linux manual</citetitle>
754
(<command>faked</command>)</para>
757
<para><citetitle>GIMP Manual Pages</citetitle>
758
(<command>gimp</command>)</para>
761
<para><citetitle>KDOC Documentation System</citetitle>
762
(<command>qt2kdoc</command>)</para>
773
<para>An info node (from a <tag>refentry</tag> element)</para>
777
<term>parentinfo</term>
779
<para>An info node (from a parent of a <tag>refentry</tag> element)</para>
785
<para>A node containing users preferences (from global
786
stylesheet parameters)</para>
792
<refreturn><para>Returns a <tag>manual</tag> node.</para></refreturn>
794
<xsl:template name="get.refentry.manual">
795
<xsl:param name="info"/>
796
<xsl:param name="parentinfo"/>
797
<xsl:param name="prefs"/>
798
<xsl:variable name="Manual">
800
<!-- * if profiling is enabled for manual, and the manual -->
801
<!-- * profile is non-empty, use it -->
802
<xsl:when test="$prefs/@profileEnabled != '0' and
803
$prefs/@profile != ''">
804
<xsl:message>using manual profile</xsl:message>
805
<xsl:call-template name="evaluate.info.profile">
806
<xsl:with-param name="profile" select="$prefs/@profile"/>
807
<xsl:with-param name="info" select="$info"/>
808
<xsl:with-param name="parentinfo" select="$parentinfo"/>
812
<!-- * either profiling for source.name is not enabled, or-->
813
<!-- * the source.name profile is empty; so we need to look -->
814
<!-- * for a name to use -->
816
<xsl:when test="refmeta/refmiscinfo[@class = 'manual']">
818
select="refmeta/refmiscinfo[@class = 'manual'][1]/node()"/>
820
<!-- * no <refmisc class="manual"/> found, so we need to -->
821
<!-- * check title in parentinfo and parent title -->
822
<xsl:when test="$parentinfo/title">
823
<xsl:apply-templates select="$parentinfo/title/node()"/>
825
<xsl:when test="../title">
826
<xsl:apply-templates select="../title/node()"/>
829
<!-- * found nothing, so return nothing -->
836
<xsl:when test="$Manual != ''">
837
<xsl:copy-of select="$Manual"/>
839
<!-- * if no Manual, use contents of specified -->
840
<!-- * Fallback (if any) -->
841
<xsl:when test="$prefs/@fallback != ''">
842
<xsl:call-template name="evaluate.info.profile">
843
<xsl:with-param name="profile" select="$prefs/@fallback"/>
844
<xsl:with-param name="info" select="$info"/>
845
<xsl:with-param name="parentinfo" select="$parentinfo"/>
849
<!-- * found nothing, so leave it empty -->
854
<!-- ====================================================================== -->
856
<doc:template name="get.refentry.metadata.prefs" xmlns="">
857
<refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
860
<para>The DocBook XSL stylesheets include several user-configurable
861
global stylesheet parameters for controlling <tag>refentry</tag>
862
metadata gathering. Those parameters are not read directly by the
863
other <tag>refentry</tag> metadata-gathering functions. Instead, they
864
are read only by the <function>get.refentry.metadata.prefs</function>
865
function, which assembles them into a structure that is then passed to
866
the other <tag>refentry</tag> metadata-gathering functions.</para>
868
<para>So the, <function>get.refentry.metadata.prefs</function>
869
function is the only interface to collecting stylesheet parameters for
870
controlling <tag>refentry</tag> metadata gathering.</para>
874
<para>There are no local parameters for this function; however, it
875
does rely on a number of global parameters.</para>
878
<refreturn><para>Returns a <tag>manual</tag> node.</para></refreturn>
881
<xsl:template name="get.refentry.metadata.prefs">
883
<xsl:attribute name="profile">
884
<xsl:value-of select="$refentry.date.profile"/>
886
<xsl:attribute name="profileEnabled">
887
<xsl:value-of select="$refentry.date.profile.enabled"/>
891
<xsl:attribute name="fallback">
892
<xsl:value-of select="$refentry.source.fallback.profile"/>
895
<xsl:attribute name="profile">
896
<xsl:value-of select="$refentry.source.name.profile"/>
898
<xsl:attribute name="profileEnabled">
899
<xsl:value-of select="$refentry.source.name.profile.enabled"/>
901
<xsl:attribute name="suppress">
902
<xsl:value-of select="$refentry.source.name.suppress"/>
906
<xsl:attribute name="profile">
907
<xsl:value-of select="$refentry.version.profile"/>
909
<xsl:attribute name="profileEnabled">
910
<xsl:value-of select="$refentry.version.profile.enabled"/>
912
<xsl:attribute name="suppress">
913
<xsl:value-of select="$refentry.version.suppress"/>
918
<xsl:attribute name="fallback">
919
<xsl:value-of select="$refentry.manual.fallback.profile"/>
921
<xsl:attribute name="profile">
922
<xsl:value-of select="$refentry.manual.profile"/>
924
<xsl:attribute name="profileEnabled">
925
<xsl:value-of select="$refentry.manual.profile.enabled"/>