| [bf8c11f] | 1 | <?xml version="1.0"?>
 | 
|---|
 | 2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 | 
|---|
 | 3 |     xmlns:exsl="http://exslt.org/common"
 | 
|---|
 | 4 |     extension-element-prefixes="exsl"
 | 
|---|
 | 5 |     version="1.0">
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | <!-- XSLT stylesheet to extract commands from [B,H]LFS books. -->
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 |   <xsl:template match="/">
 | 
|---|
 | 10 |     <xsl:apply-templates select="//sect1"/>
 | 
|---|
 | 11 |   </xsl:template>
 | 
|---|
 | 12 | 
 | 
|---|
 | 13 |   <xsl:template match="sect1">
 | 
|---|
 | 14 |       <!-- The dirs names -->
 | 
|---|
 | 15 |     <xsl:variable name="pi-dir" select="../processing-instruction('dbhtml')"/>
 | 
|---|
 | 16 |     <xsl:variable name="pi-dir-value" select="substring-after($pi-dir,'dir=')"/>
 | 
|---|
 | 17 |     <xsl:variable name="quote-dir" select="substring($pi-dir-value,1,1)"/>
 | 
|---|
 | 18 |     <xsl:variable name="dirname" select="substring-before(substring($pi-dir-value,2),$quote-dir)"/>
 | 
|---|
 | 19 |       <!-- The file names -->
 | 
|---|
 | 20 |     <xsl:variable name="pi-file" select="processing-instruction('dbhtml')"/>
 | 
|---|
 | 21 |     <xsl:variable name="pi-file-value" select="substring-after($pi-file,'filename=')"/>
 | 
|---|
 | 22 |     <xsl:variable name="filename" select="substring-before(substring($pi-file-value,2),'.html')"/>
 | 
|---|
 | 23 |       <!-- The build order -->
 | 
|---|
 | 24 |     <xsl:variable name="position" select="position()"/>
 | 
|---|
 | 25 |     <xsl:variable name="order">
 | 
|---|
 | 26 |       <xsl:choose>
 | 
|---|
 | 27 |         <xsl:when test="string-length($position) = 1">
 | 
|---|
 | 28 |           <xsl:text>00</xsl:text>
 | 
|---|
 | 29 |           <xsl:value-of select="$position"/>
 | 
|---|
 | 30 |         </xsl:when>
 | 
|---|
 | 31 |         <xsl:when test="string-length($position) = 2">
 | 
|---|
 | 32 |           <xsl:text>0</xsl:text>
 | 
|---|
 | 33 |           <xsl:value-of select="$position"/>
 | 
|---|
 | 34 |         </xsl:when>
 | 
|---|
 | 35 |         <xsl:otherwise>
 | 
|---|
 | 36 |           <xsl:value-of select="$position"/>
 | 
|---|
 | 37 |         </xsl:otherwise>
 | 
|---|
 | 38 |       </xsl:choose>
 | 
|---|
 | 39 |     </xsl:variable>
 | 
|---|
 | 40 |       <!-- Creating dirs and files -->
 | 
|---|
 | 41 |     <exsl:document href="{$dirname}/{$order}-{$filename}" method="text">
 | 
|---|
 | 42 |       <xsl:apply-templates select=".//screen"/>
 | 
|---|
 | 43 |     </exsl:document>
 | 
|---|
 | 44 |   </xsl:template>
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 |   <xsl:template match="screen">
 | 
|---|
 | 47 |     <xsl:if test="child::* = userinput">
 | 
|---|
 | 48 |       <xsl:choose>
 | 
|---|
 | 49 |         <xsl:when test="@role = 'nodump'"/>
 | 
|---|
 | 50 |         <xsl:when test="@role = 'root'">
 | 
|---|
 | 51 |           <xsl:text>
</xsl:text>
 | 
|---|
 | 52 |           <xsl:text># Run this as root</xsl:text>
 | 
|---|
 | 53 |           <xsl:apply-templates select="userinput"/>
 | 
|---|
 | 54 |           <xsl:text># End root commands</xsl:text>
 | 
|---|
 | 55 |           <xsl:text>
</xsl:text>
 | 
|---|
 | 56 |         </xsl:when>
 | 
|---|
 | 57 |         <xsl:otherwise>
 | 
|---|
 | 58 |           <xsl:apply-templates select="userinput"/>
 | 
|---|
 | 59 |         </xsl:otherwise>
 | 
|---|
 | 60 |       </xsl:choose>
 | 
|---|
 | 61 |     </xsl:if>
 | 
|---|
 | 62 |   </xsl:template>
 | 
|---|
 | 63 | 
 | 
|---|
 | 64 |   <xsl:template match="userinput">
 | 
|---|
 | 65 |     <xsl:text>
</xsl:text>
 | 
|---|
 | 66 |     <xsl:if test=".//replaceable">
 | 
|---|
 | 67 |       <xsl:text># This block must be edited to suit your needs.</xsl:text>
 | 
|---|
 | 68 |     </xsl:if>
 | 
|---|
 | 69 |     <xsl:text>
</xsl:text>
 | 
|---|
 | 70 |     <xsl:apply-templates/>
 | 
|---|
 | 71 |     <xsl:text>
</xsl:text>
 | 
|---|
 | 72 |     <xsl:if test=".//replaceable">
 | 
|---|
 | 73 |       <xsl:text># End of editable block.</xsl:text>
 | 
|---|
 | 74 |     </xsl:if>
 | 
|---|
 | 75 |     <xsl:text>
</xsl:text>
 | 
|---|
 | 76 |   </xsl:template>
 | 
|---|
 | 77 | 
 | 
|---|
 | 78 |   <xsl:template match="replaceable">
 | 
|---|
 | 79 |     <xsl:text>**EDITME</xsl:text>
 | 
|---|
 | 80 |     <xsl:apply-templates/>
 | 
|---|
 | 81 |     <xsl:text>EDITME**</xsl:text>
 | 
|---|
 | 82 |   </xsl:template>
 | 
|---|
 | 83 | 
 | 
|---|
 | 84 | </xsl:stylesheet>
 | 
|---|