html5/markup-spec/tools generate-spec-source.xsl,1.167,1.168 specgen.xsl,1.25,1.26

Update of /sources/public/html5/markup-spec/tools
In directory hutz:/tmp/cvs-serv27465/tools

Modified Files:
	generate-spec-source.xsl specgen.xsl 
Log Message:
checkpointing initial build of chunked output; not working yet completely - links on TOC not correct yet, no navigation on individual pages yet


Index: generate-spec-source.xsl
===================================================================
RCS file: /sources/public/html5/markup-spec/tools/generate-spec-source.xsl,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -d -r1.167 -r1.168
--- generate-spec-source.xsl	30 Apr 2009 10:40:49 -0000	1.167
+++ generate-spec-source.xsl	1 May 2009 07:01:21 -0000	1.168
@@ -401,7 +401,7 @@
             </xsl:for-each>
           </section>
           <xsl:text>&#10;    </xsl:text>
-          <section id="other-shared-attrs">
+          <section id="shared-attrs">
             <xsl:text>&#10;        </xsl:text>
             <h2>Other shared attributes</h2>
           <section id="common-command-attrs">

Index: specgen.xsl
===================================================================
RCS file: /sources/public/html5/markup-spec/tools/specgen.xsl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- specgen.xsl	25 Dec 2008 08:18:01 -0000	1.25
+++ specgen.xsl	1 May 2009 07:01:22 -0000	1.26
@@ -11,6 +11,13 @@
     media-type='text/html; charset=us-ascii'
     indent="yes"/>
 
+  <xsl:include href="chunker.xsl"/>
+  <xsl:param name="chunk" select="0"/>
+
+  <xsl:key name="id" match="*" use="@id"/>
+  <xsl:key name="chunk-for-id" match="*[@id]" use="ancestor::h:section[child::h:h2[@class='element-head']]
+    |ancestor::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))]"/>
+
   <xsl:variable name='sectionsID'>this_sections</xsl:variable>
   <xsl:variable name='appendicesID'>appendices</xsl:variable>
 
@@ -27,12 +34,12 @@
   <xsl:variable name="groupinfo-nodeset" select="$info/h:*[@id = 'groupinfo']"/>
 
   <xsl:template match='/'>
-    <xsl:if test='$maturity = "ED"'>
-      <xsl:comment> * </xsl:comment>
-      <xsl:comment> * Note: This file was generated from source at <xsl:value-of select="$source"/><xsl:text> </xsl:text></xsl:comment>
-      <xsl:comment> * Run the "make" command to regenerate it. </xsl:comment>
-      <xsl:comment> * </xsl:comment>
-    </xsl:if>
+    <!-- * <xsl:if test='$maturity = "ED"'> -->
+      <!-- * <xsl:comment> * </xsl:comment> -->
+      <!-- * <xsl:comment> * Note: This file was generated from source at <xsl:value-of select="$source"/><xsl:text> </xsl:text></xsl:comment> -->
+      <!-- * <xsl:comment> * Run the "make" command to regenerate it. </xsl:comment> -->
+      <!-- * <xsl:comment> * </xsl:comment> -->
+    <!-- * </xsl:if> -->
     <xsl:apply-templates select='/*'/>
   </xsl:template>
 
@@ -597,13 +604,71 @@
   <!-- * </xsl:template> -->
 
   <xsl:template match='h:section'>
-    <div>
-      <xsl:copy-of select='@*[namespace-uri()="" or namespace-uri="http://www.w3.org/XML/1998/namespace"]'/>
-      <xsl:attribute name="class">section</xsl:attribute>
-      <xsl:apply-templates select='node()'/>
-    </div>
+    <xsl:variable name="content">
+      <div>
+        <xsl:copy-of select='@*[namespace-uri()="" or namespace-uri="http://www.w3.org/XML/1998/namespace"]'/>
+        <xsl:attribute name="class">section</xsl:attribute>
+        <xsl:apply-templates select='node()'/>
+      </div>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="not($chunk=0) and (count(ancestor::h:section)=0 or child::h:h2[@class='element-head'])">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="quiet" select="$quiet"/>
+          <xsl:with-param name="content" select="$content"/>
+          <xsl:with-param name="title" select="normalize-space(h:h2)"/>
+          <xsl:with-param name="filename">
+            <xsl:value-of select="@id"/>
+            <xsl:text>.html</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$content"/>
+      </xsl:otherwise>
+    </xsl:choose>
   </xsl:template>
 
   <xsl:template match='*'/>
-</xsl:stylesheet>
 
+  <xsl:template match="h:a[@href[starts-with(.,'#')]]">
+    <!-- * href ID references in chunked output need to become intra-file -->
+    <!-- * references to IDs that are to targets in other files; so this -->
+    <!-- * template prepends the correct file name to all "bare" -->
+    <!-- * (filename-less) fragment href ID references -->
+    <xsl:choose>
+      <xsl:when test="not($chunk=0)">
+        <xsl:variable name="href" select="substring-after(@href,'#')"/>
+        <xsl:variable name="section"
+          select="key('id',$href)/ancestor-or-self::h:section[child::h:h2[@class='element-head']]
+          |key('id',$href)/ancestor::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))]
+          "/>
+        <xsl:if test="not($section/@id)">
+          <xsl:message>
+            <xsl:text>UNDEFINED: </xsl:text>
+            <xsl:value-of select="$href"/>
+            <xsl:text> in </xsl:text>
+            <xsl:value-of select="ancestor::h:section[child::h:h2[@class='element-head']]/@id
+              |ancestor::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))]/@id"/>
+            <xsl:text>.html</xsl:text>
+          </xsl:message>
+        </xsl:if>
+        <a>
+          <xsl:copy-of select="@*"/>
+          <xsl:attribute name="href">
+            <xsl:value-of select="concat($section/@id,'.html')"/>
+            <xsl:value-of select="@href"/>
+          </xsl:attribute>
+          <xsl:apply-templates/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <a>
+          <xsl:copy-of select="@*"/>
+          <xsl:apply-templates/>
+        </a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>

Received on Friday, 1 May 2009 07:01:36 UTC