mirror of
https://github.com/glfs-book/glfs.git
synced 2025-07-22 01:12:59 +00:00
Internal: Removed PDF and nochunks capability.
This is done for multiple reasons, and most of them stem from the fact that GLFS does things in a way that struggles to reconcile with the pdf and nochunks targets. For example, CSS and images is a massive sore spot. Since they don't get maintained anymore, dragging them behind the barn and putting them down. Apologies to those that use these targets.
This commit is contained in:
67
Makefile
67
Makefile
@ -54,16 +54,12 @@ endif
|
||||
|
||||
ifeq ($(REV), sysv)
|
||||
BASEDIR ?= $(HTML_ROOT)/glfs
|
||||
PDF_OUTPUT ?= glfs.pdf
|
||||
NOCHUNKS_OUTPUT ?= glfs.html
|
||||
DUMPDIR ?= $(DUMP_ROOT)/glfs-commands
|
||||
GLFSHTML ?= glfs-html.xml
|
||||
GLFSHTML2 ?= glfs-html2.xml
|
||||
GLFSFULL ?= glfs-full.xml
|
||||
else
|
||||
BASEDIR ?= $(HTML_ROOT)/glfs-systemd
|
||||
PDF_OUTPUT ?= glfs-sysd.pdf
|
||||
NOCHUNKS_OUTPUT ?= glfs-sysd.html
|
||||
DUMPDIR ?= $(DUMP_ROOT)/glfs-sysd-commands
|
||||
GLFSHTML ?= glfs-systemd-html.xml
|
||||
GLFSHTML2 ?= glfs-systemd-html2.xml
|
||||
@ -107,18 +103,9 @@ help:
|
||||
@echo ""
|
||||
@echo " html Builds the HTML pages of the book."
|
||||
@echo ""
|
||||
@echo " pdf Builds the book as a PDF file."
|
||||
@echo ""
|
||||
@echo " wget-list Produces a list of all packages to download."
|
||||
@echo " Output is BASEDIR/wget-list"
|
||||
@echo ""
|
||||
@echo " nochunks Builds the book as a one-pager. The output"
|
||||
@echo " is a large single HTML page containing the"
|
||||
@echo " whole book."
|
||||
@echo ""
|
||||
@echo " Parameter NOCHUNKS_OUTPUT=<filename> controls"
|
||||
@echo " the name of the HTML file."
|
||||
@echo ""
|
||||
@echo " validate Runs validation checks on the XML files."
|
||||
@echo ""
|
||||
@echo " test-links Runs validation checks on URLs in the book."
|
||||
@ -127,7 +114,7 @@ help:
|
||||
@echo " containing all valid URLs."
|
||||
@echo ""
|
||||
|
||||
all: glfs nochunks
|
||||
all: glfs
|
||||
world: all dump-commands test-links
|
||||
|
||||
html: $(BASEDIR)/index.html
|
||||
@ -172,53 +159,6 @@ $(BASEDIR)/index.html: $(RENDERTMP)/$(GLFSHTML) version wget-list
|
||||
|
||||
$(Q)rm -rf $(RENDERTMP)
|
||||
|
||||
pdf: validate wget-list
|
||||
@echo "Generating profiled XML for PDF..."
|
||||
$(Q)xsltproc --nonet \
|
||||
--stringparam profile.condition pdf \
|
||||
--output $(RENDERTMP)/glfs-pdf.xml \
|
||||
stylesheets/lfs-xsl/profile.xsl \
|
||||
$(RENDERTMP)/$(GLFSFULL)
|
||||
|
||||
@echo "Generating FO file..."
|
||||
$(Q)xsltproc --nonet \
|
||||
--stringparam rootid "$(ROOT_ID)" \
|
||||
--output $(RENDERTMP)/glfs-pdf.fo \
|
||||
stylesheets/glfs-pdf.xsl \
|
||||
$(RENDERTMP)/glfs-pdf.xml
|
||||
|
||||
$(Q)sed -i -e 's/span="inherit"/span="all"/' $(RENDERTMP)/glfs-pdf.fo
|
||||
$(Q)bash pdf-fixups.sh $(RENDERTMP)/glfs-pdf.fo
|
||||
|
||||
@echo "Generating PDF file..."
|
||||
$(Q)mkdir -p $(RENDERTMP)/images
|
||||
$(Q)cp -R images/* $(RENDERTMP)/images
|
||||
|
||||
$(Q)mkdir -p $(BASEDIR)
|
||||
|
||||
$(Q)fop -q $(RENDERTMP)/glfs-pdf.fo $(BASEDIR)/$(PDF_OUTPUT) 2>fop.log
|
||||
@echo "$(BASEDIR)/$(PDF_OUTPUT) created"
|
||||
@echo "fop.log created"
|
||||
$(Q)rm fop.log
|
||||
@echo "fop.log destroyed"
|
||||
$(Q)rm -rf $(RENDERTMP)
|
||||
|
||||
nochunks: $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(BASEDIR)/$(NOCHUNKS_OUTPUT): $(RENDERTMP)/$(GLFSHTML) version
|
||||
@echo "Generating non-chunked XHTML file..."
|
||||
$(Q)xsltproc --nonet \
|
||||
--stringparam rootid "$(ROOT_ID)" \
|
||||
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
|
||||
stylesheets/glfs-nochunks.xsl \
|
||||
$(RENDERTMP)/$(GLFSHTML)
|
||||
|
||||
@echo "Running Tidy and obfuscate.sh on non-chunked XHTML..."
|
||||
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
|
||||
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
$(Q)sed -i -e "1,20s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
@echo "Removing $(RENDERTMP)..."
|
||||
$(Q)rm -rf $(RENDERTMP)
|
||||
|
||||
validate: $(RENDERTMP)/$(GLFSFULL)
|
||||
$(RENDERTMP)/$(GLFSFULL): general.ent packages.ent $(ALLXML) $(ALLXSL) version
|
||||
$(Q)[ -d $(RENDERTMP) ] || mkdir -p $(RENDERTMP)
|
||||
@ -320,9 +260,8 @@ $(DUMPDIR): $(RENDERTMP)/$(GLFSFULL) version
|
||||
$(Q)touch $(DUMPDIR)
|
||||
$(Q)rm -rf $(RENDERTMP)
|
||||
|
||||
.PHONY: glfs all world html nochunks pdf clean validate profile-html \
|
||||
wget-list test-links dump-commands bootscripts systemd-units version \
|
||||
test-options
|
||||
.PHONY: glfs all world html clean validate profile-html wget-list test-links \
|
||||
dump-commands bootscripts systemd-units version test-options
|
||||
|
||||
version:
|
||||
$(Q)REV=$(REV) STAB=$(STAB) ./git-version.sh
|
||||
|
@ -57,11 +57,3 @@ that are in that path.
|
||||
Defaults can be changed in a file that isn't tracked (`local.mk`) by declaring
|
||||
variables found in `Makefile` in `local.mk`, such as `REV` and `GLFS_THEME`.
|
||||
This file must be created manually.
|
||||
|
||||
Makefile targets are: `pdf`, `nochunks`, and `validate`.
|
||||
|
||||
`pdf`: builds GLFS as a PDF file.
|
||||
|
||||
`nochunks`: builds GLFS in one huge file.
|
||||
|
||||
`validate`: does an extensive check for XML errors in the book.
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -lt 1 ] ; then
|
||||
echo "This script needs the location of the fo file to update"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
FILE=$1
|
||||
|
||||
LINE=$( grep -n "DO NOT EDIT" $FILE | cut -f1 -d: )
|
||||
LINE=$(( LINE - 1 ))
|
||||
|
||||
# Not needed
|
||||
#sed -i -e "$LINE s/monospace/&\" font-size=\"9pt/" $FILE
|
||||
sed -i -e "s/monospace/&\" font-size=\"9pt/g" $FILE
|
||||
|
||||
# Break a block of code at the right place
|
||||
sed -i -e 's@gcc --version@<fo:block page-break-before="always"></fo:block>&@' $FILE
|
@ -1,20 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
version="1.0">
|
||||
|
||||
<!-- LFS top-level no-chunk templates. -->
|
||||
<xsl:import href="lfs-xsl/nochunks.xsl"/>
|
||||
|
||||
<!-- The LFS book type to be processed (lfs, blfs, clfs, or hlfs) -->
|
||||
<xsl:param name="book-type">blfs</xsl:param>
|
||||
|
||||
<!-- Are sections enumerated? 1 = yes, 0 = no
|
||||
Note: Activating this will increase a lot rendering time. -->
|
||||
<xsl:param name="section.autolabel" select="0"/>
|
||||
|
||||
<!-- Do section labels include the component label? 1 = yes, 0 = no -->
|
||||
<xsl:param name="section.label.includes.component.label" select="0"/>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,20 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- LFS top-level pdf templates. -->
|
||||
<xsl:import href="lfs-xsl/pdf.xsl"/>
|
||||
|
||||
<!-- The LFS book type to be processed (lfs, blfs, clfs, or hlfs) -->
|
||||
<xsl:param name="book-type">blfs</xsl:param>
|
||||
|
||||
<!-- Are sections enumerated? 1 = yes, 0 = no
|
||||
Note: Activating this will increase a lot rendering time. -->
|
||||
<xsl:param name="section.autolabel" select="0"/>
|
||||
|
||||
<!-- Do section labels include the component label? 1 = yes, 0 = no -->
|
||||
<xsl:param name="section.label.includes.component.label" select="0"/>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,635 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
version="1.0">
|
||||
|
||||
<!-- Stylesheet for non-chunked XHTML output
|
||||
Replaces {docbook-xsl}/xhtml/profile-docbook.xsl -->
|
||||
|
||||
<!-- Upstream XHTML templates -->
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
|
||||
|
||||
<!-- Including our others customized templates -->
|
||||
<xsl:include href="common.xsl"/>
|
||||
<xsl:include href="xhtml/lfs-index.xsl"/>
|
||||
<xsl:include href="xhtml/lfs-mixed.xsl"/>
|
||||
<xsl:include href="xhtml/lfs-sections.xsl"/>
|
||||
<xsl:include href="xhtml/lfs-toc.xsl"/>
|
||||
<xsl:include href="xhtml/lfs-xref.xsl"/>
|
||||
|
||||
<!-- Control generation of ToCs and LoTs -->
|
||||
<xsl:param name="generate.toc">
|
||||
book toc,title
|
||||
preface nop
|
||||
part nop
|
||||
chapter nop
|
||||
appendix nop
|
||||
sect1 nop
|
||||
sect2 nop
|
||||
sect3 nop
|
||||
sect4 nop
|
||||
sect5 nop
|
||||
section nop
|
||||
</xsl:param>
|
||||
|
||||
<!-- How deep should recursive sections appear in the TOC? -->
|
||||
<xsl:param name="toc.section.depth">1</xsl:param>
|
||||
|
||||
<!-- How maximaly deep should be each TOC? -->
|
||||
<xsl:param name="toc.max.depth">3</xsl:param>
|
||||
|
||||
<!-- Dropping some unwanted style attributes -->
|
||||
<xsl:param name="ulink.target" select="''"></xsl:param>
|
||||
<xsl:param name="css.decoration" select="0"></xsl:param>
|
||||
|
||||
<!-- Don't use graphics in admonitions -->
|
||||
<xsl:param name="admon.graphics" select="0"/>
|
||||
|
||||
<!-- Changing the admonitions output tagging:
|
||||
Removed $admon.style support
|
||||
Hardcoded $admon.textlabel feature -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/admon.xsl -->
|
||||
<xsl:template name="nongraphical.admonition">
|
||||
<div class="admon {name(.)}">
|
||||
<h3>
|
||||
<xsl:apply-templates select="." mode="object.title.markup"/>
|
||||
</h3>
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!-- sect2.titlepage:
|
||||
Removed a lot of unneeded code.
|
||||
Skip empty titles.
|
||||
No label in preface (actually, skip the hardcoded dot). -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/titlepage.templates.xsl -->
|
||||
<xsl:template name="sect2.titlepage">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(title) = 0"/>
|
||||
<xsl:otherwise>
|
||||
<h3 class="{name(.)}">
|
||||
<xsl:if test="@id">
|
||||
<a id="{@id}" name="{@id}"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(ancestor::preface) and $section.autolabel != 0">
|
||||
<xsl:apply-templates select="." mode="label.markup"/>
|
||||
<xsl:text>. </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="title"/>
|
||||
</h3>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- The CSS Stylesheet:
|
||||
Note: there is some diferences with lfs.css code releated
|
||||
to h* values, admonitions and no navigational code. -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/docbook.xsl -->
|
||||
<xsl:template name='user.head.content'>
|
||||
<style type="text/css">
|
||||
<xsl:text>
|
||||
/* Global settings */
|
||||
body {
|
||||
font-family: verdana, tahoma, helvetica, arial, sans-serif;
|
||||
text-align: left;
|
||||
background: #fff;
|
||||
color: #222;
|
||||
margin: 1em;
|
||||
padding: 0;
|
||||
font-size: 1em;
|
||||
line-height: 1.2em
|
||||
}
|
||||
|
||||
|
||||
/* Links */
|
||||
a:link { color: #22b; }
|
||||
a.ulink:link { font-weight: bold; color: #55f; }
|
||||
a:visited { color: #7e4988 ! important; }
|
||||
a:hover, a:focus { color: #d30e08 ! important; }
|
||||
a:active { color: #6b77b1 ! important;}
|
||||
|
||||
|
||||
/* Book titlepage */
|
||||
.book {
|
||||
margin: 0px auto;
|
||||
padding: 0 1em;
|
||||
}
|
||||
|
||||
/*.book h1,*/ .book .authorgroup, .book .copyright, .book .legalnotice .revhistory {
|
||||
background: #f5f6f7;
|
||||
margin: 0px auto;
|
||||
padding: .1em 1em;
|
||||
}
|
||||
|
||||
.book hr {
|
||||
background: #dbddec;
|
||||
height: .3em;
|
||||
border: 0px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.dedication {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Sections */
|
||||
div.sect1, div.appendix {
|
||||
padding-left: .3em;
|
||||
}
|
||||
|
||||
.package, .kernel, .installation, .commands, .testing, .configuration, .content {
|
||||
padding: 0 .5em .2em 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.lfs .package {
|
||||
background: #f5f6f7;
|
||||
border-bottom: 0.2em solid #dbddec;
|
||||
padding-top: .1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.lfs .configuration {
|
||||
background: #fefefe;
|
||||
border-top: 0.2em solid #dbddec;
|
||||
}
|
||||
|
||||
.lfs .content {
|
||||
background: #f5f6f7;
|
||||
border-top: 0.2em solid #dbddec;
|
||||
border-bottom: 0.2em solid #dbddec;
|
||||
padding-bottom: .1em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Headers */
|
||||
h1, h2, h3, h4, h5, h6, b, .strong {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 173%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.book h1 {
|
||||
margin: 0;
|
||||
padding: 0.4em;
|
||||
background: #f5f6f7;
|
||||
border-top: .2em solid #dbddec;
|
||||
border-bottom: .2em solid #dbddec;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1.title sup {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 144%;
|
||||
}
|
||||
|
||||
.preface h2, .part h1, .chapter h2, .appendix h2, .index h1, .sect1 h2, .part h2 {
|
||||
background: #f5f6f7;
|
||||
border-top: .2em solid #dbddec;
|
||||
border-bottom: .2em solid #dbddec;
|
||||
margin-bottom: 1em;
|
||||
margin-top: 1em;
|
||||
padding: .4em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sect1 h2, .appendix h2 {
|
||||
margin-left: -.2em;
|
||||
}
|
||||
|
||||
.wrap h2 {
|
||||
background: #f5f6f7;
|
||||
border-bottom: 0;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0;
|
||||
padding-top: .4em;
|
||||
}
|
||||
|
||||
.book h2.subtitle {
|
||||
text-align: center;
|
||||
background: #dbddec;
|
||||
margin: 0;
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.appendix h3 {
|
||||
font-size: 133%;
|
||||
margin-top: .8em;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.package h4, h5, h6 {
|
||||
font-size: 100%;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
/* TOC */
|
||||
div.toc ul, div.index ul, div.navheader ul, div.navfooter ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.toc {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
li.preface, .part li.appendix {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
div.toc h3 {
|
||||
margin: 1em 0 .3em 0;
|
||||
}
|
||||
|
||||
li.appendix h3, li.glossary h3, li.index h3 {
|
||||
margin: .5em
|
||||
}
|
||||
|
||||
div.toc h4 {
|
||||
margin: .6em 0 .2em 0;
|
||||
}
|
||||
|
||||
li.chapter h4 a {
|
||||
display: block;
|
||||
margin-bottom: .4em
|
||||
}
|
||||
|
||||
.dummy {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-size: 110%;
|
||||
margin: .6em 0 .2em 0;
|
||||
}
|
||||
|
||||
|
||||
/* Index */
|
||||
.item {
|
||||
float: left;
|
||||
margin-right: 1em
|
||||
}
|
||||
|
||||
.secitem {
|
||||
font-weight: normal;
|
||||
float: left;
|
||||
margin-right: 1em
|
||||
}
|
||||
|
||||
.indexref {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.item + .indexref {
|
||||
margin-left: 20em;
|
||||
}
|
||||
|
||||
.secitem + .indexref {
|
||||
margin-left: 19em;
|
||||
}
|
||||
|
||||
|
||||
/* Admonitions */
|
||||
div.admon h3 {
|
||||
padding-left: 2.5em;
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
div.admon p {
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
div.admon pre {
|
||||
margin: 0.5em 3em;
|
||||
}
|
||||
|
||||
div.note, div.tip {
|
||||
background-color: #fffff6;
|
||||
border: 2px solid #dbddec;
|
||||
width: 90%;
|
||||
margin: .5em auto;
|
||||
}
|
||||
|
||||
div.important, div.warning, div.caution {
|
||||
background-color: #fffff6;
|
||||
border: medium solid #400;
|
||||
width: 90%;
|
||||
margin: .5em auto;
|
||||
color: #600;
|
||||
}
|
||||
|
||||
div.important h3, div.warning h3, div.caution h3 {
|
||||
color: #900;
|
||||
}
|
||||
|
||||
div.important em, div.warning em, div.caution em {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* table */
|
||||
.table p.title {
|
||||
text-align: center;
|
||||
margin-top: 0;
|
||||
margin-bottom: .3em;
|
||||
}
|
||||
|
||||
.table table {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.table table th, .table table td {
|
||||
padding: 0.2em 2em 0.2em 2em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.revhistory {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.revhistory th {
|
||||
line-height: 2em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.revhistory td {
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* variablelist as table */
|
||||
.variablelist table {
|
||||
width: auto;
|
||||
margin: 0 1em 0 1em;
|
||||
}
|
||||
|
||||
.variablelist td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.variablelist td span, td p {
|
||||
margin: 0.25em;
|
||||
}
|
||||
|
||||
.variablelist td p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
/* variablelist as list */
|
||||
dl {
|
||||
padding-left: 1em
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: .6em;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
dd p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
div.materials dt {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
div.materials dd {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
|
||||
/* segmentedlist */
|
||||
.appendix .segmentedlist {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.package .seg {
|
||||
margin-bottom: 0em;
|
||||
margin-top: 0em;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.content .seg {
|
||||
margin-bottom: .4em;
|
||||
margin-top: .4em;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.segtitle {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.package .segbody, .appendix .segbody {
|
||||
display: block;
|
||||
padding-left: 14em;
|
||||
}
|
||||
|
||||
.content .segbody {
|
||||
display: block;
|
||||
padding-left: 12em;
|
||||
}
|
||||
|
||||
|
||||
/* itemizedlist */
|
||||
ul {
|
||||
padding-left: 1em
|
||||
}
|
||||
|
||||
.itemizedlist ul {
|
||||
margin-left: 1em
|
||||
}
|
||||
|
||||
.itemizedlist li ul {
|
||||
margin-bottom: 1.2em;
|
||||
}
|
||||
|
||||
.itemizedlist li ul li p {
|
||||
margin-top: .5em;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
.itemizedlist li ul li:first-child p:first-child {
|
||||
margin-top: -.6em;
|
||||
}
|
||||
|
||||
ul.compact {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.blfs ul.compact {
|
||||
list-style: disc;
|
||||
}
|
||||
|
||||
ul.compact li {
|
||||
margin: 0em;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
ul.compact li p {
|
||||
padding: 0.3em;
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
.blfs ul.compact li p {
|
||||
background-color: #f0fff0;
|
||||
}
|
||||
|
||||
/* orderedlist */
|
||||
ol {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
ol ol {
|
||||
list-style: lower-alpha;
|
||||
}
|
||||
|
||||
ol ol ol {
|
||||
list-style: lower-roman;
|
||||
}
|
||||
|
||||
ol.compact li {
|
||||
margin: 0em;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
ol.compact li p {
|
||||
padding: 0.3em;
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
|
||||
/* Indented blocks */
|
||||
p, blockquote {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Monospaced elements */
|
||||
tt, code, kbd, pre, .command {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.systemitem {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #e5e5e5;
|
||||
border: 1px solid #050505;
|
||||
padding: .5em 1em;
|
||||
margin: 0 2em .5em 2em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.userinput {
|
||||
color: #101310;
|
||||
}
|
||||
|
||||
pre.root {
|
||||
color: #101310;
|
||||
border: 1px solid #11a;
|
||||
}
|
||||
|
||||
pre.screen {
|
||||
color: #000;
|
||||
background-color: #e9e9e9;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.literal, .prompt {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
/* Mixed tags */
|
||||
p.usernotes {
|
||||
margin-left: -1em;
|
||||
font-size: small;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.underlined {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
/* Last edited info */
|
||||
p.updated {
|
||||
font-size: small;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
/* Special colored blocks */
|
||||
/* OrangeRed4 */
|
||||
.feature-ssp {
|
||||
color: #8B2500;
|
||||
}
|
||||
|
||||
/* RoyalBlue3 */
|
||||
.feature-aslr {
|
||||
color: #3A5FCD;
|
||||
}
|
||||
|
||||
/* NavyBlue */
|
||||
.feature-pax {
|
||||
color: #000080;
|
||||
}
|
||||
|
||||
/* VioletRed */
|
||||
.feature-hardened_tmp {
|
||||
color: #d02090;
|
||||
}
|
||||
|
||||
/* PaleTurquoise4 */
|
||||
.feature-warnings {
|
||||
color: #668b8b;
|
||||
}
|
||||
|
||||
/* RosyBrown */
|
||||
.feature-misc {
|
||||
color: #bc8f8f;
|
||||
}
|
||||
|
||||
/* Sienna*/
|
||||
.feature-blowfish {
|
||||
color: #8E6B23
|
||||
}
|
||||
</xsl:text>
|
||||
</style>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,104 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- Stylesheet for FO output used to generate PDF
|
||||
Sets global params and include customization stylesheets. -->
|
||||
|
||||
<!-- Upstream FO templates. Profiled version is not supported by
|
||||
xsltproc, thus pofiling must be done in two steps (see Makefile) -->
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
|
||||
|
||||
<!-- Uncomment the next for debugging the raw FO code.
|
||||
Note that FOP will complaints about a lot of paragraph overflows
|
||||
due that verbatim output is also indented.
|
||||
Remember to comment the "rm $(BASEDIR)/lfs-pdf.fo" in
|
||||
the Makefile. -->
|
||||
<!--<xsl:output encoding="UTF-8" indent="yes" />-->
|
||||
|
||||
<!-- Including our others customized templates. -->
|
||||
<xsl:include href="common.xsl"/>
|
||||
<xsl:include href="pdf/lfs-admon.xsl"/>
|
||||
<xsl:include href="pdf/lfs-index.xsl"/>
|
||||
<xsl:include href="pdf/lfs-lists.xsl"/>
|
||||
<xsl:include href="pdf/lfs-mixed.xsl"/>
|
||||
<xsl:include href="pdf/lfs-pagesetup.xsl"/>
|
||||
<xsl:include href="pdf/lfs-xref.xsl"/>
|
||||
|
||||
<!-- Activating FOP-1 extensions. We use FOP-0.93 as the FO procesor. -->
|
||||
<xsl:param name="fop1.extensions" select="1"/>
|
||||
|
||||
<!-- Desactivate draft mode at all. -->
|
||||
<xsl:param name="draft.mode" select="'no'"/>
|
||||
|
||||
<!-- Paper size -->
|
||||
<xsl:param name="paper.type" select="'USletter'"/>
|
||||
|
||||
<!-- Paper size required by the publisher
|
||||
<xsl:param name="paper.type" select="'Customized'"/>
|
||||
<xsl:param name="page.width">7.25in</xsl:param>
|
||||
<xsl:param name="page.height">9.25in</xsl:param>
|
||||
-->
|
||||
|
||||
<!-- Is the document to be printed double sided? 1 = yes, 0 = no -->
|
||||
<!-- Change "double.sided" to "1" for published versions. -->
|
||||
<xsl:param name="double.sided" select="0"/>
|
||||
|
||||
<!-- Hyphenate? -->
|
||||
<xsl:param name="hyphenate">false</xsl:param>
|
||||
|
||||
<!-- Allow URLs to be automatically hyphenated.
|
||||
We have expanded the support to several inline tags.
|
||||
See pdf/lfs-mixed.xsl. The character in the
|
||||
select attribute is a zero width space -->
|
||||
<xsl:param name="ulink.hyphenate" select="'​'"/>
|
||||
|
||||
<!-- List of characters to allow ulink URLs, and supported inline tags,
|
||||
to be automatically hyphenated on.
|
||||
Note: the / character is in the list but FOP-0.93 ignores it. -->
|
||||
<xsl:param name="ulink.hyphenate.chars" select="'/._-'"/>
|
||||
|
||||
<!-- Specify the default text alignment. -->
|
||||
<xsl:param name="alignment">justify</xsl:param>
|
||||
|
||||
<!-- Specifies the default point size for body text.
|
||||
Used for titles size calculation. -->
|
||||
<xsl:param name="body.font.master">9</xsl:param>
|
||||
|
||||
<!-- Specifies the default font size for body text. -->
|
||||
<xsl:param name="body.font.size">12pt</xsl:param>
|
||||
|
||||
<!-- Control generation of ToCs and LoTs -->
|
||||
<xsl:param name="generate.toc">
|
||||
book toc,title
|
||||
part nop
|
||||
</xsl:param>
|
||||
|
||||
<!-- How deep should recursive sections appear in the TOC? -->
|
||||
<xsl:param name="toc.section.depth">1</xsl:param>
|
||||
|
||||
<!-- Amount of indentation for TOC entries. -->
|
||||
<xsl:param name="toc.indent.width" select="18"/>
|
||||
|
||||
<!-- Turns page numbers in xrefs on and off. -->
|
||||
<xsl:param name="insert.xref.page.number">no</xsl:param>
|
||||
|
||||
<!-- Display URLs after ulinks? 1 = yes, 0 = no
|
||||
Set to 0 to prevent duplicate e-mails in the Acknowledgments pages. -->
|
||||
<xsl:param name="ulink.show" select="0"/>
|
||||
|
||||
<!-- Processing instruction for hard page breaks.
|
||||
FOP-0.93 supports now @keep-*.*, @orphans, and @widows attributes,
|
||||
that solves several page break issues.
|
||||
It also supports the soft page break procesing instruction included
|
||||
in the DocBook stylesheets.
|
||||
But some times we may need hard page breaks for final book versions. -->
|
||||
<!-- To know how to use all that page break features, see
|
||||
http://www.sagehill.net/docbookxsl/PageBreaking.html -->
|
||||
<xsl:template match="processing-instruction('hard-pagebreak')">
|
||||
<fo:block break-before='page'/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,76 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet controls how admonitions are displayed -->
|
||||
|
||||
<!-- Use graphics in admonitions? 1 = yes, 0 = no -->
|
||||
<xsl:param name="admon.graphics" select="1"/>
|
||||
|
||||
<!-- Path to admonition graphics relative to index.xml -->
|
||||
<xsl:param name="admon.graphics.path" select="'images/'"/>
|
||||
|
||||
<!-- Global admonitions properties -->
|
||||
<xsl:attribute-set name="graphical.admonition.properties">
|
||||
<xsl:attribute name="keep-together.within-column">
|
||||
<xsl:variable name="keep.together">
|
||||
<xsl:call-template name="pi.dbfo_keep-together"/>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$keep.together != ''">
|
||||
<xsl:value-of select="$keep.together"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>always</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="padding-start">5pt</xsl:attribute>
|
||||
<xsl:attribute name="padding-top">5pt</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">5pt</xsl:attribute>
|
||||
<xsl:attribute name="border-style">solid</xsl:attribute>
|
||||
<xsl:attribute name="border-width">0.5pt</xsl:attribute>
|
||||
<xsl:attribute name="background-color">#FFFFE6</xsl:attribute>
|
||||
<xsl:attribute name="border-color">
|
||||
<xsl:choose>
|
||||
<xsl:when test="self::note | self::tip">#E0E0E0</xsl:when>
|
||||
<xsl:otherwise>#DCC</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Properties for admonitions titles -->
|
||||
<xsl:attribute-set name="admonition.title.properties">
|
||||
<xsl:attribute name="font-size">14pt</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="hyphenate">false</xsl:attribute>
|
||||
<xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
|
||||
<xsl:attribute name="color">
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor-or-self::important | ancestor-or-self::warning
|
||||
| ancestor-or-self::caution">#500</xsl:when>
|
||||
<xsl:otherwise>#000</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Properties for admonitions text -->
|
||||
<xsl:attribute-set name="admonition.properties">
|
||||
<xsl:attribute name="margin-right">5pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- admon.graphic.width:
|
||||
Making the graphic smaller. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/admon.xsl -->
|
||||
<xsl:template match="*" mode="admon.graphic.width">
|
||||
<xsl:param name="node" select="."/>
|
||||
<xsl:text>24pt</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,135 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY lowercase "'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ'">
|
||||
<!ENTITY uppercase "'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'">
|
||||
<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))'>
|
||||
<!ENTITY scope "count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))">
|
||||
]>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet controls how the Index is generated.
|
||||
Entities comes from {docbook-xsl}/common/entities.ent -->
|
||||
|
||||
<!-- Override for punctuation separating an index term from its list
|
||||
of page references. -->
|
||||
<xsl:param name="index.term.separator" select="': '"></xsl:param>
|
||||
|
||||
<!-- Divisions title properties. -->
|
||||
<xsl:attribute-set name="index.div.title.properties">
|
||||
<xsl:attribute name="margin-left">0pt</xsl:attribute>
|
||||
<xsl:attribute name="font-size">14.4pt</xsl:attribute>
|
||||
<xsl:attribute name="font-family">
|
||||
<xsl:value-of select="$title.fontset"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
|
||||
<xsl:attribute name="space-before.optimum">1em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0.3em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.7em</xsl:attribute>
|
||||
<xsl:attribute name="start-indent">0pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Properties applied to the block containing entries in an Index. -->
|
||||
<xsl:attribute-set name="index.entry.properties">
|
||||
<xsl:attribute name="start-indent">0.5pc</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Divisions:
|
||||
Translate alphabetical divisions titles to by-type titles. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/autoidx.xsl -->
|
||||
<xsl:template match="indexterm" mode="index-div-basic">
|
||||
<xsl:param name="scope" select="."/>
|
||||
<xsl:param name="role" select="''"/>
|
||||
<xsl:param name="type" select="''"/>
|
||||
<xsl:variable name="key"
|
||||
select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
|
||||
<xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/>
|
||||
<xsl:if test="key('letter', $key)[&scope;]
|
||||
[count(.|key('primary', &primary;)[&scope;][1]) = 1]">
|
||||
<fo:block>
|
||||
<xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
|
||||
<xsl:call-template name="indexdiv.title">
|
||||
<xsl:with-param name="titlecontent">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$divtitle = 'A'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Packages</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'B'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Programs</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'C'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Libraries</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'D'">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$book-type = 'blfs'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Kernel Configuration</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Scripts</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'E'">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$book-type = 'blfs'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Configuration Files</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Others</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'F'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Bootscripts</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$divtitle = 'G'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key">Others</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$divtitle"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<fo:block xsl:use-attribute-sets="index.entry.properties">
|
||||
<xsl:apply-templates select="key('letter', $key)[&scope;]
|
||||
[count(.|key('primary', &primary;)[&scope;][1])=1]"
|
||||
mode="index-primary">
|
||||
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
||||
<xsl:with-param name="scope" select="$scope"/>
|
||||
<xsl:with-param name="role" select="$role"/>
|
||||
<xsl:with-param name="type" select="$type"/>
|
||||
</xsl:apply-templates>
|
||||
</fo:block>
|
||||
</fo:block>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,169 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet controls how list are generated. -->
|
||||
|
||||
<!-- What spacing do you want before and after lists? -->
|
||||
<xsl:attribute-set name="list.block.spacing">
|
||||
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- What spacing do you want between list items? -->
|
||||
<xsl:attribute-set name="list.item.spacing">
|
||||
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Properties that apply to each list-block generated by itemizedlist. -->
|
||||
<xsl:attribute-set name="itemizedlist.properties"
|
||||
use-attribute-sets="list.block.properties">
|
||||
<xsl:attribute name="text-align">left</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Format variablelists lists as blocks? 1 = yes, 0 = no
|
||||
Default variablelist format. We override it when necessary
|
||||
using the list-presentation processing instruction. -->
|
||||
<xsl:param name="variablelist.as.blocks" select="1"/>
|
||||
|
||||
<!-- Specifies the longest term in variablelists.
|
||||
Used when list-presentation = list -->
|
||||
<xsl:param name="variablelist.max.termlength">35</xsl:param>
|
||||
|
||||
<!-- varlistentry mode block:
|
||||
Addibg a bullet, left alignament, and @kepp-*.* attributes
|
||||
for packages and paches list. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/list.xsl -->
|
||||
<xsl:template match="varlistentry" mode="vl.as.blocks">
|
||||
<xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::variablelist/@role = 'materials'">
|
||||
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"
|
||||
keep-together.within-column="always" font-weight="bold"
|
||||
keep-with-next.within-column="always" text-align="left">
|
||||
<xsl:text>• </xsl:text>
|
||||
<xsl:apply-templates select="term"/>
|
||||
</fo:block>
|
||||
<fo:block text-align="left"
|
||||
keep-together.within-column="always"
|
||||
keep-with-previous.within-column="always">
|
||||
<xsl:apply-templates select="listitem"/>
|
||||
</fo:block>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"
|
||||
keep-together.within-column="always"
|
||||
keep-with-next.within-column="always" margin-left="1em">
|
||||
<xsl:apply-templates select="term"/>
|
||||
</fo:block>
|
||||
<fo:block margin-left="2em">
|
||||
<xsl:apply-templates select="listitem"/>
|
||||
</fo:block>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- segmentedlist:
|
||||
Making it an actual FO list to can indent items.
|
||||
Adjust vertical space. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/list.xsl -->
|
||||
<xsl:template match="segmentedlist">
|
||||
<xsl:variable name="id">
|
||||
<xsl:call-template name="object.id"/>
|
||||
</xsl:variable>
|
||||
<fo:list-block id="{$id}" provisional-distance-between-starts="12em"
|
||||
provisional-label-separation="1em"
|
||||
keep-together.within-column="always">
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::appendix[@id='appendixc']">
|
||||
<xsl:attribute name="space-before.optimum">0.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0.2em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.6em</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:apply-templates select="seglistitem/seg"/>
|
||||
</fo:list-block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- seg:
|
||||
Self-made template based on the original seg template
|
||||
found in {docbook-xsl}/fo/list.xsl
|
||||
Making segmentedlist an actual FO list to can indent items. -->
|
||||
<xsl:template match="seglistitem/seg">
|
||||
<xsl:variable name="id">
|
||||
<xsl:call-template name="object.id"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
|
||||
<xsl:variable name="seglist" select="ancestor::segmentedlist"/>
|
||||
<xsl:variable name="segtitles" select="$seglist/segtitle"/>
|
||||
<fo:list-item xsl:use-attribute-sets="compact.list.item.spacing">
|
||||
<fo:list-item-label end-indent="label-end()" text-align="start">
|
||||
<fo:block>
|
||||
<fo:inline font-weight="bold">
|
||||
<xsl:apply-templates select="$segtitles[$segnum=position()]"
|
||||
mode="segtitle-in-seg"/>
|
||||
<xsl:text>:</xsl:text>
|
||||
</fo:inline>
|
||||
</fo:block>
|
||||
</fo:list-item-label>
|
||||
<fo:list-item-body start-indent="body-start()">
|
||||
<fo:block id="{$id}">
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</fo:list-item-body>
|
||||
</fo:list-item>
|
||||
</xsl:template>
|
||||
|
||||
<!-- simplelist:
|
||||
Self-made template. Wrap it into a fo:block and process member childs.
|
||||
If @type is specified, the original templates will be used.
|
||||
NOTE: when using type='horiz' or type='vert', FOP-0.93 will complaints
|
||||
about not supported table-layout="auto" -->
|
||||
<xsl:template match="simplelist">
|
||||
<fo:block xsl:use-attribute-sets="simplelist.properties">
|
||||
<xsl:apply-templates mode="condensed"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- member:
|
||||
Self-made template to wrap it into a fo:block using customized
|
||||
properties. -->
|
||||
<xsl:template match="member" mode="condensed">
|
||||
<fo:block xsl:use-attribute-sets="simplelist.properties">
|
||||
<xsl:call-template name="simple.xlink">
|
||||
<xsl:with-param name="content">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Properties associated with our simplelist format. -->
|
||||
<xsl:attribute-set name="simplelist.properties">
|
||||
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute>
|
||||
<xsl:attribute name="space-before.optimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.2em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,355 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet contains misc params, attribute sets and templates
|
||||
for output formating.
|
||||
This file is for that templates that don't fit in other files. -->
|
||||
|
||||
<!-- What space do you want between normal paragraphs. -->
|
||||
<xsl:attribute-set name="normal.para.spacing">
|
||||
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="orphans">3</xsl:attribute>
|
||||
<xsl:attribute name="widows">3</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Properties associated with verbatim text. -->
|
||||
<xsl:attribute-set name="verbatim.properties">
|
||||
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute>
|
||||
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
|
||||
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
|
||||
<xsl:attribute name="hyphenate">false</xsl:attribute>
|
||||
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
|
||||
<xsl:attribute name="white-space-collapse">false</xsl:attribute>
|
||||
<xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
|
||||
<xsl:attribute name="linefeed-treatment">preserve</xsl:attribute>
|
||||
<xsl:attribute name="text-align">start</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Should verbatim environments be shaded? 1 =yes, 0 = no -->
|
||||
<xsl:param name="shade.verbatim" select="1"/>
|
||||
|
||||
<!-- Properties that specify the style of shaded verbatim listings -->
|
||||
<xsl:attribute-set name="shade.verbatim.style">
|
||||
<xsl:attribute name="background-color">#E9E9E9</xsl:attribute>
|
||||
<xsl:attribute name="border-style">solid</xsl:attribute>
|
||||
<xsl:attribute name="border-width">0.5pt</xsl:attribute>
|
||||
<xsl:attribute name="border-color">#888</xsl:attribute>
|
||||
<xsl:attribute name="padding-start">5pt</xsl:attribute>
|
||||
<xsl:attribute name="padding-top">2pt</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">2pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- para:
|
||||
Skip empty "Home page" in packages.xml.
|
||||
Allow forced line breaks inside paragraphs emulating literallayout.
|
||||
Removed vertical space in variablelist. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/block.xsl -->
|
||||
<xsl:template match="para">
|
||||
<xsl:choose>
|
||||
<xsl:when test="child::ulink[@url=' ']"/>
|
||||
<xsl:when test="./@remap='verbatim'">
|
||||
<fo:block xsl:use-attribute-sets="verbatim.properties">
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:when>
|
||||
<xsl:when test="ancestor::variablelist">
|
||||
<fo:block>
|
||||
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.2em</xsl:attribute>
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<fo:block xsl:use-attribute-sets="normal.para.spacing">
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- screen, literallayout:
|
||||
Self-made template that creates a fo:block wrapper with keep-together
|
||||
processing instruction support around the output generated by
|
||||
original screen templates. -->
|
||||
<xsl:template match="screen|literallayout">
|
||||
<xsl:variable name="keep.together">
|
||||
<xsl:call-template name="pi.dbfo_keep-together"/>
|
||||
</xsl:variable>
|
||||
<fo:block>
|
||||
<xsl:attribute name="keep-together.within-column">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$keep.together != ''">
|
||||
<xsl:value-of select="$keep.together"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>always</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:apply-imports/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- literal:
|
||||
Be sure that literal will use allways normal font weight. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/inline.xsl -->
|
||||
<xsl:template match="literal">
|
||||
<fo:inline font-weight="normal">
|
||||
<xsl:call-template name="inline.monoseq"/>
|
||||
</fo:inline>
|
||||
</xsl:template>
|
||||
|
||||
<!-- inline.monoseq:
|
||||
Added hyphenate-url support to classname, exceptionname, interfacename,
|
||||
methodname, computeroutput, constant, envar, filename, function, code,
|
||||
literal, option, promt, systemitem, varname, sgmltag, tag, and uri -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/inline.xsl -->
|
||||
<xsl:template name="inline.monoseq">
|
||||
<xsl:param name="content">
|
||||
<xsl:call-template name="simple.xlink">
|
||||
<xsl:with-param name="content">
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::para and not(ancestor::screen)
|
||||
and not(descendant::ulink)">
|
||||
<xsl:call-template name="hyphenate-url">
|
||||
<xsl:with-param name="url">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:param>
|
||||
<fo:inline xsl:use-attribute-sets="monospace.properties">
|
||||
<xsl:if test="@dir">
|
||||
<xsl:attribute name="direction">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
|
||||
<xsl:otherwise>rtl</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:copy-of select="$content"/>
|
||||
</fo:inline>
|
||||
</xsl:template>
|
||||
|
||||
<!-- inline.italicmonoseq:
|
||||
Added hyphenate-url support to parameter, replaceable, structfield,
|
||||
function/parameter, and function/replaceable -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/inline.xsl -->
|
||||
<xsl:template name="inline.italicmonoseq">
|
||||
<xsl:param name="content">
|
||||
<xsl:call-template name="simple.xlink">
|
||||
<xsl:with-param name="content">
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::para and not(ancestor::screen)
|
||||
and not(descendant::ulink)">
|
||||
<xsl:call-template name="hyphenate-url">
|
||||
<xsl:with-param name="url">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:param>
|
||||
<fo:inline font-style="italic" xsl:use-attribute-sets="monospace.properties">
|
||||
<xsl:call-template name="anchor"/>
|
||||
<xsl:if test="@dir">
|
||||
<xsl:attribute name="direction">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
|
||||
<xsl:otherwise>rtl</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:copy-of select="$content"/>
|
||||
</fo:inline>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Show external URLs in italic font -->
|
||||
<xsl:attribute-set name="xref.properties">
|
||||
<xsl:attribute name="font-style">
|
||||
<xsl:choose>
|
||||
<xsl:when test="self::ulink">italic</xsl:when>
|
||||
<xsl:otherwise>inherit</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Center table title. -->
|
||||
<xsl:attribute-set name="formal.title.properties">
|
||||
<xsl:attribute name="text-align">
|
||||
<xsl:choose>
|
||||
<xsl:when test="local-name(.) = 'table'">center</xsl:when>
|
||||
<xsl:otherwise>left</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- table.layout:
|
||||
We want all tables centered. Based on a hack posted
|
||||
by Ellen Juhlin on docbook-apps mailing list. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/table.xsl -->
|
||||
<xsl:template name="table.layout">
|
||||
<xsl:param name="table.content" select="NOTANODE"/>
|
||||
<fo:table table-layout="fixed" width="100%">
|
||||
<fo:table-column column-width ="proportional-column-width(1)"/>
|
||||
<fo:table-column>
|
||||
<!-- Set center column width equal to table width -->
|
||||
<xsl:attribute name="column-width">
|
||||
<xsl:call-template name="table.width"/>
|
||||
</xsl:attribute>
|
||||
</fo:table-column>
|
||||
<fo:table-column column-width ="proportional-column-width(1)"/>
|
||||
<fo:table-body>
|
||||
<fo:table-row>
|
||||
<fo:table-cell column-number="2">
|
||||
<xsl:copy-of select="$table.content"/>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
</fo:table-body>
|
||||
</fo:table>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Revision History -->
|
||||
|
||||
<!-- revhistory titlepage:
|
||||
Self-made template to add missing support on bookinfo. -->
|
||||
<xsl:template match="revhistory" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block space-before.optimum="2em"
|
||||
space-before.minimum="1.5em"
|
||||
space-before.maximum="2.5em">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- revhitory title properties -->
|
||||
<xsl:attribute-set name="revhistory.title.properties">
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- revhistory/revision mode titlepage.mode:
|
||||
Removed authorinitials | author support placing
|
||||
revremark | revdescription instead on that table-cell. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/titlepage.xsl -->
|
||||
<xsl:template match="revhistory/revision" mode="titlepage.mode">
|
||||
<xsl:variable name="revnumber" select="revnumber"/>
|
||||
<xsl:variable name="revdate" select="date"/>
|
||||
<xsl:variable name="revremark" select="revremark|revdescription"/>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
|
||||
<fo:block>
|
||||
<xsl:if test="$revnumber">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key" select="'Revision'"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="gentext.space"/>
|
||||
<xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
|
||||
</xsl:if>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
|
||||
<fo:block>
|
||||
<xsl:apply-templates select="$revdate[1]"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
|
||||
<fo:block>
|
||||
<xsl:apply-templates select="$revremark[1]"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!-- Dummy sect1 -->
|
||||
|
||||
<!-- sect1:
|
||||
Self-made template to skip dummy sect1 pages generation. -->
|
||||
<xsl:template match="sect1">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@role = 'dummy'"/>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-imports/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- sect1 mode fop1.outline:
|
||||
Self-made template to skip dummy sect1 bookmarks generation. -->
|
||||
<xsl:template match="sect1" mode="fop1.outline">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@role = 'dummy'"/>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-imports/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- toc.line:
|
||||
For dummy sect1 output only the title. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/autotoc.xsl -->
|
||||
<xsl:template name="toc.line">
|
||||
<xsl:param name="toc-context" select="NOTANODE"/>
|
||||
<xsl:variable name="id">
|
||||
<xsl:call-template name="object.id"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="label">
|
||||
<xsl:apply-templates select="." mode="label.markup"/>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@role = 'dummy'">
|
||||
<fo:block text-align="left">
|
||||
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
|
||||
</fo:block>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<fo:block xsl:use-attribute-sets="toc.line.properties">
|
||||
<fo:inline keep-with-next.within-line="always">
|
||||
<fo:basic-link internal-destination="{$id}">
|
||||
<xsl:if test="$label != ''">
|
||||
<xsl:copy-of select="$label"/>
|
||||
<xsl:value-of select="$autotoc.label.separator"/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
|
||||
</fo:basic-link>
|
||||
</fo:inline>
|
||||
<fo:inline keep-together.within-line="always">
|
||||
<xsl:text> </xsl:text>
|
||||
<fo:leader leader-pattern="dots"
|
||||
leader-pattern-width="3pt"
|
||||
leader-alignment="reference-area"
|
||||
keep-with-next.within-line="always"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<fo:basic-link internal-destination="{$id}">
|
||||
<fo:page-number-citation ref-id="{$id}"/>
|
||||
</fo:basic-link>
|
||||
</fo:inline>
|
||||
</fo:block>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,244 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet controls page margins, sections page break,
|
||||
header content and titles size. -->
|
||||
|
||||
<!-- The inner page margin. -->
|
||||
<xsl:param name="page.margin.inner" select="'0.32in'"/>
|
||||
|
||||
<!-- The outer page margin. -->
|
||||
<xsl:param name="page.margin.outer" select="'0.32in'"/>
|
||||
|
||||
<!-- The bottom margin of the page. -->
|
||||
<xsl:param name="page.margin.bottom" select="'0.35in'"/>
|
||||
|
||||
<!-- The top margin of the page. -->
|
||||
<xsl:param name="page.margin.top" select="'0.35in'"/>
|
||||
|
||||
<!-- The bottom margin of the body text. -->
|
||||
<xsl:param name="body.margin.bottom" select="'0.4in'"/>
|
||||
|
||||
<!-- The top margin of the body text. -->
|
||||
<xsl:param name="body.margin.top" select="'0.4in'"/>
|
||||
|
||||
<!-- Specifies the height of the header. -->
|
||||
<xsl:param name="region.before.extent" select="'0.25in'"/>
|
||||
|
||||
<!-- Specifies the height of the footer. -->
|
||||
<xsl:param name="region.after.extent" select="'0.25in'"/>
|
||||
|
||||
<!-- The start-indent for the body text. -->
|
||||
<xsl:param name="body.start.indent" select="'0pc'"/>
|
||||
|
||||
<!-- Adjust the left margin for titles. -->
|
||||
<xsl:param name="title.margin.left">-0.8pc</xsl:param>
|
||||
|
||||
<!-- Default table width on tables that do not specify an alternate
|
||||
width using the dbfo processing instruction.
|
||||
This value is used also on bookinfo/revhistory table. -->
|
||||
<xsl:param name="default.table.width" select="'70%'"/>
|
||||
|
||||
<!-- Properties for component titles -->
|
||||
<xsl:attribute-set name="component.title.properties">
|
||||
<xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
|
||||
<xsl:attribute name="space-before.optimum">
|
||||
<xsl:value-of select="concat($body.font.master, 'pt')"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">
|
||||
<xsl:value-of select="concat($body.font.master, 'pt * 0.8')"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">
|
||||
<xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="hyphenate">false</xsl:attribute>
|
||||
<xsl:attribute name="text-align">
|
||||
<xsl:choose>
|
||||
<xsl:when test="((parent::article | parent::articleinfo |
|
||||
parent::info/parent::article)
|
||||
and not(ancestor::book) and not(self::bibliography))
|
||||
or (parent::slides | parent::slidesinfo)
|
||||
or self::index">center</xsl:when>
|
||||
<xsl:otherwise>left</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="start-indent">
|
||||
<xsl:value-of select="$title.margin.left"/>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Rule under headers? 1 =yes, 0 = no -->
|
||||
<xsl:param name="header.rule" select="0"/>
|
||||
|
||||
<!-- Rule over footers? 1 =yes, 0 = no -->
|
||||
<xsl:param name="footer.rule" select="0"></xsl:param>
|
||||
|
||||
<!-- Control depth of sections shown in running headers or footers.
|
||||
Be sure that no unneeded fo:marker are generated. -->
|
||||
<xsl:param name="marker.section.level" select="-1"></xsl:param>
|
||||
|
||||
<!-- Force package's sect1 onto a new page -->
|
||||
<xsl:attribute-set name="section.level1.properties">
|
||||
<xsl:attribute name="break-before">
|
||||
<xsl:choose>
|
||||
<!--<xsl:when test="not(. = //*/sect1[1])">
|
||||
<xsl:text>page</xsl:text>
|
||||
</xsl:when>-->
|
||||
<xsl:when test="preceding-sibling::sect1[position()=1]/sect2/@role='package'
|
||||
or self::sect1/sect2/@role='package'">page</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>auto</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- part/partintro:
|
||||
Be sure that partintro is on a new page. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/divisions.xsl -->
|
||||
<xsl:template match="part/partintro">
|
||||
<xsl:apply-templates select=".." mode="part.titlepage.mode">
|
||||
<xsl:with-param name="additional.content">
|
||||
<fo:block break-before="page"/>
|
||||
<xsl:if test="title">
|
||||
<xsl:call-template name="partintro.titlepage"/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
<xsl:call-template name="generate.part.toc">
|
||||
<xsl:with-param name="part" select=".."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<!-- book title:
|
||||
Centered the title and removed unused code.
|
||||
Removed book.titlepage.separator. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl -->
|
||||
<xsl:template name="book.titlepage">
|
||||
<fo:block margin-top="3in">
|
||||
<fo:block>
|
||||
<xsl:call-template name="book.titlepage.before.recto"/>
|
||||
<xsl:call-template name="book.titlepage.recto"/>
|
||||
</fo:block>
|
||||
<fo:block>
|
||||
<xsl:call-template name="book.titlepage.before.verso"/>
|
||||
<xsl:call-template name="book.titlepage.verso"/>
|
||||
</fo:block>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- book titlepage verso:
|
||||
Added missing bibliosource and revhistory support.
|
||||
Removed unused code. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl -->
|
||||
<xsl:template name="book.titlepage.verso">
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/title"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/corpauthor"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/authorgroup"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/author"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/othercredit"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/releaseinfo"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/pubdate"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/copyright"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/bibliosource"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/abstract"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/revhistory"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/legalnotice"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- bibliosource:
|
||||
Self-made template to handle bibliosource when inside bookinfo. -->
|
||||
<xsl:template match="bibliosource" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block font-size="8pt">
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- part title:
|
||||
Centered the title and removed unused code. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl -->
|
||||
<xsl:template name="part.titlepage">
|
||||
<fo:block>
|
||||
<fo:block margin-top="3.5in">
|
||||
<xsl:call-template name="part.titlepage.before.recto"/>
|
||||
<xsl:call-template name="part.titlepage.recto"/>
|
||||
</fo:block>
|
||||
<fo:block>
|
||||
<xsl:call-template name="part.titlepage.before.verso"/>
|
||||
<xsl:call-template name="part.titlepage.verso"/>
|
||||
</fo:block>
|
||||
<xsl:call-template name="part.titlepage.separator"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- chapter title:
|
||||
Small font size and left alignament. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl -->
|
||||
<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
|
||||
<fo:block xsl:use-attribute-sets="chapter.titlepage.recto.style"
|
||||
font-size="21pt" font-weight="bold" text-align="left">
|
||||
<xsl:call-template name="component.title">
|
||||
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
|
||||
</xsl:call-template>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- sect2 title:
|
||||
Skip sect2.titlepage run when title is empty.
|
||||
Removed unused code. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/sections.xsl -->
|
||||
<xsl:template match="sect2">
|
||||
<xsl:variable name="id">
|
||||
<xsl:call-template name="object.id"/>
|
||||
</xsl:variable>
|
||||
<fo:block xsl:use-attribute-sets="section.level2.properties">
|
||||
<xsl:attribute name="id">
|
||||
<xsl:value-of select="$id"/>
|
||||
</xsl:attribute>
|
||||
<xsl:if test="not(string-length(title)=0)">
|
||||
<xsl:call-template name="sect2.titlepage"/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- header.table:
|
||||
Re-made template to not generate a fo:table in the header,
|
||||
allowing a more simple header.content customization. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/pagesetup.xsl -->
|
||||
<xsl:template name="header.table">
|
||||
<xsl:param name="sequence" select="''"/>
|
||||
<xsl:param name="gentext-key" select="''"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$gentext-key = 'book' or $sequence = 'blank'"/>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="header.content">
|
||||
<xsl:with-param name="sequence" select="$sequence"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- header.content
|
||||
Re-made template to show the book title and version on all pages. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/pagesetup.xsl -->
|
||||
<xsl:template name="header.content">
|
||||
<xsl:param name="sequence" select="''"/>
|
||||
<fo:block>
|
||||
<xsl:attribute name="text-align">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$sequence = 'first' or $sequence = 'odd'">right</xsl:when>
|
||||
<xsl:otherwise>left</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="/book/bookinfo/title"/>
|
||||
<xsl:text> - </xsl:text>
|
||||
<xsl:value-of select="/book/bookinfo/subtitle"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -1,152 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
|
||||
<!-- This stylesheet fixes English punctuation in xref links
|
||||
(as was requested by the publisher) via adding @role propagation
|
||||
in xref tags.
|
||||
This hack may not work with xref flavours not used in the book.
|
||||
For other languages, just remove the xref @role attributes
|
||||
in the book XML sources and/or comment-out the inclusion of
|
||||
this file in lfs-pdf.xsl -->
|
||||
|
||||
<!-- xref:
|
||||
Added role variable and use it when calling mode xref-to.
|
||||
Also remove code for xlink:href attribute in xref elements,
|
||||
since we don't use it.-->
|
||||
<!-- The original template is in {docbook-xsl}/fo/xref.xsl -->
|
||||
<xsl:template match="xref" name="xref">
|
||||
<xsl:param name="linkend.targets" select="key('id',@linkend)"/>
|
||||
<xsl:param name="target" select="$linkend.targets[1]"/>
|
||||
<xsl:param name="refelem" select="local-name($target)"/>
|
||||
<!-- Added role variable -->
|
||||
<xsl:variable name="role" select="@role"/>
|
||||
<xsl:variable name="xrefstyle">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@role and not(@xrefstyle)
|
||||
and $use.role.as.xrefstyle != 0">
|
||||
<xsl:value-of select="@role"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@xrefstyle"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="content">
|
||||
<fo:inline xsl:use-attribute-sets="xref.properties">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@endterm">
|
||||
<xsl:variable name="etargets" select="key('id',@endterm)"/>
|
||||
<xsl:variable name="etarget" select="$etargets[1]"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="count($etarget) = 0">
|
||||
<xsl:message>
|
||||
<xsl:value-of select="count($etargets)"/>
|
||||
<xsl:text>Endterm points to nonexistent ID: </xsl:text>
|
||||
<xsl:value-of select="@endterm"/>
|
||||
</xsl:message>
|
||||
<xsl:text>???</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="$etarget" mode="endterm"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="$target/@xreflabel">
|
||||
<xsl:call-template name="xref.xreflabel">
|
||||
<xsl:with-param name="target" select="$target"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="$target">
|
||||
<xsl:if test="not(parent::citation)">
|
||||
<xsl:apply-templates select="$target" mode="xref-to-prefix"/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="$target" mode="xref-to">
|
||||
<xsl:with-param name="referrer" select="."/>
|
||||
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
|
||||
<!-- Propagate role -->
|
||||
<xsl:with-param name="role" select="$role"/>
|
||||
</xsl:apply-templates>
|
||||
<xsl:if test="not(parent::citation)">
|
||||
<xsl:apply-templates select="$target" mode="xref-to-suffix"/>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:message>
|
||||
<xsl:text>ERROR: xref linking to </xsl:text>
|
||||
<xsl:value-of select="@linkend"/>
|
||||
<xsl:text> has no generated link text.</xsl:text>
|
||||
</xsl:message>
|
||||
<xsl:text>???</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</fo:inline>
|
||||
</xsl:variable>
|
||||
<!-- Convert it into an active link -->
|
||||
<xsl:call-template name="simple.xlink">
|
||||
<xsl:with-param name="content" select="$content"/>
|
||||
</xsl:call-template>
|
||||
<!-- Add standard page reference? -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="not($target)">
|
||||
<!-- page numbers only for local targets -->
|
||||
</xsl:when>
|
||||
<xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')
|
||||
and contains($xrefstyle, 'nopage')">
|
||||
<!-- negative xrefstyle in instance turns it off -->
|
||||
</xsl:when>
|
||||
<!-- positive xrefstyle already handles it -->
|
||||
<xsl:when test="not(starts-with(normalize-space($xrefstyle), 'select:')
|
||||
and (contains($xrefstyle, 'page')
|
||||
or contains($xrefstyle, 'Page')))
|
||||
and ( $insert.xref.page.number = 'yes'
|
||||
or $insert.xref.page.number = '1')
|
||||
or local-name($target) = 'para'">
|
||||
<xsl:apply-templates select="$target" mode="page.citation">
|
||||
<xsl:with-param name="id" select="$target/@id|$target/@xml:id"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- sect* mode xref-to:
|
||||
Propagate role to mode object.xref.markup (see ../lfs-common.xsl) -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/xref.xsl -->
|
||||
<xsl:template match="section|simplesect|sect1|sect2|sect3|sect4|sect5
|
||||
|refsect1|refsect2|refsect3|refsection" mode="xref-to">
|
||||
<xsl:param name="referrer"/>
|
||||
<xsl:param name="xrefstyle"/>
|
||||
<xsl:param name="verbose" select="1"/>
|
||||
<xsl:param name="role"/>
|
||||
<xsl:apply-templates select="." mode="object.xref.markup">
|
||||
<xsl:with-param name="purpose" select="'xref'"/>
|
||||
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
|
||||
<xsl:with-param name="referrer" select="$referrer"/>
|
||||
<xsl:with-param name="verbose" select="$verbose"/>
|
||||
<xsl:with-param name="role" select="$role"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<!-- insert.title.markup:
|
||||
Apply the role value. -->
|
||||
<!-- The original template is in {docbook-xsl}/fo/xref.xsl -->
|
||||
<xsl:template match="*" mode="insert.title.markup">
|
||||
<xsl:param name="purpose"/>
|
||||
<xsl:param name="xrefstyle"/>
|
||||
<xsl:param name="title"/>
|
||||
<xsl:param name="role"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$purpose = 'xref' and titleabbrev">
|
||||
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:copy-of select="$title"/>
|
||||
<xsl:value-of select="$role"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
Reference in New Issue
Block a user