html5/markup/tools chunker.xsl,1.13,1.14 generate-spec-source.xsl,1.287,1.288 specgen.xsl,1.75,1.76 toc.xsl,1.21,1.22

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

Modified Files:
	chunker.xsl generate-spec-source.xsl specgen.xsl toc.xsl 
Log Message:
added the beginnings of an alphabetical index


Index: generate-spec-source.xsl
===================================================================
RCS file: /sources/public/html5/markup/tools/generate-spec-source.xsl,v
retrieving revision 1.287
retrieving revision 1.288
diff -u -d -r1.287 -r1.288
--- generate-spec-source.xsl	2 Aug 2010 11:27:39 -0000	1.287
+++ generate-spec-source.xsl	4 Aug 2010 12:59:19 -0000	1.288
@@ -398,109 +398,101 @@
                   </xsl:otherwise>
                 </xsl:choose>
               </xsl:variable>
-              <xsl:variable name="tc-first">
-                <xsl:value-of select="translate(
-                  substring($first,1,1),
-                  'abcdefghijklmnopqrstuvwxyz',
-                  'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-                  )"/><xsl:value-of
-                  select="substring($first,2)"/>
-              </xsl:variable>
               <xsl:text>&#10;      </xsl:text>
               <xsl:if test="$pattern='uri'">
-                <section id="data-url-no-spaces-def" class="no-toc">
+                <section id="data-url-no-spaces-def" class="no-toc no-number">
                   <h2 class="common-subhead"><dfn id="data-url-no-spaces">URL</dfn></h2>
                   <xsl:copy-of
                     select="document('../src/datatypes.html')//
                     h:dd[preceding-sibling::h:dt='data-url-no-spaces'][not(position()=1)]/node()"/>
                 </section>
               </xsl:if>
-              <section id="{@id}-def" class="no-toc">
+              <section id="{@id}-def" class="no-toc no-number">
               <xsl:text>&#10;        </xsl:text>
                 <xsl:choose>
                   <xsl:when test="$pattern='tokens'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Set of space-separated tokens</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">set of space-separated tokens</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='browsing-context-name'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Browsing-context name</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">browsing-context name</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='browsing-context-name-or-keyword'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Browsing-context name or keyword</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">browsing-context name or keyword</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='hash-name'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Hash-name reference</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">hash-name reference</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='mediaquery'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Media-query list</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">media-query list</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='langcode'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Language tag</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">language tag</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='datetime'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Date and time</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">date and time</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='datetime-local'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Local date and time</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">local date and time</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='date-or-time'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Date or time</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">date or time</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='sandbox-allow-list'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Sandbox “allow” keywords list</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">sandbox “allow” keywords list</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='charset'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Character encoding name</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">character encoding name</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='charsetlist'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of character-encoding names</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of character-encoding names</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='keylabellist'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of key labels</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of key labels</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='default-style'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Default-style name</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">default-style name</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='meta-charset'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Meta-charset string</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">meta-charset string</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='refresh'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Refresh value</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">refresh value</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='mimetype'">
                     <h2 class="common-subhead"><dfn id="{@id}">MIME type</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='mimetypelist'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of MIME types</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of MIME types</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='emailaddresslist'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of e-mail addresses</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of e-mail addresses</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='emailaddress'">
-                    <h2 class="common-subhead"><dfn id="{@id}">E-mail address</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">e-mail address</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='float'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Floating-point number</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">floating-point number</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='float.non-negative'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Non-negative floating-point number</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">non-negative floating-point number</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='integer.non-negative'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Non-negative integer</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">non-negative integer</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='integer.positive'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Positive integer</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">positive integer</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='float.positive'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Positive floating-point number</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">positive floating-point number</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='uri.absolute'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Absolute URL</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">absolute URL</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='uri'">
                     <h2 class="common-subhead"><dfn id="{@id}">URL potentially surrounded by spaces</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='uris'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of URIs</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of URIs</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='id'">
                     <h2 class="common-subhead"><dfn id="{@id}">ID</dfn></h2>
@@ -509,24 +501,24 @@
                     <h2 class="common-subhead"><dfn id="{@id}">ID reference</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='idrefs'">
-                    <h2 class="common-subhead"><dfn id="{@id}">List of ID references</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">list of ID references</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='color'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Simple color</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">simple color</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='rectangle'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Rectangle coordinates</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">rectangle coordinates</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='circle'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Circle coordinates</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">circle coordinates</dfn></h2>
                   </xsl:when>
                   <xsl:when test="$pattern='polygon'">
-                    <h2 class="common-subhead"><dfn id="{@id}">Polygon coordinates</dfn></h2>
+                    <h2 class="common-subhead"><dfn id="{@id}">polygon coordinates</dfn></h2>
                   </xsl:when>
                   <xsl:otherwise>
                     <h2 class="common-subhead">
                       <dfn id="{@id}">
-                        <xsl:value-of select="$tc-first"/>
+                        <xsl:value-of select="$first"/>
                         <xsl:if test="$qualified">
                           <xsl:text> </xsl:text>
                           <xsl:value-of
@@ -559,14 +551,14 @@
               </section>
               <xsl:text>&#10;        </xsl:text>
               <xsl:if test="$pattern='tokens'">
-                <section id="data-unordered-tokens-def" class="no-toc">
-                  <h2 class="common-subhead"><dfn id="data-unordered-tokens">Unordered set of unique space-separated tokens</dfn></h2>
+                <section id="data-unordered-tokens-def" class="no-toc no-number">
+                  <h2 class="common-subhead"><dfn id="data-unordered-tokens">unordered set of unique space-separated tokens</dfn></h2>
                   <xsl:copy-of
                     select="document('../src/datatypes.html')//
                     h:dd[preceding-sibling::h:dt='unordered-tokens'][not(position()=1)]/node()"/>
                 </section>
-                <section id="data-ordered-tokens-def" class="no-toc">
-                  <h2 class="common-subhead"><dfn id="data-ordered-tokens">Ordered set of unique space-separated tokens</dfn></h2>
+                <section id="data-ordered-tokens-def" class="no-toc no-number">
+                  <h2 class="common-subhead"><dfn id="data-ordered-tokens">ordered set of unique space-separated tokens</dfn></h2>
                   <xsl:copy-of
                     select="document('../src/datatypes.html')//
                     h:dd[preceding-sibling::h:dt='ordered-tokens'][not(position()=1)]/node()"/>
@@ -848,6 +840,7 @@
           <!-- * <xsl:text>&#10;     </xsl:text> -->
         <xsl:text>&#10;  </xsl:text>
         </div>
+        <xsl:text>&#10;  </xsl:text>
         <script src="js/jump-indexes.js" type="text/javascript"></script>
         <xsl:text>&#10;</xsl:text>
         <script src="js/dfn.js" type="text/javascript"></script>
@@ -1576,6 +1569,9 @@
     <div class="no-number no-toc" id="{$name}-content-model">
       <xsl:text>&#10;        </xsl:text>
       <h2 class="element-subhead">Permitted contents</h2>
+      <xsl:if test="$name='a' or $name='canvas' or $name='del' or $name='ins' or $name='map' or $name='noscript'">
+        <a href="#transparent"></a>
+      </xsl:if>
       <div class="content-models">
       <xsl:text>&#10;        </xsl:text>
       <xsl:text>&#10;      </xsl:text>
@@ -2391,6 +2387,14 @@
         <xsl:text>&#10;            </xsl:text>
         <xsl:variable name="definition">
         <dt>
+          <xsl:if test="not(@href = '#global-attributes') and not(@href = '#common.attrs')">
+            <xsl:attribute name="id">
+              <xsl:value-of select="substring-after(@href,'#')"/>
+            </xsl:attribute>
+            <xsl:attribute name="title">
+              <xsl:value-of select="substring-after(@href,'#')"/>
+            </xsl:attribute>
+          </xsl:if>
           <xsl:variable name="spec-target">
             <xsl:choose>
               <xsl:when test="document('../src/map-attributes.html')//*[preceding-sibling::*=$ref]">
@@ -2440,7 +2444,8 @@
             <xsl:text>&#10;</xsl:text>
           </xsl:if>
           <xsl:choose>
-            <xsl:when test="$ref = 'common.attrs'">
+            <xsl:when test="$ref = 'common.attrs'
+              or $ref = 'global-attributes'">
               <a class="attribute-name"
                 title="global-attributes"
                 href="#global-attributes">
@@ -2617,8 +2622,6 @@
               </xsl:if>
               <xsl:text>&#10;</xsl:text>
               <a class="hash"
-                id="{substring-after(@href,'#')}"
-                title="{substring-after(@href,'#')}"
                 href="{@href}">#</a>
               <xsl:text>&#10;</xsl:text>
             </xsl:otherwise>
@@ -2725,6 +2728,7 @@
     <xsl:variable name="shape" select="substring-after($ref,'area.attrs.shape.')"/>
     <xsl:variable name="coords.pattern" select="concat('area.attrs.coords.',$shape)"/>
     <xsl:for-each select="$rnc-html">
+      <span class="qualified-attribute">
       <span class="attribute-name">shape</span>
       <xsl:text> = </xsl:text>
       <span class="attr-values">
@@ -2737,10 +2741,13 @@
           <xsl:with-param name="replacement">"</xsl:with-param>
         </xsl:call-template>
       </span>
+      </span>
       <xsl:if test="not($ref='area.attrs.shape.default')">
         <span class="punc postfix &amp;">&amp;</span>
         <xsl:text> </xsl:text>
-        <span class="attribute-name">coords</span>
+        <span class="attribute-name"
+          id="{$coords.pattern}"
+          >coords</span>
         <xsl:text> = </xsl:text>
         <span class="attr-values">
           <xsl:for-each select="key('elements',$coords.pattern)//*[@class='model']//h:a">
@@ -2753,7 +2760,6 @@
       </xsl:if>
       <xsl:text>&#10;</xsl:text>
       <a class="hash"
-        id="{$ref}"
         title="{$ref}"
         href="#{$ref}">
         <xsl:text>#</xsl:text>
@@ -2761,7 +2767,6 @@
       <xsl:text>&#10;</xsl:text>
       <xsl:if test="not($ref='area.attrs.shape.default')">
         <a class="hash"
-          id="{$coords.pattern}"
           title="{$coords.pattern}"
           href="#{$coords.pattern}"
           >

Index: specgen.xsl
===================================================================
RCS file: /sources/public/html5/markup/tools/specgen.xsl,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -d -r1.75 -r1.76
--- specgen.xsl	2 Aug 2010 11:27:39 -0000	1.75
+++ specgen.xsl	4 Aug 2010 12:59:19 -0000	1.76
@@ -2,6 +2,7 @@
                 xmlns:h='http://www.w3.org/1999/xhtml'
                 xmlns='http://www.w3.org/1999/xhtml'
                 xmlns:date="http://exslt.org/dates-and-times"
+                xmlns:exsl="http://exslt.org/common"
                 exclude-result-prefixes='h date'
                 version='1.0' id='xslt'>
   <xsl:output method='html' encoding='us-ascii'
@@ -13,8 +14,11 @@
   <xsl:param name="site">W3C</xsl:param>
   <xsl:param name="chunk" select="0"/>
   <xsl:param name="TOC-file"/>
+  <xsl:param name="toc-link" select="concat($TOC-file,'#unexpanded-toc')"/>
   <xsl:param name="aria" select="0"/>
   <xsl:key name="elements" match="*" use="@id"/>
+  <xsl:key name="dfn" match="h:dfn" use="substring-after(@id,string-length(@id))"/>
+  <xsl:key name="refs" match="h:a[starts-with(@href,'#')]" use="substring-after(@href,'#')"/>
   <xsl:key name="chunk" match="*[@id='elements']/h:section
     |//h:section[count(ancestor::h:section)=0]
     [not(@id='abstract')][not(@id='status')][not(@id='toc')]" use="@id"/>
@@ -68,6 +72,11 @@
           <link rel='stylesheet' href='http://www.w3.org/StyleSheets/TR/W3C-{$maturity}' type='text/css'/>
         </xsl:otherwise>
       </xsl:choose>
+      <xsl:if test="not($chunk=0)">
+        <link rel="next" href="intro.html" title="intro"/>
+        <link rel="index" href="index.html"/>
+        <link rel="contents" href="Overview.html#unexpanded-toc"/>
+      </xsl:if>
       <xsl:if test="$site='whatwg'">
         <style>
 body {
@@ -116,8 +125,192 @@
       </xsl:if>
       <xsl:call-template name="top"/>
       <xsl:apply-templates/>
+      <xsl:call-template name="make-index"/>
     </body>
   </xsl:template>
+  <xsl:template name="make-index">
+    <xsl:variable name="index-contents">
+    <xsl:text>&#10;</xsl:text>
+      <div id="index">
+        <xsl:text>&#10;</xsl:text>
+        <h2>Index <a class="hash" href="#index">#</a>
+          <xsl:text> </xsl:text>
+          <a class="toc-bak" href="{$TOC-file}#index-toc">T</a>
+        </h2>
+        <xsl:text>&#10;</xsl:text>
+        <xsl:for-each select="key('dfn','')">
+          <xsl:sort select="translate(normalize-space(.),
+            'abcdefghijklmnopqrstuvwxyz',
+            'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+            )"/>
+          <xsl:variable name="sourcepage"
+            select="key('elements',@id)/ancestor-or-self::h:section[child::h:h2[@class='element-head']]
+            |key('elements',@id)/ancestor-or-self::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))]
+            "/>
+          <div class="index-entry">
+            <xsl:text>&#10;</xsl:text>
+            <p>
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:choose>
+                    <xsl:when test="$chunk = 0">
+                      <xsl:value-of select="concat('#',@id)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="concat($sourcepage/@id,'.html#',@id)"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+                <xsl:value-of select="normalize-space(.)"/>
+                <xsl:if test="starts-with(@id,'refs')">
+                  <xsl:text> (specification)</xsl:text>
+                </xsl:if>
+              </a>
+            </p>
+            <xsl:text>&#10;</xsl:text>
+            <xsl:if test="count(key('refs',@id)) > 0">
+              <ul>
+                <xsl:text>&#10;</xsl:text>
+                <xsl:for-each select="key('refs',@id)">
+                  <xsl:variable name="href" select="@href"/>
+                  <xsl:variable name="id" select="generate-id(.)"/>
+                  <xsl:variable name="ref" select="substring-after(@href,'#')"/>
+                  <xsl:variable name="section" select="(ancestor::h:section[child::h:h2])[last()]"/>
+                  <xsl:variable name="page"
+                    select="key('elements',$section/@id)/ancestor-or-self::h:section[child::h:h2[@class='element-head']]
+                    |key('elements',$section/@id)/ancestor-or-self::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))]
+                    "/>
+                  <xsl:variable name="subsection" select="
+                    (ancestor::h:dt
+                    |ancestor::h:dd/preceding-sibling::h:dt[1]
+                    |(ancestor::h:*[child::h:h2])[last()])[last()]
+                    "/>
+                  <xsl:variable name="link-text">
+                    <xsl:choose>
+                      <xsl:when test="$section/*/h:span[@class='element']">
+                        <xsl:copy-of select="$section/*/h:span[@class='element']"/>
+                        <xsl:if test="$section/*/h:span[@class='elem-qualifier']">
+                          <xsl:copy-of select="$section/*/h:span[@class='elem-qualifier']"/>
+                        </xsl:if>
+                        <xsl:text> element</xsl:text>
+                      </xsl:when>
+                      <xsl:when test="$section/*[@class='datatype-desc']">
+                        <cite class="index">
+                          <xsl:value-of select="normalize-space($section/h:h2)"/>
+                        </cite>
+                        <xsl:text> data type</xsl:text>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <cite class="index">
+                          <xsl:value-of select="normalize-space($section/h:h2)"/>
+                        </cite>
+                        <xsl:text> section</xsl:text>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                    <xsl:choose>
+                      <xsl:when test="$subsection/@id = $section/@id">
+                        <xsl:if test="count($section//h:a[@href = $href]) > 1">
+                          <xsl:for-each select="$section//h:a[@href = $href]">
+                            <xsl:if test="generate-id(.) = $id and not(position() = 1)">
+                              <span class="index-counter">
+                                <xsl:text> [</xsl:text>
+                                <xsl:value-of select="position()"/>
+                                <xsl:text>]</xsl:text>
+                              </span>
+                            </xsl:if>
+                          </xsl:for-each>
+                        </xsl:if>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <xsl:text>: </xsl:text>
+                        <xsl:choose>
+                          <xsl:when test="$subsection/h:h2">
+                            <cite class="index">
+                              <xsl:value-of select="normalize-space($subsection/h:h2)"/>
+                            </cite>
+                          </xsl:when>
+                          <xsl:when test="$subsection/self::h:dt">
+                            <xsl:choose>
+                              <xsl:when test="$subsection//*[@class='qualified-attribute']">
+                                <xsl:copy-of select="$subsection//*[@class='qualified-attribute']"/>
+                                <xsl:text> attribute </xsl:text>
+                              </xsl:when>
+                              <xsl:when test="$subsection//*[@class='attribute-name']">
+                                <xsl:copy-of select="$subsection//*[@class='attribute-name']"/>
+                                <xsl:text> attribute</xsl:text>
+                              </xsl:when>
+                              <xsl:otherwise>
+                                <cite class="index">
+                                  <xsl:value-of select="normalize-space($subsection)"/>
+                                </cite>
+                              </xsl:otherwise>
+                            </xsl:choose>
+                          </xsl:when>
+                          <xsl:otherwise>
+                            <xsl:text>@@FIXME@@</xsl:text>
+                          </xsl:otherwise>
+                        </xsl:choose>
+                        <xsl:if test="count($subsection//h:a[@href = $href]) > 1">
+                          <xsl:for-each select="$subsection//h:a[@href = $href]">
+                            <xsl:if test="generate-id(.) = $id and not(position() = 1)">
+                              <span class="index-counter">
+                                <xsl:text> [</xsl:text>
+                                <xsl:value-of select="position()"/>
+                                <xsl:text>]</xsl:text>
+                              </span>
+                            </xsl:if>
+                          </xsl:for-each>
+                        </xsl:if>
+                        <xsl:if test="count($subsection/following-sibling::*//h:a[@href = $href]) > 1">
+                          <xsl:for-each select="
+                            $subsection/following-sibling::*//h:a[@href = $href]
+                            ">
+                            <xsl:if test="generate-id(.) = $id and not(position() = 1)">
+                              <span class="index-counter">
+                                <xsl:text> [</xsl:text>
+                                <xsl:value-of select="position()"/>
+                                <xsl:text>]</xsl:text>
+                              </span>
+                            </xsl:if>
+                          </xsl:for-each>
+                        </xsl:if>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                  </xsl:variable>
+                  <xsl:choose>
+                    <xsl:when test="not($chunk = 0)">
+                      <li><a href="{$page/@id}.html#{$id}"><xsl:copy-of select="$link-text"/></a></li>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <li><a href="#{$id}"><xsl:copy-of select="$link-text"/></a></li>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:for-each>
+                <xsl:text>&#10;</xsl:text>
+              </ul>
+              <xsl:text>&#10;</xsl:text>
+            </xsl:if>
+          </div>
+          <xsl:text>&#10;</xsl:text>
+        </xsl:for-each>
+      </div>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$chunk = 0">
+        <xsl:copy-of select="$index-contents"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="maturity" select="$maturity"/>
+          <xsl:with-param name="quiet" select="$quiet"/>
+          <xsl:with-param name="content" select="$index-contents"/>
+          <xsl:with-param name="title">HTML5: Index</xsl:with-param>
+          <xsl:with-param name="filename">index.html</xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
   <xsl:template name='top'>
     <div id="jump-indexes" class="no-number no-toc">
       <div id="jumpIndexA-button">elements</div>
@@ -687,6 +880,9 @@
     </xsl:choose>
   </xsl:template>
   <xsl:template match="h:a[@href[starts-with(.,'#')]]" name="link-handler">
+    <xsl:variable name="id">
+      <xsl:value-of select="generate-id(.)"/>
+    </xsl:variable>
     <xsl:choose>
       <xsl:when test="preceding-sibling::h:span[@class='postfix intermixed']
         and ancestor::*[@class='elem-mdl']
@@ -748,6 +944,9 @@
           <xsl:when test="$href='syntax'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>syntax.html</xsl:text>
               </xsl:attribute>
@@ -757,6 +956,9 @@
           <xsl:when test="$href='elements'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>elements.html</xsl:text>
               </xsl:attribute>
@@ -766,6 +968,9 @@
           <xsl:when test="$href='html-elements'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>elements.html#html-elements</xsl:text>
               </xsl:attribute>
@@ -775,6 +980,9 @@
           <xsl:when test="$href='common-models'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>common-models.html</xsl:text>
               </xsl:attribute>
@@ -784,6 +992,9 @@
           <xsl:when test="$href='global-attributes'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>global-attributes.html</xsl:text>
               </xsl:attribute>
@@ -793,6 +1004,9 @@
           <xsl:when test=". ='common.attrs'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>global-attributes.html</xsl:text>
               </xsl:attribute>
@@ -803,6 +1017,9 @@
           <xsl:when test="$href='forms-attributes'">
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:text>forms-attributes.html</xsl:text>
               </xsl:attribute>
@@ -822,6 +1039,9 @@
             </xsl:if>
             <a>
               <xsl:copy-of select="@*"/>
+              <xsl:attribute name="id">
+                <xsl:value-of select="$id"/>
+              </xsl:attribute>
               <xsl:attribute name="href">
                 <xsl:value-of select="concat($section/@id,'.html')"/>
                 <xsl:value-of select="@href"/>
@@ -832,12 +1052,21 @@
         </xsl:choose>
       </xsl:when>
       <xsl:when test=". = 'common.attrs'">
-        <a href="#global-attributes">global attributes</a>
+        <a>
+          <xsl:attribute name="id">
+            <xsl:value-of select="$id"/>
+          </xsl:attribute>
+          <xsl:attribute name="href">#global-attributes</xsl:attribute>
+          <xsl:text>global attributes</xsl:text>
+        </a>
       </xsl:when>
       <xsl:when test=". = 'embed.attrs.other'"/>
       <xsl:otherwise>
         <a>
           <xsl:copy-of select="@*"/>
+          <xsl:attribute name="id">
+            <xsl:value-of select="$id"/>
+          </xsl:attribute>
           <xsl:apply-templates/>
         </a>
       </xsl:otherwise>
@@ -928,7 +1157,7 @@
   </xsl:template>
   <xsl:template match="h:div[@id='tocjump']">
     <div id="tocjump" class="skip-link" style="text-align: center">
-      <a href="{$TOC-file}#unexpanded-toc">Skip to Table of Contents</a>
+      <a href="{$toc-link}">Skip to Table of Contents</a>
     </div>
   </xsl:template>
   <xsl:template match="*[@class='toc']">

Index: toc.xsl
===================================================================
RCS file: /sources/public/html5/markup/tools/toc.xsl,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- toc.xsl	29 Jul 2010 09:39:27 -0000	1.21
+++ toc.xsl	4 Aug 2010 12:59:19 -0000	1.22
@@ -15,6 +15,21 @@
         <xsl:with-param name='alpha' select='true()'/>
       </xsl:call-template>
     </xsl:for-each>
+    <ul class="index-toc">
+      <li>
+        <xsl:if test="$unexpanded=0">
+          <xsl:attribute name="id">index-toc</xsl:attribute>
+        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="$chunk = 0">
+            <a href="#index">Index</a>
+          </xsl:when>
+          <xsl:otherwise>
+            <a href="index.html">Index</a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </li>
+    </ul>
   </xsl:template>
   <xsl:template name='toc1'>
     <xsl:param name='prefix'/>

Index: chunker.xsl
===================================================================
RCS file: /sources/public/html5/markup/tools/chunker.xsl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- chunker.xsl	2 Aug 2010 15:34:23 -0000	1.13
+++ chunker.xsl	4 Aug 2010 12:59:19 -0000	1.14
@@ -27,7 +27,7 @@
     <xsl:param name="prev"/>
     <xsl:param name="next"/>
     <xsl:param name="up">Overview.html</xsl:param>
-    <xsl:param name="index">Overview.html</xsl:param>
+    <xsl:param name="index">index.html</xsl:param>
     <xsl:if test="$quiet = 0">
       <xsl:message>
         <xsl:value-of select="$filename"/>
@@ -64,6 +64,7 @@
     </xsl:param>
     <xsl:variable name="prev-text">
       <xsl:choose>
+        <xsl:when test="not($prev)"/>
         <xsl:when test="contains($prev/@id,'.')">
           <xsl:choose>
             <xsl:when test="$prev/@id='meta.name'">
@@ -96,6 +97,7 @@
     </xsl:variable>
     <xsl:variable name="next-text">
       <xsl:choose>
+        <xsl:when test="not($next)"/>
         <xsl:when test="contains($next/@id,'.')">
           <xsl:choose>
             <xsl:when test="$next/@id='meta.name'">
@@ -205,7 +207,7 @@
     <xsl:param name="next-text"/>
     <xsl:text>&#10;</xsl:text>
     <h2 class="chunkpagetitle"><a
-        href="{$TOC-file}"><xsl:value-of select="/*/h:head/h:title"/></a></h2>
+        href="{$toc-link}"><xsl:value-of select="/*/h:head/h:title"/></a></h2>
     <xsl:text>&#10;</xsl:text>
     <div class="nav">
       <xsl:text>&#10;</xsl:text>
@@ -230,7 +232,9 @@
     <xsl:param name="prev-text"/>
     <xsl:param name="next-text"/>
     <xsl:text>&#10;</xsl:text>
-    <hr class="footerbreak"/>
+    <xsl:if test="$prev or $next">
+      <hr class="footerbreak"/>
+    </xsl:if>
     <xsl:text>&#10;</xsl:text>
     <div class="nav">
       <xsl:text>&#10;</xsl:text>
@@ -268,6 +272,10 @@
       <link rel="up" href="{$up}"/>
       <xsl:text>&#10;</xsl:text>
     </xsl:if>
+    <xsl:if test="$toc-link">
+      <link rel="contents" href="{$toc-link}"/>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:if>
     <xsl:if test="$index">
       <link rel="index" href="{$index}"/>
       <xsl:text>&#10;</xsl:text>

Received on Wednesday, 4 August 2010 12:59:23 UTC