mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-02-02 22:07:15 +08:00
Style sheets: fix docbook-xsl bug in autoidx
The template named generate-basic-index in {docbook-xsl}/xhtml/autoidx.xsl has a bug that generates a div element with a wrong xmlns:xlink attribute. See https://github.com/docbook/xslt10-stylesheets/issues/239. Rather than fixing docbook-xsl, which would work only in LFS (but we want to be able to render on other distros), copy the faulty template to our customization files (lfs-index.xsl), so that this one is used. We can also simplify it a lot since we don't need all the cases covered in general docbook-xsl. Also remove the sed for this bug in the Makefile.
This commit is contained in:
parent
d4919db6ce
commit
c40c526d34
3
Makefile
3
Makefile
@ -47,7 +47,6 @@ else
|
||||
|
||||
endif
|
||||
|
||||
|
||||
blfs: html wget-list
|
||||
|
||||
help:
|
||||
@ -108,7 +107,6 @@ $(BASEDIR)/index.html: $(RENDERTMP)/$(BLFSHTML) version
|
||||
--stringparam base.dir $(BASEDIR)/ \
|
||||
stylesheets/blfs-chunked.xsl \
|
||||
$(RENDERTMP)/$(BLFSHTML)
|
||||
$(Q)sed -i 's/xmlns:xlink.*xlink"//' $(BASEDIR)/longindex.html
|
||||
|
||||
@echo "Copying CSS code and images..."
|
||||
$(Q)if [ ! -e $(BASEDIR)/stylesheets ]; then \
|
||||
@ -142,7 +140,6 @@ $(BASEDIR)/$(NOCHUNKS_OUTPUT): $(RENDERTMP)/$(BLFSHTML) version
|
||||
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
|
||||
stylesheets/blfs-nochunks.xsl \
|
||||
$(RENDERTMP)/$(BLFSHTML)
|
||||
$(Q)sed -i 's/xmlns:xlink.*xlink"//' $(BASEDIR)/$(NOCHUNKS_OUTPUT)
|
||||
|
||||
@echo "Running Tidy and obfuscate.sh on non-chunked XHTML..."
|
||||
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version='1.0' encoding='ISO-8859-1'?>
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
<!DOCTYPE xsl:stylesheet [
|
||||
<!ENTITY lowercase "'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ'">
|
||||
@ -15,45 +15,53 @@
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
version="1.0">
|
||||
|
||||
<!-- This stylesheet controls how the Index is generated.
|
||||
Due how they are created, the original XHTML stylesheets don't make
|
||||
use of the entities from {docbook-xsl}/common/entities.ent.
|
||||
We add the relevant ones in the DOCTYPE to have more readable templates.
|
||||
Also, we remove support for @role and @type based Index due that it is
|
||||
broken when used with @zone based cross-references. -->
|
||||
<!-- Change the file name of the index page from the default ix01.html.
|
||||
There is no upstream template with match="index", only a global
|
||||
match="*", thus the following is enough to override the index
|
||||
filename. -->
|
||||
|
||||
<!-- The file name of the Index page.
|
||||
There is no upstream template with match="index", only a global
|
||||
match="*", thus the next template is enought to force the Index
|
||||
filename. -->
|
||||
<xsl:template match="index" mode="recursive-chunk-filename">
|
||||
<xsl:text>longindex.html</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- The Index title in the longindex.html page:
|
||||
Removed a lot of code not useful for us.
|
||||
Forced h1 title size.
|
||||
The original template is in {docbook-xsl}/xhtml/titlepage.templates.xsl
|
||||
Use the original template now (as in LFS)
|
||||
<xsl:template name="index.titlepage">
|
||||
<h1 class="index">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key" select="$index-title"/>
|
||||
</xsl:call-template>
|
||||
</h1>
|
||||
</xsl:template>-->
|
||||
<!-- The original template in {docbook-xsl}/xhtml/autoidx.xsl has
|
||||
a bug (https://github.com/docbook/xslt10-stylesheets/issues/239)
|
||||
that generates a <div> with a wrong xmlns:xlink attribute. So copy it
|
||||
here where the bug does not occur, (and simplify it a lot).-->
|
||||
|
||||
<xsl:template name="generate-basic-index">
|
||||
<xsl:param name="scope" select="NOTANODE"/>
|
||||
|
||||
<xsl:variable name="terms" select="//indexterm
|
||||
[count(.|key('letter',
|
||||
translate(substring(&primary;, 1, 1),
|
||||
&lowercase;,
|
||||
&uppercase;
|
||||
)
|
||||
) [&scope;][1]) = 1]"/>
|
||||
<div class="index">
|
||||
<xsl:apply-templates select="$terms" mode="index-div-basic">
|
||||
<xsl:with-param name="position" select="position()"/>
|
||||
<xsl:with-param name="scope" select="$scope"/>
|
||||
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
|
||||
</xsl:apply-templates>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Divisions:
|
||||
Override the default division titles, translating them from the default
|
||||
'A', 'B', etc. to 'Packages', 'Programs', etc.
|
||||
Add gentext support to division titles.
|
||||
Use h2 for division titles instead of the default h3.
|
||||
Change main listings from dl to ul format.
|
||||
The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
|
||||
<!--Divisions:
|
||||
Translate alphabetical divisions titles to by-type titles.
|
||||
Added gentext support to divisions titles.
|
||||
Using h2 for divisions titles.
|
||||
Changed output from dl format to ul format. -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
<xsl:template match="indexterm" mode="index-div-basic">
|
||||
<xsl:param name="scope" select="."/>
|
||||
<xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
|
||||
<xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/>
|
||||
<!-- Make sure that we don't generate a div if there are no terms in scope -->
|
||||
<!-- Make sure that we don't generate a div if there are no terms in scope
|
||||
-->
|
||||
<xsl:if test="key('letter', $key)[&scope;] [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
|
||||
<xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
|
||||
<h2>
|
||||
@ -135,12 +143,12 @@
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Primary items:
|
||||
Changed the output format from dl to ul.
|
||||
Placed the term and separator into strong tags.
|
||||
Placed the target links into a div.
|
||||
Removed code for unused see and sealso childs. -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
<!-- Primary items:
|
||||
Place term and separator into strong tags.
|
||||
Place target links into a div.
|
||||
Change main listings from dl to ul format.
|
||||
Removed code for unused see and sealso children.
|
||||
The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
<xsl:template match="indexterm" mode="index-primary">
|
||||
<xsl:param name="scope" select="."/>
|
||||
<xsl:variable name="key" select="normalize-space(concat(primary/@sortas, " ", primary))"/>
|
||||
@ -152,6 +160,7 @@
|
||||
</strong>
|
||||
<span class='indexref'>
|
||||
<xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section',concat($key, &sep;, §ion.id;))[&scope;][1])]">
|
||||
<!--<xsl:for-each select="$refs[not(see) and not(secondary)][count(ancestor::node()|$scope) = count(ancestor::node()) = 0]">-->
|
||||
<xsl:apply-templates select="." mode="reference">
|
||||
<xsl:with-param name="scope" select="$scope"/>
|
||||
</xsl:apply-templates>
|
||||
@ -168,12 +177,12 @@
|
||||
</li>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Secondary items:
|
||||
Changed the output format from dl to ul.
|
||||
Placed the term and separator into strong tags.
|
||||
Placed the target links into a div.
|
||||
Removed code for unused tertiary, see, and sealso childs. -->
|
||||
<!-- The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
<!-- Secondary items:
|
||||
Place term and separator into strong tags.
|
||||
Place target links into a div.
|
||||
Change main listings from dl to ul format.
|
||||
Removed code for unused tertiary, see and sealso children.
|
||||
The original template is in {docbook-xsl}/xhtml/autoidx.xsl -->
|
||||
<xsl:template match="indexterm" mode="index-secondary">
|
||||
<xsl:param name="scope" select="."/>
|
||||
<xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, " ", primary)), " ", normalize-space(concat(secondary/@sortas, " ", secondary)))"/>
|
||||
|
Loading…
Reference in New Issue
Block a user