- <?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="simple"
- 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:layout-master-set>
-
- <fo:page-sequence master-name="simple">
- <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">
- <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:basic-link color="blue">
- <xsl:attribute name="internal-destination">
- <xsl:value-of select="translate(.,' ),-.(','____')"/>
- </xsl:attribute>
- <xsl:value-of select="@title"/>
- </fo:basic-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="start"
- 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:basic-link color="blue" external-destination="{@href}">
- <xsl:apply-templates/>
- </fo:basic-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 end-indent="label-end()">
- <fo:block><fo:inline font-family="Symbol">·</fo:inline></fo:block>
- </fo:list-item-label>
- <fo:list-item-body start-indent="body-start()">
- <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 end-indent="label-end()">
- <fo:block>
- <xsl:number level="multiple" count="li" format="1"/>)
- </fo:block>
- </fo:list-item-label>
- <fo:list-item-body start-indent="body-start()">
- <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>
|