diff options
author | Manuel Canales Esparcia <manuel@linuxfromscratch.org> | 2005-08-29 19:11:10 +0000 |
---|---|---|
committer | Manuel Canales Esparcia <manuel@linuxfromscratch.org> | 2005-08-29 19:11:10 +0000 |
commit | 2c5e4d59948440468cb722c1f3675e7396a20c33 (patch) | |
tree | f15cba79885514aa363b58beadaec39d938ccdf3 /stylesheets/dump-commands.xsl | |
parent | c9109f25c50599cc831b2610a8b568dd620aff25 (diff) |
Added dump-commands.xsl.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@6774 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'stylesheets/dump-commands.xsl')
-rw-r--r-- | stylesheets/dump-commands.xsl | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/stylesheets/dump-commands.xsl b/stylesheets/dump-commands.xsl new file mode 100644 index 000000000..a91bb1cac --- /dev/null +++ b/stylesheets/dump-commands.xsl @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + extension-element-prefixes="exsl" + version="1.0"> + +<!-- XSLT stylesheet to extract commands from [B,H]LFS books. --> + + <xsl:template match="/"> + <xsl:apply-templates select="//sect1"/> + </xsl:template> + + <xsl:template match="sect1"> + <!-- The dirs names --> + <xsl:variable name="pi-dir" select="../processing-instruction('dbhtml')"/> + <xsl:variable name="pi-dir-value" select="substring-after($pi-dir,'dir=')"/> + <xsl:variable name="quote-dir" select="substring($pi-dir-value,1,1)"/> + <xsl:variable name="dirname" select="substring-before(substring($pi-dir-value,2),$quote-dir)"/> + <!-- The file names --> + <xsl:variable name="pi-file" select="processing-instruction('dbhtml')"/> + <xsl:variable name="pi-file-value" select="substring-after($pi-file,'filename=')"/> + <xsl:variable name="filename" select="substring-before(substring($pi-file-value,2),'.html')"/> + <!-- The build order --> + <xsl:variable name="position" select="position()"/> + <xsl:variable name="order"> + <xsl:choose> + <xsl:when test="string-length($position) = 1"> + <xsl:text>00</xsl:text> + <xsl:value-of select="$position"/> + </xsl:when> + <xsl:when test="string-length($position) = 2"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$position"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$position"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <!-- Creating dirs and files --> + <exsl:document href="{$dirname}/{$order}-{$filename}" method="text"> + <xsl:apply-templates select=".//screen"/> + </exsl:document> + </xsl:template> + + <xsl:template match="screen"> + <xsl:if test="child::* = userinput"> + <xsl:choose> + <xsl:when test="@role = 'nodump'"/> + <xsl:when test="@role = 'root'"> + <xsl:text>
</xsl:text> + <xsl:text># Run this as root</xsl:text> + <xsl:apply-templates select="userinput"/> + <xsl:text># End root commands</xsl:text> + <xsl:text>
</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="userinput"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:template> + + <xsl:template match="userinput"> + <xsl:text>
</xsl:text> + <xsl:if test=".//replaceable"> + <xsl:text># This block must be edited to suit your needs.</xsl:text> + </xsl:if> + <xsl:text>
</xsl:text> + <xsl:apply-templates/> + <xsl:text>
</xsl:text> + <xsl:if test=".//replaceable"> + <xsl:text># End of editable block.</xsl:text> + </xsl:if> + <xsl:text>
</xsl:text> + </xsl:template> + + <xsl:template match="replaceable"> + <xsl:text>**EDITME</xsl:text> + <xsl:apply-templates/> + <xsl:text>EDITME**</xsl:text> + </xsl:template> + +</xsl:stylesheet> |