]> granicus.if.org Git - docbook-dsssl/commitdiff
Added support for manifest file as requested by Nik in #552945
authorJirka Kosek <jirka@kosek.cz>
Fri, 10 May 2002 12:26:01 +0000 (12:26 +0000)
committerJirka Kosek <jirka@kosek.cz>
Fri, 10 May 2002 12:26:01 +0000 (12:26 +0000)
xsl/html/chunk.xsl
xsl/html/manifest.xsl [new file with mode: 0644]
xsl/html/param.ent
xsl/html/param.xweb
xsl/params/generate.manifest.xml [new file with mode: 0644]
xsl/params/manifest.xml [new file with mode: 0644]

index 06959100b9861aec51a1b2b78ca2705fefad2a5c..af42e570e721ef6ce9944f8fee86995cdfe97eb4 100644 (file)
@@ -5,6 +5,7 @@
 
 <xsl:import href="docbook.xsl"/>
 <xsl:import href="chunk-common.xsl"/>
+<xsl:include href="manifest.xsl"/>
 
 <xsl:param name="onechunk" select="0"/>
 
           <xsl:if test="$tex.math.in.alt != ''">
             <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
           </xsl:if>
+          <xsl:if test="$generate.manifest != 0">
+            <xsl:call-template name="generate.manifest">
+              <xsl:with-param name="node" select="key('id',$rootid)"/>
+            </xsl:call-template>
+          </xsl:if>
         </xsl:otherwise>
       </xsl:choose>
     </xsl:when>
       <xsl:if test="$tex.math.in.alt != ''">
         <xsl:apply-templates select="/" mode="collect.tex.math"/>
       </xsl:if>
+      <xsl:if test="$generate.manifest != 0">
+        <xsl:call-template name="generate.manifest"/>
+      </xsl:if>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
diff --git a/xsl/html/manifest.xsl b/xsl/html/manifest.xsl
new file mode 100644 (file)
index 0000000..0c9e3ed
--- /dev/null
@@ -0,0 +1,72 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+               version="1.0"
+                exclude-result-prefixes="doc">
+
+<xsl:template name="generate.manifest">
+  <xsl:param name="node" select="/"/>
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="$manifest"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates select="$node" mode="enumerate-files"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$default.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |reference|refentry
+                     |sect1|sect2|sect3|sect4|sect5
+                     |section
+                     |book/glossary|article/glossary
+                     |book/bibliography|article/bibliography
+                     |book/index|article/index
+                     |colophon"
+              mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name" select="concat('ln-',$id,$html.ext)"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject"
+                      select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
index 52d30ffb38819b869c84c49377eceb71dc1546e9..3dd1ffd94a14c382de6013b871cf5bc3673befc3 100644 (file)
@@ -43,6 +43,7 @@
 <!ENTITY generate.id.attributes SYSTEM "../params/generate.id.attributes.xml">
 <!ENTITY generate.index SYSTEM "../params/generate.index.xml">
 <!ENTITY generate.legalnotice.link SYSTEM "../params/generate.legalnotice.link.xml">
+<!ENTITY generate.manifest SYSTEM "../params/generate.manifest.xml">
 <!ENTITY generate.section.toc.level SYSTEM "../params/generate.section.toc.level.xml">
 <!ENTITY generate.toc SYSTEM "../params/generate.toc.xml">
 <!ENTITY glossary.collection SYSTEM "../params/glossary.collection.xml">
@@ -80,6 +81,7 @@
 <!ENTITY make.valid.html SYSTEM "../params/make.valid.html.xml">
 <!ENTITY make.single.year.ranges SYSTEM "../params/make.single.year.ranges.xml">
 <!ENTITY make.year.ranges SYSTEM "../params/make.year.ranges.xml">
+<!ENTITY manifest SYSTEM "../params/manifest.xml">
 <!ENTITY manual.toc SYSTEM "../params/manual.toc.xml">
 <!ENTITY navig.graphics SYSTEM "../params/navig.graphics.xml">
 <!ENTITY navig.graphics.extension SYSTEM "../params/navig.graphics.extension.xml">
index cf16198a468e88e9add98ea924230351f429713b..8b0ed661a26ff5bb89c62cfa7e55409645872c1d 100644 (file)
@@ -225,6 +225,8 @@ to be incomplete. Don't forget to read the source, too :-)</para>
 &html.ext;
 &root.filename;
 &base.dir;
+&generate.manifest;
+&manifest;
 &chunk.toc;
 &chunk.section.depth;
 &chunk.first.sections;
@@ -348,6 +350,7 @@ around all these parameters.</para>
 <src:fragref linkend="generate.id.attributes.frag"/>
 <src:fragref linkend="generate.index.frag"/>
 <src:fragref linkend="generate.legalnotice.link.frag"/>
+<src:fragref linkend="generate.manifest.frag"/>
 <src:fragref linkend="generate.section.toc.level.frag"/>
 <src:fragref linkend="generate.toc.frag"/>
 <src:fragref linkend="glossary.collection.frag"/>
@@ -385,6 +388,7 @@ around all these parameters.</para>
 <src:fragref linkend="make.single.year.ranges.frag"/>
 <src:fragref linkend="make.valid.html.frag"/>
 <src:fragref linkend="make.year.ranges.frag"/>
+<src:fragref linkend="manifest.frag"/>
 <src:fragref linkend="manual.toc.frag"/>
 <src:fragref linkend="navig.graphics.extension.frag"/>
 <src:fragref linkend="navig.graphics.frag"/>
diff --git a/xsl/params/generate.manifest.xml b/xsl/params/generate.manifest.xml
new file mode 100644 (file)
index 0000000..371b54e
--- /dev/null
@@ -0,0 +1,22 @@
+<refentry id="generate.manifest">
+<refmeta>
+<refentrytitle>generate.manifest</refentrytitle>
+<refmiscinfo role="type">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.manifest</refname>
+<refpurpose>This parameter controls generating of manifest file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='generate.manifest.frag'>
+<xsl:param name="generate.manifest" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+
+<para>FIXME:</para>
+
+</refsect1>
+</refentry>
diff --git a/xsl/params/manifest.xml b/xsl/params/manifest.xml
new file mode 100644 (file)
index 0000000..9367d74
--- /dev/null
@@ -0,0 +1,22 @@
+<refentry id="manifest">
+<refmeta>
+<refentrytitle>manifest</refentrytitle>
+<refmiscinfo role="type">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manifest</refname>
+<refpurpose>Name of manifest file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='manifest.frag'>
+<xsl:param name="manifest" select="'HTML.manifest'"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+
+<para>FIXME:</para>
+
+</refsect1>
+</refentry>