jvanzyl 00/10/01 16:33:07
Added: build/xsl xml2pdf.xsl xml2xml.xsl
Log:
- use xml-fop package to create a PDF of the velocity documentation.
Revision Changes Path
1.1 jakarta-velocity/build/xsl/xml2pdf.xsl
Index: xml2pdf.xsl
===================================================================
<?xml version="1.0"?>
<!-- XSLT stylesheet to convert the Fop documentation collected in one xml file
into a fo file
for use in FOP
TBD: - The faq doesn't show in the content
- check why margin-bottom on the page with properties is too large
- check why keep-next not only doesn't work, but leads to repeating already
printed lines
- make lines containing only code look nicer (smaller line height)
- replace bullets in ordered lists with numbers
- correct the hack replacing nbsp with '-'
- handle the links correctly which have been external in the html doc and are
now internal
-->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
>
<xsl:template match ="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- defines page layout -->
<fo:layout-master-set>
<fo:simple-page-master master-name="first"
page-height="29.7cm"
page-width="21cm"
margin-top="1.5cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-body margin-top="3cm"/>
<fo:region-before extent="1.5cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="rest"
page-height="29.7cm"
page-width="21cm"
margin-top="1.5cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-body margin-top="2.5cm"/>
<fo:region-before extent="1.5cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="all">
<fo:single-page-master-reference master-name="first"/>
<fo:repeatable-page-master-reference
master-name="rest"/>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-name="all">
<fo:static-content flow-name="xsl-region-before">
<fo:block text-align="end"
font-size="10pt"
font-family="serif"
line-height="14pt" >
FOP documentation - p. <fo:page-number/>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="18pt"
font-family="sans-serif"
line-height="24pt"
space-after.optimum="15pt"
background-color="blue"
color="white"
text-align="center">
FOP - an xsl:fo renderer
</fo:block>
<!-- generates table of contents and puts it into a table -->
<fo:block font-size="14pt"
font-family="sans-serif"
line-height="18pt"
space-after.optimum="10pt"
font-weight="bold"
start-indent="15pt">
Content
</fo:block>
<fo:table>
<fo:table-column column-width="1cm"/>
<fo:table-column column-width="15cm"/>
<fo:table-body font-size="12pt"
line-height="16pt"
font-family="sans-serif">
<xsl:for-each select="//s1"> <!-- An dieser Stelle muesste noch ein
"oder finde faqs" stehen -->
<fo:table-row>
<fo:table-cell>
<fo:block text-align="end" >
<xsl:number value="position()" format="1"/>)
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align="start" >
<fo:simple-link color="blue">
<xsl:attribute name="internal-destination">
<xsl:value-of select="translate(.,' ),-.(','____')"/>
</xsl:attribute>
<xsl:value-of select="@title"/>
</fo:simple-link>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
<xsl:apply-templates select="documentation"/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- s1 -->
<xsl:template match ="s1">
<fo:block font-size="18pt"
font-family="sans-serif"
line-height="24pt"
space-before.optimum="15pt"
space-after.optimum="15pt"
background-color="blue"
color="white"
text-align="center"
>
<xsl:attribute name="id">
<xsl:value-of select="translate(.,' ),-.(','____')"/>
</xsl:attribute>
<xsl:value-of select="@title"/>
</fo:block>
<xsl:apply-templates/>
</xsl:template>
<!-- s2 -->
<xsl:template match ="s2">
<fo:block font-size="16pt"
font-family="sans-serif"
line-height="20pt"
space-before.optimum="15pt"
space-after.optimum="12pt"
text-align="center"
padding-top="3pt"
>
<xsl:value-of select="@title"/>
</fo:block>
<xsl:apply-templates/>
</xsl:template>
<!-- s3 -->
<xsl:template match ="s3">
<fo:block font-size="14pt"
font-family="sans-serif"
line-height="18pt"
space-before.optimum="10pt"
space-after.optimum="9pt"
text-align="center"
padding-top="3pt">
<xsl:value-of select="@title"/>
</fo:block>
<xsl:apply-templates/>
</xsl:template>
<!-- p [not(code)] -->
<xsl:template match ="p">
<fo:block font-size="11pt"
font-family="sans-serif"
line-height="13pt"
space-after.optimum="3pt"
space-before.optimum="3pt"
text-align="justify">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<!-- p + code
<xsl:template match ="p[code]">
<fo:block font-size="11pt"
font-family="sans-serif"
line-height="11pt"
space-after.optimum="0pt"
space-before.optimum="0pt"
text-align="start">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
-->
<!-- faqs -->
<xsl:template match ="faqs">
<fo:block font-size="18pt"
font-family="sans-serif"
line-height="24pt"
space-before.optimum="15pt"
space-after.optimum="15pt"
background-color="blue"
color="white"
text-align="center"
>
<xsl:attribute name="id">
<xsl:value-of select="translate(.,' ),-.(','____')"/>
</xsl:attribute>
<xsl:value-of select="@title"/>
</fo:block>
<xsl:apply-templates/>
</xsl:template>
<!-- faq -->
<xsl:template match ="faq">
<xsl:apply-templates/>
</xsl:template>
<!-- q in faq -->
<xsl:template match ="q">
<fo:block font-size="11pt"
font-family="sans-serif"
line-height="13pt"
space-after.optimum="3pt"
space-before.optimum="3pt"
text-align="justify">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<!-- a in faq -->
<xsl:template match ="a">
<xsl:apply-templates/>
</xsl:template>
<!-- jump (links) -->
<xsl:template match ="*/jump">
<fo:simple-link color="blue" external-destination="{@href}">
<xsl:apply-templates/>
</fo:simple-link>
</xsl:template>
<!-- code -->
<xsl:template match ="*/code">
<fo:inline font-size="10pt"
font-family="Courier">
<xsl:apply-templates/>
</fo:inline>
</xsl:template>
<!-- ul (unordered list) -->
<xsl:template match ="ul">
<fo:list-block start-indent="1cm"
provisional-distance-between-starts="12pt"
font-family="sans-serif"
font-size="11pt"
line-height="11pt">
<xsl:apply-templates/>
</fo:list-block>
</xsl:template>
<!-- ol (ordered list) -->
<xsl:template match ="ol">
<fo:list-block start-indent="1cm"
provisional-distance-between-starts="12pt"
font-family="sans-serif"
font-size="11pt"
line-height="11pt">
<xsl:apply-templates/>
</fo:list-block>
</xsl:template>
<!-- li (list item) in unordered list -->
<xsl:template match ="ul/li">
<fo:list-item>
<fo:list-item-label>
<fo:block><fo:inline font-family="Symbol">·</fo:inline></fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block space-after.optimum="4pt"
text-align="justify"
padding-top="3pt">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
<!-- li (list item) in ordered list -->
<xsl:template match ="ol/li">
<fo:list-item>
<fo:list-item-label>
<fo:block>
<xsl:number level="multiple" count="li" format="1"/>)
</fo:block>
</fo:list-item-label>
<fo:list-item-body>
<fo:block space-after.optimum="4pt"
text-align="justify"
padding-top="3pt">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</xsl:template>
<!-- end body -->
</xsl:stylesheet>
1.1 jakarta-velocity/build/xsl/xml2xml.xsl
Index: xml2xml.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match ="/">
<documentation>
<xsl:copy-of select="document('../../xdocs/index.xml')"/>
<xsl:copy-of select="document('../../xdocs/code-standards.xml')"/>
<xsl:copy-of select="document('../../xdocs/contributors.xml')"/>
<xsl:copy-of select="document('../../xdocs/design.xml')"/>
<xsl:copy-of select="document('../../xdocs/developer-guide.xml')"/>
<xsl:copy-of select="document('../../xdocs/getting-started.xml')"/>
<xsl:copy-of select="document('../../xdocs/install.xml')"/>
<xsl:copy-of select="document('../../xdocs/license.xml')"/>
<xsl:copy-of select="document('../../xdocs/script-elements.xml')"/>
<xsl:copy-of select="document('../../xdocs/site-book.xml')"/>
<xsl:copy-of select="document('../../xdocs/user-guide.xml')"/>
</documentation>
</xsl:template>
</xsl:stylesheet>