- From: Michael Smith via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 22 Jul 2010 05:48:29 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/markup/tools In directory hutz:/tmp/cvs-serv31532/tools Modified Files: generate-spec-source.xsl specgen.xsl toc.xsl Log Message: fixed spec links for event-handler attributes, and make some tweaks to speed up the build a bit Index: generate-spec-source.xsl =================================================================== RCS file: /sources/public/html5/markup/tools/generate-spec-source.xsl,v retrieving revision 1.266 retrieving revision 1.267 diff -u -d -r1.266 -r1.267 --- generate-spec-source.xsl 15 Jul 2010 16:49:47 -0000 1.266 +++ generate-spec-source.xsl 22 Jul 2010 05:48:27 -0000 1.267 @@ -10,9 +10,13 @@ <xsl:output method="xml"/> <xsl:param name="show-content-models" select="0"/> <xsl:param name="aria" select="0"/> - <xsl:param name="rnc-html">../schema.html</xsl:param> - <xsl:param name="head">../src/head.html</xsl:param> - <xsl:param name="header">../src/header.src.html</xsl:param> + <xsl:param name="rnc-html" select="document('../schema.html')"/> + <xsl:param name="attributes" select="document('../src/attributes.html')"/> + <xsl:param name="head" select="document('../src/head.html')"/> + <xsl:param name="header" select="document('../src/header.src.html')"/> + <xsl:key name="elements" match="*" use="@id"/> + <xsl:key name="filename-map" match="ul" use="li"/> + <xsl:key name="interface-name" match="pre[@class='idl']" use="dfn"/> <xsl:variable name="assertions"> <!-- * FIXME: really should be doing this with keys... --> <xsl:for-each @@ -61,10 +65,10 @@ <xsl:template match="/"> <html xml:lang="en"> <xsl:text> </xsl:text> - <xsl:copy-of select="document($head)"/> + <xsl:copy-of select="$head"/> <xsl:text> </xsl:text> <body> - <xsl:copy-of select="document($header)//*[local-name() = 'body']/node()"/> + <xsl:copy-of select="$header//*[local-name() = 'body']/node()"/> <div id="this_sections"> <xsl:text> </xsl:text> <xsl:copy-of select="document('../src/intro-scope.html')"/> @@ -102,7 +106,7 @@ <a href="#elements">HTML elements</a> section.</p> <xsl:for-each - select="document($rnc-html)//*[@class='pattern'] + select="$rnc-html//*[@class='pattern'] [starts-with(@id,'common.elem.')]"> <xsl:sort select="@id"/> <xsl:variable name="type"> @@ -167,7 +171,7 @@ <xsl:text> </xsl:text> <div class="attr-content-models"> <xsl:for-each - select="document($rnc-html)//h:*[@id='common.attrs']/node()"> + select="$rnc-html//h:*[@id='common.attrs']/node()"> <xsl:variable name="ref" select="substring-after(@href,'#')"/> <xsl:variable name="type"> <xsl:call-template name="substring-after-last"> @@ -193,7 +197,7 @@ <xsl:text> </xsl:text> </div> <xsl:text> </xsl:text> - <xsl:for-each select="document($rnc-html)//h:* + <xsl:for-each select="$rnc-html//h:* [@id='common.attrs']/h:a[not(.='common.attrs.other')][not(@class='rnc-symbol')]"> <xsl:variable name="ref" select="substring-after(@href,'#')"/> <xsl:variable name="type"> @@ -235,7 +239,7 @@ <!-- * <xsl:value-of select="."/> --> <!-- * </a></span> --> <!-- * <xsl:text> = </xsl:text> --> - <xsl:for-each select="document($rnc-html)//*[@id=$ref]/node()"> + <xsl:for-each select="$rnc-html//*[@id=$ref]/node()"> <xsl:choose> <xsl:when test="@href='#common.attrs.xmlbase'"> <xsl:copy> @@ -269,7 +273,7 @@ <div class="no-number no-toc"> <xsl:text> </xsl:text> <dl class="attr-defs"> - <xsl:for-each select="document($rnc-html)//h:*[@id=$ref]/h:a[not(@class='rnc-symbol')]"> + <xsl:for-each select="$rnc-html//h:*[@id=$ref]/h:a[not(@class='rnc-symbol')]"> <xsl:call-template name="make.attribute.definition"/> </xsl:for-each> <xsl:text> </xsl:text> @@ -277,7 +281,7 @@ </div> </section> </xsl:for-each> - <xsl:for-each select="document($rnc-html)//h:* + <xsl:for-each select="$rnc-html//h:* [@id='common.attrs.other']/h:a"> <xsl:variable name="ref" select="substring-after(@href,'#')"/> <xsl:variable name="type"> @@ -322,7 +326,7 @@ <xsl:value-of select="."/> </a></span> <xsl:text> = </xsl:text> - <xsl:for-each select="document($rnc-html)//*[@id=$ref]/node()"> + <xsl:for-each select="$rnc-html//*[@id=$ref]/node()"> <xsl:copy-of select="."/> </xsl:for-each> <xsl:text> </xsl:text> @@ -336,7 +340,7 @@ <div class="no-number no-toc"> <xsl:text> </xsl:text> <dl class="attr-defs"> - <xsl:for-each select="document($rnc-html)//h:*[@id=$ref]/h:a"> + <xsl:for-each select="$rnc-html//h:*[@id=$ref]/h:a"> <xsl:call-template name="make.attribute.definition"/> </xsl:for-each> <xsl:text> </xsl:text> @@ -359,10 +363,10 @@ <dl class="attr-defs"> <xsl:text> </xsl:text> <xsl:for-each select=" - (document($rnc-html)//h:span[@class='pattern'] + ($rnc-html//h:span[@class='pattern'] [starts-with(@id,'common-form.attrs.')]) | - (document($rnc-html)//h:span[@class='pattern'] + ($rnc-html//h:span[@class='pattern'] [starts-with(@id,'shared-form.attrs') or starts-with(@id,'input.attrs')] [not(@id='shared-form.attrs.formmethod.data')] [not(@id='shared-form.attrs.formenctype.data')]) @@ -393,7 +397,7 @@ or @href='#shared-form.attrs.formenctype.data' "> <xsl:variable name="ref" select="substring-after(@href,'#')"/> - <xsl:for-each select="document($rnc-html)//*[@id=$ref]/node()"> + <xsl:for-each select="$rnc-html//*[@id=$ref]/node()"> <xsl:call-template name="process.datatype.reference"/> </xsl:for-each> </xsl:when> @@ -405,17 +409,17 @@ </span> <xsl:text> </xsl:text> <xsl:variable name="ref" select="@id"/> - <xsl:if test="document('../src/attributes.html')//*[@id=$ref][contains(@class,'new')]"> + <xsl:if test="$attributes//*[@id=$ref][contains(@class,'new')]"> <span class="new-feature" title="This markup feature is newly added in HTML5." >NEW</span> </xsl:if> - <xsl:if test="document('../src/attributes.html')//*[@id=$ref][contains(@class,'changed')]"> + <xsl:if test="$attributes//*[@id=$ref][contains(@class,'changed')]"> <span class="changed-feature" title="The meaning, structure, or purpose of this markup feature has changed in HTML5." >CHANGED</span> </xsl:if> - <xsl:if test="document('../src/attributes.html')//*[@id=$ref][contains(@class,'obsolete')]"> + <xsl:if test="$attributes//*[@id=$ref][contains(@class,'obsolete')]"> <span class="obsoleted-feature" title="This markup feature has been obsoleted in HTML5." >OBSOLETE</span> @@ -425,9 +429,9 @@ <xsl:variable name="ref" select="@id"/> <xsl:choose> <xsl:when - test="document('../src/attributes.html')//*[@id=$ref]"> + test="$attributes//*[@id=$ref]"> <xsl:copy-of - select="document('../src/attributes.html')//h:dd[preceding-sibling::h:dt[@id=$ref]]"/> + select="$attributes//h:dd[preceding-sibling::h:dt[@id=$ref]]"/> </xsl:when> <xsl:otherwise> <xsl:message>Missing description for:<xsl:text> </xsl:text><xsl:value-of select="@id"/></xsl:message> @@ -455,7 +459,7 @@ <xsl:copy-of select="document('../src/datatypes.html')//h:section[ancestor::h:section]"/> <xsl:for-each - select="document($rnc-html)//*[@class='pattern'] + select="$rnc-html//*[@class='pattern'] [starts-with(@id,'common.data.') or starts-with(@id,'form.data.')]"> <xsl:variable name="pattern"> @@ -643,7 +647,7 @@ </dt> <dd> <xsl:for-each - select="document($rnc-html)//h:*[@id='common.attrs.aria']/node()"> + select="$rnc-html//h:*[@id='common.attrs.aria']/node()"> <xsl:copy-of select="."/> </xsl:for-each> <xsl:text> </xsl:text> @@ -652,7 +656,7 @@ </dl> <xsl:text> </xsl:text> </div> - <xsl:for-each select="document($rnc-html)//h:* + <xsl:for-each select="$rnc-html//h:* [@id='common.attrs.aria']/h:a[not(@class='rnc-symbol')]"> <xsl:variable name="ref" select="substring-after(@href,'#')"/> <xsl:variable name="type"> @@ -688,7 +692,7 @@ <xsl:text> = </xsl:text> </dt> <dd> - <xsl:for-each select="document($rnc-html)//*[@id=$ref]/node()"> + <xsl:for-each select="$rnc-html//*[@id=$ref]/node()"> <xsl:copy-of select="."/> </xsl:for-each> <xsl:text> </xsl:text> @@ -710,7 +714,7 @@ <div id="common.attrs.aria.implicit-mdl"> <xsl:text> </xsl:text> <xsl:for-each - select="document($rnc-html)//h:*[@class='pattern'][starts-with(@id,'common.attrs.aria.implicit')]"> + select="$rnc-html//h:*[@class='pattern'][starts-with(@id,'common.attrs.aria.implicit')]"> <dl class="content-models"> <xsl:text> </xsl:text> <dt class="content-model"> @@ -744,7 +748,7 @@ <div id="common.attrs.aria.landmark-mdl"> <xsl:text> </xsl:text> <xsl:for-each - select="document($rnc-html)//h:*[@class='pattern'][starts-with(@id,'common.attrs.aria.landmark')]"> + select="$rnc-html//h:*[@class='pattern'][starts-with(@id,'common.attrs.aria.landmark')]"> <dl class="content-models"> <xsl:text> </xsl:text> <dt class="content-model"> @@ -781,7 +785,7 @@ <div class="no-number no-toc"> <xsl:text> </xsl:text> <div class="attr-defs"> - <xsl:for-each select="document($rnc-html)//h:*[@class='define'] + <xsl:for-each select="$rnc-html//h:*[@class='define'] [starts-with(@id,'aria-')]/*[@class='patternname']/h:a "> <xsl:sort select="@href"/> @@ -931,7 +935,11 @@ </xsl:variable> <xsl:choose> <xsl:when test="$name='button.submit'"> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*='#the-button-element']"/> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref">#the-button-element</xsl:with-param> + </xsl:call-template> + </xsl:variable> <xsl:text> </xsl:text> <section id="button" class="no-number"> <xsl:text> </xsl:text> @@ -940,14 +948,14 @@ <xsl:text> </xsl:text> <span class="spec-link"> <a title="Read about the button element in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html#the-button-element">ⓘ</a> + href="{$filename}.html#the-button-element">ⓘ</a> </span> </h2> <xsl:text> </xsl:text> <div> <xsl:text> </xsl:text> <xsl:for-each - select="document($rnc-html) + select="$rnc-html //h:span[@id='button'] "> <xsl:call-template name="make.special.context"/> @@ -964,7 +972,11 @@ </section> </xsl:when> <xsl:when test="$name='command.command'"> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*='#the-command']"/> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref">#the-command</xsl:with-param> + </xsl:call-template> + </xsl:variable> <xsl:text> </xsl:text> <section id="command" class="no-number"> <xsl:text> </xsl:text> @@ -973,7 +985,7 @@ <xsl:text> </xsl:text> <span class="spec-link"> <a title="Read about the command element in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html#the-command">ⓘ</a> + href="{$filename}.html#the-command">ⓘ</a> </span> <xsl:text> </xsl:text> <span class="new-feature" title="This markup feature is newly added in HTML5.">NEW</span> @@ -982,7 +994,7 @@ <div> <xsl:text> </xsl:text> <xsl:for-each - select="document($rnc-html) + select="$rnc-html //h:span[@id='command'] "> <xsl:call-template name="make.special.context"/> @@ -997,7 +1009,11 @@ </section> </xsl:when> <xsl:when test="$name='input.text'"> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*='#the-input-element']"/> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref">#the-input-element</xsl:with-param> + </xsl:call-template> + </xsl:variable> <xsl:text> </xsl:text> <section id="input" class="no-number"> <xsl:text> </xsl:text> @@ -1006,14 +1022,14 @@ <xsl:text> </xsl:text> <span class="spec-link"> <a title="Read about the input element in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html#the-input-element">ⓘ</a> + href="{$filename}.html#the-input-element">ⓘ</a> </span> </h2> <xsl:text> </xsl:text> <div> <xsl:text> </xsl:text> <xsl:for-each - select="document($rnc-html) + select="$rnc-html //h:span[@id='input'] "> <xsl:call-template name="make.special.context"/> @@ -1028,7 +1044,11 @@ </section> </xsl:when> <xsl:when test="$name='meta.name'"> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*='#meta']"/> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref">#meta</xsl:with-param> + </xsl:call-template> + </xsl:variable> <xsl:text> </xsl:text> <section id="meta" class="no-number"> <xsl:text> </xsl:text> @@ -1037,7 +1057,7 @@ <xsl:text> </xsl:text> <span class="spec-link"> <a title="Read about the meta element in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html#meta">ⓘ</a> + href="{$filename}.html#meta">ⓘ</a> </span> </h2> <xsl:text> </xsl:text> @@ -1061,9 +1081,9 @@ </section> </xsl:when> </xsl:choose> - <xsl:message> - <xsl:value-of select="$short-name"/> - </xsl:message> + <!-- * <xsl:message> --> + <!-- * <xsl:value-of select="$short-name"/> --> + <!-- * </xsl:message> --> <section> <xsl:attribute name="id"> <xsl:value-of select="$name"/> @@ -1207,15 +1227,19 @@ </xsl:choose> </xsl:variable> <xsl:text> </xsl:text> - <xsl:message> - <xsl:text> </xsl:text> - <xsl:value-of select="$target"/> - </xsl:message> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*=$target]"/> + <!-- * <xsl:message> --> + <!-- * <xsl:text> </xsl:text> --> + <!-- * <xsl:value-of select="$target"/> --> + <!-- * </xsl:message> --> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref" select="$target"/> + </xsl:call-template> + </xsl:variable> <span class="spec-link"> <xsl:text> </xsl:text> <a title="Read about the {$name} element in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html{$target}">ⓘ</a> + href="{$filename}.html{$target}">ⓘ</a> </span> <xsl:text> </xsl:text> <xsl:if test='not($obsoleted="")'> @@ -1461,7 +1485,7 @@ <xsl:when test="$name='li'">1</xsl:when> <xsl:otherwise> <xsl:value-of - select="count(document($rnc-html)//*[@id=$name + select="count($rnc-html//*[@id=$name or (starts-with(@id,$name-dot) and child::h:span[@class='type']='element ')]/*[@class = 'model'])"/> @@ -1492,7 +1516,7 @@ <xsl:choose> <!-- * <xsl:when test="$name='meta'"> --> <!-- * <xsl:for-each --> - <!-- * select="document($rnc-html)//*[@id=$name --> + <!-- * select="$rnc-html//*[@id=$name --> <!-- * or (starts-with(@id,$name-dot) and child::h:span[@class='type']='element ')]/*[@class = 'model']"> --> <!-- * <xsl:variable name="pname" select="../@id"/> --> <!-- * <xsl:call-template name="make.content.model"> --> @@ -1502,7 +1526,7 @@ <!-- * </xsl:call-template> --> <!-- * </xsl:for-each> --> <!-- * <xsl:for-each --> - <!-- * select="document($rnc-html)//*[@id='meta.elem.encoding']"> --> + <!-- * select="$rnc-html//*[@id='meta.elem.encoding']"> --> <!-- * <xsl:call-template name="make.content.model"> --> <!-- * <xsl:with-param name="count" select="$count"/> --> <!-- * <xsl:with-param name="name" select="$name"/> --> @@ -1514,7 +1538,7 @@ <p class="elem-mdl"><span>empty (<a href="#void-element">void element</a>)</span></p> </xsl:when> <xsl:when test="$name='li'"> - <xsl:for-each select="document($rnc-html)//*[@id='li']/*[@class = 'model']"> + <xsl:for-each select="$rnc-html//*[@id='li']/*[@class = 'model']"> <xsl:variable name="pname" select="../@id"/> <xsl:call-template name="make.content.model"> <xsl:with-param name="count" select="$count"/> @@ -1524,7 +1548,7 @@ </xsl:for-each> </xsl:when> <xsl:when test="$name='style'"> - <xsl:for-each select="document($rnc-html)//*[@id='style']/*[@class = 'model']"> + <xsl:for-each select="$rnc-html//*[@id='style']/*[@class = 'model']"> <xsl:variable name="pname" select="../@id"/> <xsl:call-template name="make.content.model"> <xsl:with-param name="count" select="$count"/> @@ -1534,7 +1558,7 @@ </xsl:for-each> </xsl:when> <xsl:when test="$name='script'"> - <xsl:for-each select="document($rnc-html)//*[@id='script.elem.embedded']/*[@class = 'model']"> + <xsl:for-each select="$rnc-html//*[@id='script.elem.embedded']/*[@class = 'model']"> <xsl:variable name="pname" select="../@id"/> <xsl:call-template name="make.content.model"> <xsl:with-param name="count" select="$count"/> @@ -1545,7 +1569,7 @@ </xsl:when> <xsl:otherwise> <xsl:for-each - select="document($rnc-html)//*[@id=$name + select="$rnc-html//*[@id=$name or (starts-with(@id,$name-dot) and child::h:span[@class='type']='element ')]/*[@class = 'model']"> <xsl:variable name="pname" select="../@id"/> <xsl:call-template name="make.content.model"> @@ -1709,7 +1733,7 @@ <xsl:choose> <xsl:when test="$name='li'"> <xsl:for-each - select="document($rnc-html)//h:span[@class + select="$rnc-html//h:span[@class = 'pattern'][child::h:a[@href = '#li' or @href = '#mli' or @href = '#oli' @@ -1742,7 +1766,7 @@ or $name='command' "> <xsl:for-each - select="document($rnc-html)//h:span[@class + select="$rnc-html//h:span[@class = 'pattern'][child::h:a[@href = concat('#',$name) or starts-with(@href,concat('#',$name,'.elem.')) ]]"> @@ -1754,7 +1778,7 @@ </xsl:when> <xsl:otherwise> <xsl:for-each - select="document($rnc-html)//h:span[@class + select="$rnc-html//h:span[@class = 'pattern'][descendant::h:a[@href = concat('#',$full-name) or starts-with(@href,concat('#',$full-name,'.elem.')) ]][not(@id='script')]"> @@ -1787,28 +1811,26 @@ <xsl:choose> <xsl:when test="document(concat('../elements/',$name,'.html'))//h:div[@id='dom-interface']"> <xsl:variable name="interface" select="document(concat('../elements/',$name,'.html'))//h:div[@id='dom-interface']"/> - <xsl:choose> - <xsl:when test="document('../webapps.html')//*[@class='idl'][dfn=$interface]"> - <pre class="idl"> - <xsl:for-each select="document('../webapps.html')//*[@class='idl'][dfn=$interface]/node()"> - <xsl:choose> - <xsl:when test="self::dfn"> - <b><xsl:value-of select="."/></b> - </xsl:when> - <xsl:when test="self::a"> - <a href="{$spec-url}{@href}" title="{@title}"><xsl:value-of select="."/></a> - </xsl:when> - <xsl:otherwise> - <xsl:copy-of select="."/> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </pre> - </xsl:when> - <xsl:otherwise> - <xsl:message>ERROR: interface <xsl:value-of select="$interface"/> not found</xsl:message> - </xsl:otherwise> - </xsl:choose> + <xsl:variable name="idl-section"> + <xsl:call-template name="get-idl"> + <xsl:with-param name="interface" select="$interface"/> + </xsl:call-template> + </xsl:variable> + <pre class="idl"> + <xsl:for-each select="exsl:node-set($idl-section)/pre[@class='idl']/node()"> + <xsl:choose> + <xsl:when test="self::dfn"> + <b><xsl:value-of select="."/></b> + </xsl:when> + <xsl:when test="self::a"> + <a href="{$spec-url}{@href}" title="{@title}"><xsl:value-of select="."/></a> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="."/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </pre> </xsl:when> <xsl:otherwise> <p class="dom-interface">Uses @@ -2048,7 +2070,7 @@ <h2 class="element-subhead">Permitted attributes</h2> <xsl:text> </xsl:text> <xsl:choose> - <xsl:when test="document($rnc-html)//*[(starts-with(@id,$name-dot) + <xsl:when test="$rnc-html//*[(starts-with(@id,$name-dot) and substring(@id,string-length(@id)-4)='attrs')]"> <xsl:choose> <xsl:when test="@name='embed'"> @@ -2062,7 +2084,7 @@ <!-- * </a> --> <!-- * <xsl:text> = </xsl:text> --> <xsl:for-each - select="document($rnc-html)//*[@class='pattern'] + select="$rnc-html//*[@class='pattern'] [@id='embed.attrs']/node()"> <xsl:choose> <xsl:when test="contains(@class,'zeroormore')"/> @@ -2106,12 +2128,12 @@ <span class="pattern" id="area.attrs"> <xsl:for-each - select="document($rnc-html)//*[@id='area.attrs']/node()"> + select="$rnc-html//*[@id='area.attrs']/node()"> <xsl:choose> <xsl:when test="@href='#area.attrs.shape'"> <xsl:copy-of - select="document($rnc-html)//*[@id='area.attrs.shape']/node()"/> + select="$rnc-html//*[@id='area.attrs.shape']/node()"/> </xsl:when> <xsl:otherwise> <xsl:copy-of select="."/> @@ -2138,7 +2160,7 @@ <xsl:otherwise> <div> <xsl:attribute name="class">attr-content-models</xsl:attribute> - <xsl:for-each select="document($rnc-html)//*[starts-with(@id,$name-dot) + <xsl:for-each select="$rnc-html//*[starts-with(@id,$name-dot) and substring(@id,string-length(@id)-4)='attrs']"> <xsl:text> </xsl:text> <p> @@ -2170,16 +2192,16 @@ </xsl:choose> </xsl:for-each> </xsl:when> - <xsl:when test="document($rnc-html)//h:*[@id = $ref]//h:a[@href='#common-form.attrs']"> + <xsl:when test="$rnc-html//h:*[@id = $ref]//h:a[@href='#common-form.attrs']"> <span class="pattern" id="{@id}"> - <xsl:for-each select="document($rnc-html)//h:*[@id = $ref]/node()"> + <xsl:for-each select="$rnc-html//h:*[@id = $ref]/node()"> <xsl:choose> <xsl:when test="@class='agroupof'"> <xsl:for-each select="node()"> <xsl:choose> <xsl:when test="@href='#common-form.attrs'"> <xsl:for-each - select="document($rnc-html)//h:*[@id = 'common-form.attrs']/node()"> + select="$rnc-html//h:*[@id = 'common-form.attrs']/node()"> <xsl:copy-of select="."/> </xsl:for-each> </xsl:when> @@ -2193,7 +2215,7 @@ <xsl:choose> <xsl:when test="@href='#common-form.attrs'"> <xsl:for-each - select="document($rnc-html)//h:*[@id = 'common-form.attrs']/node()"> + select="$rnc-html//h:*[@id = 'common-form.attrs']/node()"> <xsl:copy-of select="."/> </xsl:for-each> </xsl:when> @@ -2231,10 +2253,10 @@ </xsl:otherwise> </xsl:choose> </xsl:when> - <xsl:when test="document($rnc-html)//*[@id = 'script.attrs.embedded' + <xsl:when test="$rnc-html//*[@id = 'script.attrs.embedded' or @id = 'script.attrs.imported']"> <div class="attr-content-models"> - <xsl:for-each select="document($rnc-html)//*[@id = 'script.attrs.embedded' + <xsl:for-each select="$rnc-html//*[@id = 'script.attrs.embedded' or @id = 'script.attrs.imported']"> <xsl:text> </xsl:text> <!-- * <dt class="attr-content-model"> --> @@ -2259,7 +2281,7 @@ <xsl:template name="make.attribute.definitions.section"> <xsl:param name="name"/> <xsl:param name="name-dot" select="concat($name, '.')"/> - <xsl:if test="document($rnc-html)//*[(starts-with(@id,$name-dot) + <xsl:if test="$rnc-html//*[(starts-with(@id,$name-dot) and substring(@id,string-length(@id)-4)='attrs')]//h:a[not(starts-with(.,'common')) and not(starts-with(.,'media.')) and not(starts-with(@href,'#common-form.attrs.')) @@ -2280,7 +2302,7 @@ <dl class="attr-defs"> <xsl:choose> <xsl:when test="@name='video'"> - <xsl:for-each select="document($rnc-html)//h:a[starts-with(@href,'#video.attrs.')] + <xsl:for-each select="$rnc-html//h:a[starts-with(@href,'#video.attrs.')] "> <xsl:call-template name="make.attribute.definition"> <xsl:with-param name="name" select="$name"/> @@ -2288,7 +2310,7 @@ </xsl:for-each> </xsl:when> <xsl:when test="@name='audio'"> - <xsl:for-each select="document($rnc-html)//h:a[starts-with(@href,'#audio.attrs.')] + <xsl:for-each select="$rnc-html//h:a[starts-with(@href,'#audio.attrs.')] "> <xsl:call-template name="make.attribute.definition"> <xsl:with-param name="name" select="$name"/> @@ -2296,7 +2318,7 @@ </xsl:for-each> </xsl:when> <xsl:when test="@name='embed'"> - <xsl:for-each select="document($rnc-html)//h:a[starts-with(@href,'#embed.attrs.')] + <xsl:for-each select="$rnc-html//h:a[starts-with(@href,'#embed.attrs.')] [not(@href='#embed.attrs.other')] "> <xsl:call-template name="make.attribute.definition"> @@ -2306,7 +2328,7 @@ </xsl:when> <xsl:when test="@name='area'"> <xsl:for-each - select="document($rnc-html)//h:a[starts-with(@href,'#area.attrs.')] + select="$rnc-html//h:a[starts-with(@href,'#area.attrs.')] [not(@href='#area.attrs.shape')] [not(@href='#area.attrs.shape')] [not(starts-with(@href,'#area.attrs.shape.'))] @@ -2318,7 +2340,7 @@ </xsl:call-template> </xsl:for-each> <xsl:for-each - select="document($rnc-html)//h:a + select="$rnc-html//h:a [starts-with(@href,'#area.attrs.shape.')] "> <xsl:call-template @@ -2328,14 +2350,14 @@ </xsl:for-each> </xsl:when> <xsl:when test="@name='colgroup'"> - <xsl:for-each select="document($rnc-html)//*[@id = 'colgroup.inner']/h:a[contains(@href,'attrs')]"> + <xsl:for-each select="$rnc-html//*[@id = 'colgroup.inner']/h:a[contains(@href,'attrs')]"> <xsl:call-template name="make.attribute.definition"> <xsl:with-param name="name" select="$name"/> </xsl:call-template> </xsl:for-each> </xsl:when> <xsl:when test="@name='li'"> - <xsl:for-each select="document($rnc-html)//*[@id = 'li.attrs' + <xsl:for-each select="$rnc-html//*[@id = 'li.attrs' or @id = 'oli.attrs' or @id = 'mli.attrs']/h:a[not(contains(.,'common.'))]"> <xsl:call-template name="make.attribute.definition"> <xsl:with-param name="name" select="$name"/> @@ -2343,7 +2365,7 @@ </xsl:for-each> </xsl:when> <xsl:when test="@name='script'"> - <xsl:for-each select="document($rnc-html)//*[@id = 'script.attrs.embedded' + <xsl:for-each select="$rnc-html//*[@id = 'script.attrs.embedded' or @id = 'script.attrs.imported']/h:a"> <xsl:call-template name="make.attribute.definition"> <xsl:with-param name="name" select="$name"/> @@ -2351,7 +2373,7 @@ </xsl:for-each> </xsl:when> <xsl:otherwise> - <xsl:for-each select="document($rnc-html)//*[starts-with(@id,$name-dot) + <xsl:for-each select="$rnc-html//*[starts-with(@id,$name-dot) and substring(@id,string-length(@id)-4)='attrs']//h:a[not(contains(.,'common')) and not(@href = '#media.attrs') and not(starts-with(@href,'#common-form.attrs.')) @@ -2488,14 +2510,14 @@ </xsl:choose> <xsl:variable name="model"> <xsl:copy-of - select="//*[@id=$ref]//*[@class='model']"/> + select="key('elements',$ref)//*[@class='model']"/> </xsl:variable> <xsl:text> = </xsl:text> <span class="attr-values"> <xsl:choose> <xsl:when test="$ref='form.attrs.method' or $ref='form.attrs.enctype'"> <xsl:variable name="datatype" select="concat($ref,'.data')"/> - <xsl:for-each select="document($rnc-html)//*[@id=$datatype]/node()"> + <xsl:for-each select="$rnc-html//*[@id=$datatype]/node()"> <xsl:call-template name="process.datatype.reference"/> </xsl:for-each> </xsl:when> @@ -2504,7 +2526,7 @@ </xsl:when> <xsl:when test="not(//*[@id=$ref]//*[@class='model']/h:a)"> - <xsl:for-each select="//*[@id=$ref]//*[@class='model']/node()"> + <xsl:for-each select="key('elements',$ref)//*[@class='model']/node()"> <xsl:choose> <xsl:when test="name()=''"> <xsl:call-template name="string.subst"> @@ -2521,7 +2543,7 @@ </xsl:when> <xsl:otherwise> <xsl:for-each - select="//*[@id=$ref]//*[@class='model']/node()"> + select="key('elements',$ref)//*[@class='model']/node()"> <xsl:choose> <xsl:when test="name()=''"> <xsl:call-template name="string.subst"> @@ -2634,6 +2656,9 @@ </span> <xsl:variable name="spec-target"> <xsl:choose> + <xsl:when test="starts-with($href,'#scripting.attr.on')"> + <xsl:value-of select="concat('#handler-',substring-after($href,'#scripting.attr.'))"/> + </xsl:when> <xsl:when test="not($name='') and document('../src/map-attributes.html')//*[preceding-sibling::*=$ref]"> <xsl:value-of select="concat('#',document('../src/map-attributes.html')//*[preceding-sibling::*=$ref])"/> </xsl:when> @@ -2643,25 +2668,29 @@ </xsl:choose> </xsl:variable> <xsl:text> </xsl:text> - <xsl:message> - <xsl:text> </xsl:text> - <xsl:value-of select="$spec-target"/> - </xsl:message> - <xsl:variable name="filename" select="document('../fragment-links.html')//*[preceding-sibling::*=$spec-target]"/> + <!-- * <xsl:message> --> + <!-- * <xsl:text> </xsl:text> --> + <!-- * <xsl:value-of select="$spec-target"/> --> + <!-- * </xsl:message> --> + <xsl:variable name="filename"> + <xsl:call-template name="get-spec-filename"> + <xsl:with-param name="ref" select="$spec-target"/> + </xsl:call-template> + </xsl:variable> <span class="spec-link"> <a title="Read about this attribute in the HTML5 spec" - href="http://dev.w3.org/html5/spec-author-view/{$filename}.html{$spec-target}">ⓘ</a> + href="{$filename}.html{$spec-target}">ⓘ</a> </span> <xsl:text> </xsl:text> <xsl:if test="not($name='') and document(concat('../elements/',$name,'.html'))//*[@id=$ref][contains(@class,'new')] - or document('../src/attributes.html')//*[@id=$ref][contains(@class,'new')] + or $attributes//*[@id=$ref][contains(@class,'new')] "> <span class="new-feature" title="This markup feature is newly added in HTML5." >NEW</span> </xsl:if> <xsl:if test="not($name='') and document(concat('../elements/',$name,'.html'))//*[@id=$ref][contains(@class,'changed')] - or document('../src/attributes.html')//*[@id=$ref][contains(@class,'changed')] + or $attributes//*[@id=$ref][contains(@class,'changed')] "> <span class="changed-feature" title="The meaning, structure, or purpose of this markup feature has changed in HTML5." @@ -2681,9 +2710,9 @@ <xsl:copy-of select="document(concat('../elements/',$name,'.html'))//h:dd[preceding-sibling::h:dt[@id=$ref]]"/> </xsl:when> <xsl:when - test="document('../src/attributes.html')//*[@id=$ref]"> + test="$attributes//*[@id=$ref]"> <xsl:copy-of - select="document('../src/attributes.html')//h:dd[preceding-sibling::h:dt[@id=$ref]]"/> + select="$attributes//h:dd[preceding-sibling::h:dt[@id=$ref]]"/> </xsl:when> <xsl:otherwise> <dd> @@ -2739,7 +2768,7 @@ <xsl:text> = </xsl:text> <span class="attr-values"> <xsl:variable name="model"> - <xsl:copy-of select="//*[@id=$ref]//*[@class='model']"/> + <xsl:copy-of select="key('elements',$ref)//*[@class='model']"/> </xsl:variable> <xsl:call-template name="string.subst"> <xsl:with-param name="string" select="$model"/> @@ -2806,10 +2835,10 @@ and not($name='meta.http-equiv.refresh') and not($name='meta.http-equiv.default-style') "> - <xsl:choose> - <xsl:when - test="exsl:node-set($assertions)/s:rule[child::s:context = $short-name] - |document(concat('../elements/',$name,'.html'))//h:*[@id='constraints'] + <xsl:choose> + <xsl:when + test="exsl:node-set($assertions)/s:rule[child::s:context = $short-name] + |document(concat('../elements/',$name,'.html'))//h:*[@id='constraints'] "> <xsl:text> </xsl:text> <div class="no-number no-toc" id="{$name}-constraints"> @@ -3171,4 +3200,36 @@ <xsl:template match="node()[normalize-space(.)='empty']"> <span>empty (<a href="#void-element">void element</a>)</span> </xsl:template> + <xsl:template name="get-spec-filename"> + <xsl:param name="ref"/> + <xsl:for-each select="document('../fragment-links.html')"> + <xsl:choose> + <xsl:when test="key('filename-map',$ref)"> + <xsl:value-of select="concat('http://dev.w3.org/html5/spec-author-view/',key('filename-map',$ref)/*[2])"/> + </xsl:when> + <xsl:otherwise> + <xsl:for-each select="document('../fragment-links-full.html')"> + <xsl:choose> + <xsl:when test="key('filename-map',$ref)"> + <xsl:value-of select="concat('http://dev.w3.org/html5/spec/',key('filename-map',$ref)/*[2])"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="concat('http://dev.w3.org/html5/spec-author-view/',key('filename-map',$ref)/*[2])"/> + <xsl:message> + <xsl:text> NOT FOUND: </xsl:text> + <xsl:value-of select="$ref"/> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:template> + <xsl:template name="get-idl"> + <xsl:param name="interface"/> + <xsl:for-each select="document('../webapps.html')"> + <xsl:copy-of select="key('interface-name',$interface)"/> + </xsl:for-each> + </xsl:template> </xsl:stylesheet> Index: specgen.xsl =================================================================== RCS file: /sources/public/html5/markup/tools/specgen.xsl,v retrieving revision 1.70 retrieving revision 1.71 diff -u -d -r1.70 -r1.71 --- specgen.xsl 15 Jul 2010 16:49:47 -0000 1.70 +++ specgen.xsl 22 Jul 2010 05:48:27 -0000 1.71 @@ -14,7 +14,7 @@ <xsl:param name="chunk" select="0"/> <xsl:param name="TOC-file"/> <xsl:param name="aria" select="0"/> - <xsl:key name="id" match="*" use="@id"/> + <xsl:key name="elements" match="*" use="@id"/> <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"/> @@ -22,16 +22,16 @@ <xsl:variable name='appendicesID'>appendices</xsl:variable> <xsl:variable name='id' select='/*/h:head/h:meta[@name="revision"]/@content'/> <xsl:variable name='rev' select='substring-before(substring-after(substring-after($id, " "), " "), " ")'/> - <xsl:variable name='toc-marker' select='//h:*[@id = "toc"][1]'/> - <xsl:variable name='info' select="/*/h:body/h:*[@id = 'info']"/> - <xsl:variable name="maturity" select="$info/h:*[@id = 'maturity']"/> - <xsl:variable name="normativity" select="$info/h:*[@id = 'normativity']"/> - <xsl:variable name="source" select="$info/h:*[@id = 'versions']/h:*[@id = 'source']"/> - <xsl:variable name="this" select="$info/h:*[@id = 'versions']/h:*[@id = 'this']"/> - <xsl:variable name="latest" select="$info/h:*[@id = 'versions']/h:*[@id = 'latest']"/> - <xsl:variable name="previous-nodeset" select="$info/h:*[@id = 'versions']/h:*[contains(@class,'previous')]"/> - <xsl:variable name="person-nodeset" select='$info/h:*[@id="editors"]/h:*[@ class="person"]'/> - <xsl:variable name="groupinfo-nodeset" select="$info/h:*[@id = 'groupinfo']"/> + <xsl:variable name='toc-marker' select='key("elements","toc")[1]'/> + <xsl:variable name='info' select="key('elements','info')"/> + <xsl:variable name="maturity" select="key('elements','maturity')"/> + <xsl:variable name="normativity" select="key('elements','normativity')"/> + <xsl:variable name="source" select="key('elements','source')"/> + <xsl:variable name="this" select="key('elements','this')"/> + <xsl:variable name="latest" select="key('elements','latest')"/> + <xsl:variable name="previous-nodeset" select="key('elements','versions')/*[contains(@class,'previous')]"/> + <xsl:variable name="person-nodeset" select='key("elements","editors")/*[@ class="person"]'/> + <xsl:variable name="groupinfo-nodeset" select="key('elements','groupinfo')"/> <xsl:template match='/'> <!-- * <xsl:if test='$maturity = "ED"'> --> <!-- * <xsl:comment> * </xsl:comment> --> @@ -126,8 +126,8 @@ </xsl:when> </xsl:choose> <h1><xsl:value-of select='/*/h:head/h:title'/></h1> - <xsl:if test='//*[@id="subtitle"]'> - <h3 id="subtitle"><xsl:value-of select='//*[@id="subtitle"]'/></h3> + <xsl:if test='key("elements","subtitle")'> + <h3 id="subtitle"><xsl:value-of select='key("elements","subtitle")'/></h3> </xsl:if> <h2> <xsl:if test="$site = 'W3C'">W3C </xsl:if> @@ -479,7 +479,7 @@ </xsl:template> <xsl:template match='processing-instruction("sref")'> <xsl:variable name='id' select='string(.)'/> - <xsl:variable name='s' select='//*[@id=$id]/self::h:section'/> + <xsl:variable name='s' select='key("elements",$id)/self::h:section'/> <xsl:choose> <xsl:when test='$s'> <xsl:call-template name='section-number'> @@ -500,8 +500,8 @@ <xsl:template match='processing-instruction()|comment()'/> <xsl:template name='section-number'> <xsl:param name='section'/> - <xsl:param name='sections' select="//*[@id = $sectionsID]"/> - <xsl:param name='appendices' select="//*[@id = $appendicesID]"/> + <xsl:param name='sections' select="key('elements',$sectionsID)"/> + <xsl:param name='appendices' select="key('elements',$appendicesID)"/> <xsl:choose> <xsl:when test='$section/ancestor::* = $sections'> <xsl:for-each select='$section/ancestor-or-self::h:section'> @@ -735,8 +735,8 @@ <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'))] + select="key('elements',$href)/ancestor-or-self::h:section[child::h:h2[@class='element-head']] + |key('elements',$href)/ancestor::h:section[(count(ancestor::h:section)=0 and not(@id='elements'))] "/> <xsl:choose> <xsl:when test="$href='syntax'"> Index: toc.xsl =================================================================== RCS file: /sources/public/html5/markup/tools/toc.xsl,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- toc.xsl 29 Mar 2010 15:08:01 -0000 1.17 +++ toc.xsl 22 Jul 2010 05:48:27 -0000 1.18 @@ -4,12 +4,12 @@ version='1.0' id='xslt'> <xsl:template name='toc'> <xsl:param name="unexpanded" select="0"/> - <xsl:for-each select='//*[@id=$sectionsID]'> + <xsl:for-each select='key("elements",$sectionsID)'> <xsl:call-template name='toc1'> <xsl:with-param name="unexpanded" select="$unexpanded"/> </xsl:call-template> </xsl:for-each> - <xsl:for-each select='//*[@id=$appendicesID]'> + <xsl:for-each select='key("elements",$appendicesID)'> <xsl:call-template name='toc1'> <xsl:with-param name="unexpanded" select="$unexpanded"/> <xsl:with-param name='alpha' select='true()'/> @@ -50,8 +50,8 @@ <xsl:when test='$chunk=0'/> <xsl:otherwise> <xsl:value-of select=" - key('id',$frag)[ancestor-or-self::h:section[@id='elements']]/@id - |key('id',$frag)/ancestor-or-self::h:section[count(ancestor::h:section)=0 and not(@id='elements')]/@id + key('elements',$frag)[ancestor-or-self::h:section[@id='elements']]/@id + |key('elements',$frag)/ancestor-or-self::h:section[count(ancestor::h:section)=0 and not(@id='elements')]/@id "/> </xsl:otherwise> </xsl:choose>
Received on Thursday, 22 July 2010 05:48:32 UTC