Shlomi Fish avatar Shlomi Fish committed 61186ec

Perform the DocBook 5/XSLT chunking properly.

See:

http://www.sagehill.net/docbookxsl/ChunkingCustomization.html

Comments (0)

Files changed (4)

 
 DOCBOOK5_RELAXNG = rng/docbook.rng
 DOCBOOK5_XSL_STYLESHEETS_PATH := /usr/share/sgml/docbook/xsl-ns-stylesheets
-DOCBOOK5_XSL_ONECHUNK_XSLT_STYLESHEET := lib/sgml/shlomif-docbook/xsl-5-stylesheets/shlomif-essays-5-xhtml-onechunk.xsl
+DOCBOOK5_XSL_ONECHUNK_XSLT_STYLESHEET := lib/sgml/shlomif-docbook/xsl-5-stylesheets/mychunk.xsl
+DOCBOOK5_XSL_OTHER_CUSTOM_XSLT_STYLESHEETS := lib/sgml/shlomif-docbook/xsl-5-stylesheets/shlomif-db5-xhtml-mydocbook.xsl
+DOCBOOK5_XSL_ALL_CUSTOM_STYLESHEETS = $(DOCBOOK5_XSL_ONECHUNK_XSLT_STYLESHEET) $(DOCBOOK5_XSL_OTHER_CUSTOM_XSLT_STYLESHEETS)
 
 $(BAD_ELEMENTS_DB5): $(BAD_ELEMENTS_XSLT) $(BAD_ELEMENTS_SOURCE_XML)
 	jing lib/XML-Grammar-Vered/vered-xml.rng $(BAD_ELEMENTS_SOURCE_XML)
 
 # -x lib/sgml/shlomif-docbook/xsl-5-stylesheets/shlomif-essays-5-xhtml-onechunk.xsl
 # --basepath $(HOME)/Download/unpack/file/docbook/docbook-xsl-ns-snapshot
-$(BAD_ELEMENTS_XHTML): $(BAD_ELEMENTS_DB5) $(DOCBOOK5_XSL_ONECHUNK_XSLT_STYLESHEET)
+$(BAD_ELEMENTS_XHTML): $(BAD_ELEMENTS_DB5) $(DOCBOOK5_XSL_ALL_CUSTOM_STYLESHEETS)
 	jing $(DOCBOOK5_RELAXNG) $<
 	docmake --stringparam "root.filename=$@.temp.xml" --basepath $(DOCBOOK5_XSL_STYLESHEETS_PATH) -x $(DOCBOOK5_XSL_ONECHUNK_XSLT_STYLESHEET) xhtml-1_1 $<
 	xsltproc --output $@ ./bin/clean-up-docbook-xhtml-1.1.xslt $@.temp.xml.html

lib/sgml/shlomif-docbook/xsl-5-stylesheets/mychunk.xsl

+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook"
+xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl d">
+
+<!-- ********************************************************************
+     $Id: chunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="shlomif-db5-xhtml-mydocbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name.
+     They will have import precedence over the original
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<xsl:import href="onechunk.xsl" />
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="chunk-code.xsl"/>
+
+
+</xsl:stylesheet>

lib/sgml/shlomif-docbook/xsl-5-stylesheets/shlomif-db5-xhtml-mydocbook.xsl

+<?xml version='1.0' encoding='UTF-8'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:db="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook" xmlns:vrd="http://www.shlomifish.org/open-source/projects/XML-Grammar/Vered/" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+
+    <xsl:import href="shlomif-essays-5-xhtml-common.xsl" />
+
+    <!-- Avoid Generating a Table-of-Contents-->
+    <xsl:param name="generate.toc">
+        article toc
+    </xsl:param>
+
+<!-- Disable the title="" attribute in sections. -->
+<xsl:template name="generate.html.title">
+</xsl:template>
+
+<xsl:template match="d:article" priority="1">
+    <xsl:call-template name="id.warning"/>
+
+    <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="inherit" select="1"/>
+        </xsl:call-template>
+        <xsl:call-template name="id.attribute">
+            <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+
+        <xsl:call-template name="article.titlepage"/>
+
+        <xsl:variable name="toc.params">
+            <xsl:call-template name="find.path.params">
+                <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+            </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:call-template name="make.lots">
+            <xsl:with-param name="toc.params" select="$toc.params"/>
+            <xsl:with-param name="toc">
+                <xsl:call-template name="component.toc">
+                    <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+            </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates/>
+        <xsl:call-template name="process.footnotes"/>
+    </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
+

lib/sgml/shlomif-docbook/xsl-5-stylesheets/shlomif-essays-5-xhtml-onechunk.xsl

-<?xml version='1.0' encoding='UTF-8'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:db="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook" xmlns:vrd="http://www.shlomifish.org/open-source/projects/XML-Grammar/Vered/" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml">
-
-    <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/xhtml-1_1/onechunk.xsl" />
-    <xsl:import href="shlomif-essays-5-xhtml-common.xsl" />
-
-    <!-- Avoid Generating a Table-of-Contents-->
-    <xsl:param name="generate.toc">
-        article toc
-    </xsl:param>
-
-<!-- Disable the title="" attribute in sections. -->
-<xsl:template name="generate.html.title">
-</xsl:template>
-
-<!--
-    * Temporarily commenting out.
-<xsl:template match="d:article">
-    <xsl:call-template name="id.warning"/>
-
-    <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
-        <xsl:call-template name="common.html.attributes">
-            <xsl:with-param name="inherit" select="1"/>
-        </xsl:call-template>
-        <xsl:call-template name="id.attribute">
-            <xsl:with-param name="conditional" select="0"/>
-        </xsl:call-template>
-
-        <xsl:call-template name="article.titlepage"/>
-
-        <xsl:variable name="toc.params">
-            <xsl:call-template name="find.path.params">
-                <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
-            </xsl:call-template>
-        </xsl:variable>
-
-        <xsl:call-template name="make.lots">
-            <xsl:with-param name="toc.params" select="$toc.params"/>
-            <xsl:with-param name="toc">
-                <xsl:call-template name="component.toc">
-                    <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
-                </xsl:call-template>
-            </xsl:with-param>
-        </xsl:call-template>
-
-        <xsl:apply-templates/>
-        <xsl:call-template name="process.footnotes"/>
-    </xsl:element>
-</xsl:template>
--->
-
-</xsl:stylesheet>
-
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.