- From: Michael Smith via cvs-syncmail <cvsmail@w3.org>
- Date: Sat, 31 Jul 2010 14:18:20 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/markup/tools
In directory hutz:/tmp/cvs-serv21932/tools
Modified Files:
generate-spec-source.xsl
Log Message:
make URLs for hyperlinks in IDL copies point directly to corresponding files in the multipage version of the full spec
Index: generate-spec-source.xsl
===================================================================
RCS file: /sources/public/html5/markup/tools/generate-spec-source.xsl,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -d -r1.281 -r1.282
--- generate-spec-source.xsl 31 Jul 2010 11:32:26 -0000 1.281
+++ generate-spec-source.xsl 31 Jul 2010 14:18:18 -0000 1.282
@@ -16,7 +16,7 @@
<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:key name="interface-name" match="pre[@class='idl']" use="dfn/@id"/>
<xsl:variable name="assertions">
<!-- * FIXME: really should be doing this with keys... -->
<xsl:for-each
@@ -1858,7 +1858,21 @@
<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:choose>
+ <xsl:when test="starts-with(@href,'#')">
+ <xsl:variable name="filename">
+ <xsl:call-template name="get-spec-filename">
+ <xsl:with-param name="ref" select="@href"/>
+ <xsl:with-param name="base">http://dev.w3.org/html5/spec/</xsl:with-param>
+ <xsl:with-param name="fragment-file">../fragment-links-full.html</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <a href="{$filename}{@href}" title="{@title}"><xsl:value-of select="."/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{@href}" title="{@title}"><xsl:value-of select="."/></a>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
@@ -2399,7 +2413,7 @@
<a
class="spec-link"
title="Read about this attribute in the HTML5 spec"
- href="{$filename}.html{$spec-target}">ⓘ</a>
+ href="{$filename}{$spec-target}">ⓘ</a>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:choose>
@@ -2630,9 +2644,6 @@
</xsl:otherwise>
</xsl:choose>
</xsl:template>
- <!-- * -->
- <!-- * special-case handling for area attributes -->
- <!-- * -->
<xsl:template name="make.area.shape.attribute.definition">
<xsl:param name="ref"/>
<xsl:variable name="shape" select="substring-after($ref,'area.attrs.shape.')"/>
@@ -2950,7 +2961,7 @@
<xsl:param name="target"/>
<span class="spec-link">
<a title="Read about the {$element-name} element in the HTML5 spec"
- href="{$filename}.html{$target}">ⓘ</a>
+ href="{$filename}{$target}">ⓘ</a>
</span>
<xsl:text> </xsl:text>
</xsl:template>
@@ -3005,16 +3016,18 @@
</xsl:template>
<xsl:template name="get-spec-filename">
<xsl:param name="ref"/>
- <xsl:for-each select="document('../fragment-links.html')">
+ <xsl:param name="base">http://dev.w3.org/html5/spec-author-view/</xsl:param>
+ <xsl:param name="fragment-file">../fragment-links.html</xsl:param>
+ <xsl:for-each select="document($fragment-file)">
<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:value-of select="concat($base,key('filename-map',$ref)/*[2],'.html')"/>
</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:value-of select="concat('http://dev.w3.org/html5/spec/',key('filename-map',$ref)/*[2],'.html')"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>
@@ -3030,10 +3043,24 @@
</xsl:template>
<xsl:template name="get-idl">
<xsl:param name="interface"/>
- <xsl:for-each select="document('../webapps.html')">
+ <xsl:param name="lowercase-interface"
+ select="translate($interface,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+ 'abcdefghijklmnopqrstuvwxyz')"/>
+ <xsl:param name="base">../spec-author-view/</xsl:param>
+ <xsl:variable name="filename">
+ <xsl:call-template name="get-spec-filename">
+ <xsl:with-param name="ref" select="concat('#',$lowercase-interface)"/>
+ <xsl:with-param name="base"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="target">
+ <xsl:value-of select="concat($base,$filename)"/>
+ </xsl:variable>
+ <xsl:for-each select="document($target)">
<xsl:choose>
- <xsl:when test="key('interface-name',$interface)">
- <xsl:copy-of select="key('interface-name',$interface)"/>
+ <xsl:when test="key('interface-name',$lowercase-interface)">
+ <xsl:copy-of select="key('interface-name',$lowercase-interface)"/>
</xsl:when>
<xsl:otherwise>
<xsl:message> ** INTERFACE NOT FOUND: <xsl:value-of select="$interface"/></xsl:message>
Received on Saturday, 31 July 2010 14:18:22 UTC