hgbook

diff stylesheets/all-ids.xsl @ 709:f9f71850ae1a

Merge with foozy
author Bryan O'Sullivan <bos@serpentine.com>
date Fri Aug 14 12:10:47 2009 -0700 (2009-08-14)
parents 23dc79421e06
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/stylesheets/all-ids.xsl	Fri Aug 14 12:10:47 2009 -0700
     1.3 @@ -0,0 +1,40 @@
     1.4 +<?xml version="1.0" encoding="utf-8"?>
     1.5 +
     1.6 +<!-- Prepare an ASCII dump file of all IDs, and the pages in which
     1.7 +     they live, for loading into a database. Assumes one-level chunked
     1.8 +     HTML output, with each chunk containing either a chapter or
     1.9 +     sect1. -->
    1.10 +
    1.11 +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    1.12 +                version="1.0">
    1.13 +
    1.14 +  <xsl:output method="text"/>
    1.15 +  <xsl:strip-space elements="title"/>
    1.16 +
    1.17 +  <xsl:template match="/">
    1.18 +    <xsl:for-each select="//preface|//chapter|//appendix|//bibliography|//sect1">
    1.19 +      <xsl:variable name="id">
    1.20 +        <xsl:choose>
    1.21 +          <xsl:when test="local-name(.)='sect1'">
    1.22 +            <xsl:value-of select="../@id"/>
    1.23 +          </xsl:when>
    1.24 +          <xsl:otherwise>
    1.25 +            <xsl:value-of select="@id"/>
    1.26 +          </xsl:otherwise>
    1.27 +        </xsl:choose>
    1.28 +      </xsl:variable>
    1.29 +      <xsl:variable name="sectitle">
    1.30 +        <xsl:value-of select="normalize-space(./title)"/>
    1.31 +      </xsl:variable>
    1.32 +      <xsl:for-each select=".//para[@id]|.//programlisting[@id]|.//screen[@id]">
    1.33 +        <xsl:value-of select="@id"/>
    1.34 +        <xsl:text>|</xsl:text>
    1.35 +        <xsl:copy-of select="$id"/>
    1.36 +        <xsl:text>|</xsl:text>
    1.37 +        <xsl:copy-of select="$sectitle"/>
    1.38 +        <xsl:text>&#x0a;</xsl:text>
    1.39 +      </xsl:for-each>
    1.40 +    </xsl:for-each>
    1.41 +  </xsl:template>
    1.42 +
    1.43 +</xsl:stylesheet>