]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
stylesheet for generating docs
authorKeiron Liddle <keiron@apache.org>
Fri, 14 Jul 2000 07:11:53 +0000 (07:11 +0000)
committerKeiron Liddle <keiron@apache.org>
Fri, 14 Jul 2000 07:11:53 +0000 (07:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@193501 13f79535-47bb-0310-9956-ffa450edef68

docs/examples/svg/Document.xsl [new file with mode: 0644]

diff --git a/docs/examples/svg/Document.xsl b/docs/examples/svg/Document.xsl
new file mode 100644 (file)
index 0000000..c83d3f3
--- /dev/null
@@ -0,0 +1,269 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd">
+       <xsl:output method="xml" indent="yes"/>
+       <xsl:template match="Document">
+               <fo:root>
+                       <fo:layout-master-set>
+                               <fo:simple-page-master master-name="one" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1.5cm" margin-right="1.5cm">
+                                       <fo:region-before extent="1.5cm"/>
+                                       <fo:region-body margin-top="1.5cm" margin-bottom="2cm"/>
+                                       <fo:region-after extent="1.5cm"/>
+                               </fo:simple-page-master>
+                               <fo:simple-page-master master-name="front" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="6cm" margin-right="1.5cm">
+                                       <fo:region-before extent="1.5cm"/>
+                                       <fo:region-body margin-top="1.5cm" margin-bottom="2cm"/>
+                                       <fo:region-after extent="1.5cm"/>
+                               </fo:simple-page-master>
+                       </fo:layout-master-set>
+                       <fo:page-sequence master-name="front">
+                               <fo:flow font-size="14pt" line-height="14pt">
+                           <fo:block-container height="20cm" width="6cm" top="2cm" left="-1cm" position="absolute">
+                                               <fo:block>
+                                                   <svg:svg width="20" height="19.5cm">
+                                                       <svg:line style="stroke-width:1.5" x1="10" y1="0" x2="10" y2="20cm"/>
+                                                   </svg:svg>
+                                               </fo:block>
+                           </fo:block-container>
+
+                           <fo:block-container height="2cm" width="6cm" top="21.5cm" left="-5.3cm" position="absolute">
+                                               <fo:block>
+                                               </fo:block>
+                           </fo:block-container>
+
+                                       <fo:block font-weight="bold" font-size="26pt" line-height="28pt" space-before.optimum="50pt" space-after.optimum="10pt">
+                                               SVG in FOP
+                                       </fo:block>
+
+                                       <fo:block font-weight="bold" font-size="22pt" line-height="22pt" space-after.optimum="70pt">
+                                               <xsl:apply-templates select="Title"/>
+                                       </fo:block>
+                                       <fo:block font-weight="bold" font-size="12pt" line-height="12pt" space-after.optimum="70pt">
+                                               <xsl:apply-templates select="Description"/>
+                                       </fo:block>
+                               </fo:flow>
+                       </fo:page-sequence>
+                       <fo:page-sequence master-name="one">
+                               <fo:static-content flow-name="xsl-before">
+                                       <fo:block-container height="1cm" width="6cm" top="0.2cm" left="0cm" position="absolute">
+                                               <fo:block text-align="start" font-size="10pt" font-family="serif" line-height="12pt">
+                                               </fo:block>
+                                               <fo:block text-align="start" font-size="10pt" font-family="serif" line-height="12pt">
+                                               </fo:block>
+                           </fo:block-container>
+                           <fo:block-container height="2cm" width="6cm" top="-0.1cm" left="5.8cm" position="absolute">
+                                               <fo:block>
+                                               </fo:block>
+                           </fo:block-container>
+                           <fo:block-container height="1cm" width="2cm" top="0.2cm" left="15cm" position="absolute">
+                                               <fo:block text-align="end" font-size="10pt" font-family="serif" line-height="14pt">
+                                                       SVG in FOP
+                                               </fo:block>
+                           </fo:block-container>
+                                       <fo:block-container height="1cm" width="17cm" top="1.1cm" left="0cm" position="absolute">
+                                               <fo:display-rule space-before.optimum="0pt" space-after.optimum="0pt"/>
+                           </fo:block-container>
+                               </fo:static-content>
+                               <fo:static-content flow-name="xsl-after">
+                                       <fo:block-container height="1cm" width="17cm" top="0cm" left="0cm" position="absolute">
+                                               <fo:display-rule space-before.optimum="0pt" space-after.optimum="0pt"/>
+                           </fo:block-container>
+                       <fo:block-container height="2cm" width="6cm" top="0.1cm" left="0cm" position="absolute">
+                                               <fo:block font-size="10pt" font-family="serif" line-height="12pt">
+                                                       <xsl:apply-templates select="Title"/>
+                                               </fo:block>
+                                               <fo:block font-size="10pt" font-family="serif" line-height="12pt">
+                                               </fo:block>
+                       </fo:block-container>
+                               <fo:block-container height="2cm" width="6cm" top="0.5cm" left="8cm" position="absolute">
+                                               <fo:block font-size="10pt" font-family="serif" line-height="12pt">
+                                                       Apache XML
+                                               </fo:block>
+                           </fo:block-container>
+                       <fo:block-container height="1cm" width="2cm" top="0.5cm" left="15cm" position="absolute">
+                                               <fo:block text-align="end" font-size="10pt" font-family="serif" line-height="12pt">
+                                                       Page <fo:page-number/>
+                                               </fo:block>
+                       </fo:block-container>
+                               </fo:static-content>
+                               <fo:flow font-size="10pt" line-height="10pt">
+                                       <xsl:apply-templates select="Summary"/>
+                                       <xsl:apply-templates select="ExternalChapter|Chapter"/>
+                               </fo:flow>
+                       </fo:page-sequence>
+               </fo:root>
+       </xsl:template>
+
+       <xsl:key name="diagrams" match="Diagram" use="@entry"/>
+
+       <xsl:template match="ExternalDiagram">
+               <xsl:variable name="name" select="."/>
+
+               <fo:block text-align="start" font-size="11pt" line-height="11pt">
+                       <xsl:for-each select="document(@file)/Diagrams/Diagram">
+                               <xsl:if test="$name=@entry">
+                                       <xsl:apply-templates/>
+                               </xsl:if>
+                       </xsl:for-each>
+               </fo:block>
+
+               <xsl:if test="@showcode='true'">
+               <fo:block start-indent="-50pt" text-align="start" font-family="monospace" white-space-treatment="preserve" font-size="9pt" line-height="9pt">
+<xsl:text disable-output-escaping="yes">&lt;</xsl:text>![CDATA[
+                       <xsl:for-each select="document(@file)/Diagrams/Diagram">
+                               <xsl:if test="$name=@entry">
+                                       <xsl:apply-templates/>
+                                   </xsl:if>
+                       </xsl:for-each>
+]]<xsl:text disable-output-escaping="yes">&gt;</xsl:text>
+               </fo:block>
+           </xsl:if>
+
+<!--
+               <fo:block font-size="12pt" line-height="12pt">
+                       <xsl:for-each select="document(@file)">
+                               <xsl:apply-templates select="key('diagrams', $name)"/>
+                       </xsl:for-each>
+               </fo:block>
+-->
+
+       </xsl:template>
+
+       <xsl:template match="ExternalSVG">
+               <fo:block text-align="start" font-size="11pt" line-height="11pt">
+                       <xsl:apply-templates select="document(@file)/svg:svg" mode="svg"/>
+               </fo:block>
+       </xsl:template>
+
+       <xsl:template match="ExternalChapter">
+<!--
+<xsl:message>Including File: <xsl:value-of select="@file"/></xsl:message>
+-->
+               <xsl:for-each select="document(@file)/Document">
+                       <fo:block break-before="page"/>
+                       <xsl:apply-templates select="Chapter|ExternalChapter"/>
+               </xsl:for-each>
+       </xsl:template>
+
+       <xsl:template match="Chapter">
+               <xsl:if test="not(position()=1)">
+                       <fo:block break-before="page"/>
+               </xsl:if>
+               <fo:display-rule rule-thickness="1.5pt" space-before.optimum="5pt" space-after.optimum="4pt"/>
+               <fo:block font-weight="bold" font-size="18pt" line-height="18pt"><xsl:apply-templates select="Title"/></fo:block>
+               <xsl:apply-templates select="ExternalDiagram|ExternalSVG"/>
+               <xsl:apply-templates select="Body"/>
+               <xsl:apply-templates select="Section"/>
+       </xsl:template>
+
+       <xsl:template match="@*|node()" mode="svg">
+               <xsl:copy>
+                       <xsl:apply-templates select="@*|node()" mode="svg"/>
+               </xsl:copy>
+       </xsl:template>
+
+<!-- note: this causes any node not otherwise defined to be copied -->
+       <xsl:template match="@*|node()">
+               <xsl:copy>
+                       <xsl:apply-templates select="@*|node()"/>
+               </xsl:copy>
+       </xsl:template>
+
+       <xsl:template match="Summary">
+               <fo:block break-before="page" font-size="16pt" line-height="16pt" space-before.optimum="12pt"><xsl:apply-templates select="Title"/></fo:block>
+
+               <xsl:apply-templates select="ExternalDiagram|ExternalSVG"/>
+
+               <xsl:apply-templates select="Body"/>
+       </xsl:template>
+
+       <xsl:template match="Section">
+               <fo:display-rule space-before.optimum="8pt"/>
+               <fo:block font-weight="bold" font-size="14pt" line-height="14pt" space-before.optimum="2pt"><xsl:apply-templates select="Title"/></fo:block>
+
+               <xsl:apply-templates select="ExternalDiagram|ExternalSVG"/>
+
+               <xsl:apply-templates select="Body"/>
+
+               <xsl:apply-templates select="SubSection"/>
+       </xsl:template>
+
+       <xsl:template match="SubSection">
+               <fo:display-rule space-before.optimum="6pt"/>
+               <fo:block font-weight="bold" font-size="12pt" line-height="12pt" space-before.optimum="2pt"><xsl:apply-templates select="Title"/></fo:block>
+
+               <xsl:apply-templates select="ExternalDiagram|ExternalSVG"/>
+
+               <xsl:apply-templates select="Body"/>
+       </xsl:template>
+
+       <xsl:template match="Body">
+               <xsl:apply-templates select="p"/>
+       </xsl:template>
+
+       <xsl:template match="p">
+               <fo:block start-indent="5pt" font-size="10pt" line-height="11pt"  text-align="justified" space-before.optimum="4pt">
+                       <xsl:apply-templates/>
+               </fo:block>
+       </xsl:template>
+
+       <xsl:template match="Title">
+               <xsl:number level="multiple" count="Chapter|Section|SubSection" format="1.1 "/>
+               <xsl:apply-templates/>
+       </xsl:template>
+
+       <xsl:template match="i">
+               <fo:inline-sequence font-style="italic">
+                       <xsl:apply-templates/>
+               </fo:inline-sequence>
+       </xsl:template>
+
+       <xsl:template match="b">
+               <fo:inline-sequence font-weight="bold">
+                       <xsl:apply-templates/>
+               </fo:inline-sequence>
+       </xsl:template>
+
+       <xsl:template match="a">
+               <fo:inline-sequence color="blue">
+                       <xsl:apply-templates/>
+               </fo:inline-sequence>
+       </xsl:template>
+
+       <xsl:template match="Description">
+               <xsl:apply-templates/>
+       </xsl:template>
+
+       <xsl:template match="index">
+               <xsl:apply-templates/>
+       </xsl:template>
+
+       <xsl:template match="code">
+        <fo:block font-family="monospace" text-align="start" white-space-treatment="preserve">
+                       <xsl:apply-templates/>
+        </fo:block>
+       </xsl:template>
+
+       <xsl:template match="ul">
+      <fo:list-block>
+               <xsl:apply-templates/>
+      </fo:list-block>
+       </xsl:template>
+
+       <xsl:template match="li">
+        <fo:list-item>
+          <fo:list-item-label>
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body>
+            <fo:block space-after.optimum="4pt">
+                       <xsl:apply-templates/>
+            </fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+       </xsl:template>
+
+       <xsl:template match="Appendix//Title" priority="1">
+               <xsl:number level="multiple" count="Appendix|Section|SubSection" format="A.1 "/>
+               <xsl:apply-templates/>
+       </xsl:template>
+</xsl:stylesheet>