Merge pull request #360 from SamWhited/unique_ref_notes

Don't duplicate footnotes in HTML
This commit is contained in:
Florian Schmaus 2017-01-11 13:28:09 +01:00 committed by GitHub
commit ee2544758c
1 changed files with 25 additions and 30 deletions

55
xep.xsl
View File

@ -4,28 +4,28 @@
Copyright (c) 1999 - 2015 XMPP Standards Foundation Copyright (c) 1999 - 2015 XMPP Standards Foundation
Permission is hereby granted, free of charge, to any Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and person obtaining a copy of this software and
associated documentation files (the "Software"), to associated documentation files (the "Software"), to
deal in the Software without restriction, including deal in the Software without restriction, including
without limitation the rights to use, copy, modify, without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom copies of the Software, and to permit persons to whom
the Software is furnished to do so, subject to the the Software is furnished to do so, subject to the
following conditions: following conditions:
The above copyright notice and this permission notice The above copyright notice and this permission notice
shall be included in all copies or substantial portions shall be included in all copies or substantial portions
of the Software. of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE. OR OTHER DEALINGS IN THE SOFTWARE.
--> -->
@ -36,6 +36,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<xsl:output doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN' doctype-system='http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' method='xml'/> <xsl:output doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN' doctype-system='http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' method='xml'/>
<xsl:key name="unique-notes" match="note" use="text()" />
<xsl:template match='/'> <xsl:template match='/'>
<html> <html>
<head> <head>
@ -397,7 +398,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<a name="appendix-notes"></a> <a name="appendix-notes"></a>
<h3>Appendix G: Notes</h3> <h3>Appendix G: Notes</h3>
<div class='indent'> <div class='indent'>
<xsl:apply-templates select='//note' mode='endlist'/> <xsl:apply-templates select="//note[generate-id(.) = generate-id(key('unique-notes', text())[1])]" mode='endlist'/>
</div> </div>
<!-- REVISION HISTORY --> <!-- REVISION HISTORY -->
<hr /> <hr />
@ -442,7 +443,7 @@ OR OTHER DEALINGS IN THE SOFTWARE.
</p> </p>
</div> </div>
</xsl:template> </xsl:template>
<xsl:template match='councilnote'> <xsl:template match='councilnote'>
<hr /> <hr />
<div> <div>
@ -979,26 +980,20 @@ OR OTHER DEALINGS IN THE SOFTWARE.
<xsl:template match='note'> <xsl:template match='note'>
<xsl:variable name='notenum'> <xsl:variable name='notenum'>
<xsl:number level='any' count='note'/> <xsl:number level='any' count="note[generate-id(.) = generate-id(key('unique-notes', text())[1])]"/>
</xsl:variable>
<xsl:variable name='oid'>
<xsl:call-template name='object.id'/>
</xsl:variable> </xsl:variable>
<xsl:text> [</xsl:text><a href='#nt-{$oid}'> <xsl:text> [</xsl:text><a href='#nt-{$notenum}'>
<xsl:value-of select='$notenum'/></a> <xsl:value-of select='$notenum'/></a>
<xsl:text>]</xsl:text> <xsl:text>]</xsl:text>
</xsl:template> </xsl:template>
<xsl:template match='note' mode='endlist'> <xsl:template match='note' mode='endlist'>
<p> <p>
<xsl:variable name='oid'> <a name='nt-{position()}'><xsl:value-of select='position()'/></a>
<xsl:call-template name='object.id'/>
</xsl:variable>
<a name='nt-{$oid}'><xsl:value-of select='position()'/></a>
<xsl:text>. </xsl:text> <xsl:text>. </xsl:text>
<xsl:apply-templates/> <xsl:apply-templates/>
</p> </p>
</xsl:template> </xsl:template>
<!-- PRESENTATIONAL ELEMENTS --> <!-- PRESENTATIONAL ELEMENTS -->