Browse Source

Added dump-commands.xsl.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@6774 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Manuel Canales Esparcia 20 years ago
parent
commit
2c5e4d5994
4 changed files with 93 additions and 4 deletions
  1. 5 0
      Makefile
  2. 2 2
      chapter02/creatingfilesystem.xml
  3. 2 2
      prologue/typography.xml
  4. 84 0
      stylesheets/dump-commands.xsl

+ 5 - 0
Makefile

@@ -1,4 +1,5 @@
 BASEDIR=~/lfs-book
 BASEDIR=~/lfs-book
+DUMPDIR=~/lfs-commands
 CHUNK_QUIET=0
 CHUNK_QUIET=0
 PDF_OUTPUT=LFS-BOOK.pdf
 PDF_OUTPUT=LFS-BOOK.pdf
 NOCHUNKS_OUTPUT=LFS-BOOK.html
 NOCHUNKS_OUTPUT=LFS-BOOK.html
@@ -61,6 +62,10 @@ nochunks:
 	sed -i -e "s@text/html@application/xhtml+xml@g"  \
 	sed -i -e "s@text/html@application/xhtml+xml@g"  \
 	  $(BASEDIR)/$(NOCHUNKS_OUTPUT)
 	  $(BASEDIR)/$(NOCHUNKS_OUTPUT)
 
 
+dump-commands:
+	xsltproc --xinclude --nonet --output $(DUMPDIR)/ \
+	   stylesheets/dump-commands.xsl index.xml
+
 validate:
 validate:
 	xmllint --noout --nonet --xinclude --postvalid index.xml
 	xmllint --noout --nonet --xinclude --postvalid index.xml
 
 

+ 2 - 2
chapter02/creatingfilesystem.xml

@@ -29,7 +29,7 @@ e2fsprogs; you will get an error similar to <quote>unsupported filesystem
 features, upgrade your e2fsprogs</quote>.  To check if your host system
 features, upgrade your e2fsprogs</quote>.  To check if your host system
 uses custom enhancements, run the following command:</para>
 uses custom enhancements, run the following command:</para>
 
 
-<screen><userinput>debugfs -R feature /dev/<replaceable>[xxx]</replaceable></userinput></screen>
+<screen role="nodump"><userinput>debugfs -R feature /dev/<replaceable>[xxx]</replaceable></userinput></screen>
 
 
 <para>If the output contains features other than: dir_index; filetype;
 <para>If the output contains features other than: dir_index; filetype;
 large_file; resize_inode or sparse_super then your host system may have custom
 large_file; resize_inode or sparse_super then your host system may have custom
@@ -37,7 +37,7 @@ enhancements.  In that case, to avoid later problems, you should compile the
 stock e2fsprogs package and use the resulting binaries to re-create the
 stock e2fsprogs package and use the resulting binaries to re-create the
 filesystem on your LFS partition:</para>
 filesystem on your LFS partition:</para>
 
 
-<screen><userinput>cd /tmp
+<screen role="nodump"><userinput>cd /tmp
 tar xjf /path/to/sources/e2fsprogs-&e2fsprogs-version;.tar.bz2
 tar xjf /path/to/sources/e2fsprogs-&e2fsprogs-version;.tar.bz2
 cd e2fsprogs-&e2fsprogs-version;
 cd e2fsprogs-&e2fsprogs-version;
 mkdir build
 mkdir build

+ 2 - 2
prologue/typography.xml

@@ -12,7 +12,7 @@ conventions used throughout this book. This section contains some
 examples of the typographical format found throughout Linux From
 examples of the typographical format found throughout Linux From
 Scratch.</para>
 Scratch.</para>
 
 
-<screen><userinput>./configure --prefix=/usr</userinput></screen>
+<screen role="nodump"><userinput>./configure --prefix=/usr</userinput></screen>
 
 
 <para>This form of text is designed to be typed exactly as seen unless
 <para>This form of text is designed to be typed exactly as seen unless
 otherwise noted in the surrounding text. It is also used in the
 otherwise noted in the surrounding text. It is also used in the
@@ -37,7 +37,7 @@ purpose is to emphasize important points or items.</para>
 community and to external pages.  It includes HOWTOs, download locations,
 community and to external pages.  It includes HOWTOs, download locations,
 and websites.</para>
 and websites.</para>
 
 
-<screen><userinput>cat &gt; $LFS/etc/group &lt;&lt; "EOF"
+<screen role="nodump"><userinput>cat &gt; $LFS/etc/group &lt;&lt; "EOF"
 <literal>root:x:0:
 <literal>root:x:0:
 bin:x:1:
 bin:x:1:
 ......</literal>
 ......</literal>

+ 84 - 0
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>&#xA;</xsl:text>
+          <xsl:text># Run this as root</xsl:text>
+          <xsl:apply-templates select="userinput"/>
+          <xsl:text># End root commands</xsl:text>
+          <xsl:text>&#xA;</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>&#xA;</xsl:text>
+    <xsl:if test=".//replaceable">
+      <xsl:text># This block must be edited to suit your needs.</xsl:text>
+    </xsl:if>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:if test=".//replaceable">
+      <xsl:text># End of editable block.</xsl:text>
+    </xsl:if>
+    <xsl:text>&#xA;</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>