metanorma-bipm 2.1.13 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/bipm/bipm.brochure.xsl +55 -12
- data/lib/isodoc/bipm/bipm.guide.xsl +55 -12
- data/lib/isodoc/bipm/bipm.mise-en-pratique.xsl +55 -12
- data/lib/isodoc/bipm/bipm.rapport.xsl +55 -12
- data/lib/isodoc/bipm/index.rb +29 -18
- data/lib/isodoc/bipm/jcgm.standard.xsl +55 -12
- data/lib/isodoc/bipm/presentation_xml_convert.rb +8 -9
- data/lib/metanorma/bipm/basicdoc.rng +3 -0
- data/lib/metanorma/bipm/biblio-standoc.rng +1 -1
- data/lib/metanorma/bipm/isodoc.rng +1 -0
- data/lib/metanorma/bipm/version.rb +1 -1
- data/metanorma-bipm.gemspec +2 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5473d53c218ef9be08f8d8664f388c27684eca2af7bc86e4c501d9d922d50f64
|
4
|
+
data.tar.gz: 0dd3d6d95f9e7975e3f76e00c9b486b5c97a753ce45cd1af450b82cf80ddad5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e9aeb4d4752a121f6dc00049988937cf6eadb7e3833e5df79d574dcb74fa1bbeff911a33e70f63bcc880cf1cf50f8f3eaf1b3099b494b78f7db299c1a71ade1
|
7
|
+
data.tar.gz: 54655f2d26b574f6e8231cf945505905d733ab08512e109f9e10fa1d96622f0bf8e581099ac8d08fab8d8ddca5dca66740d95603a6b10aa1153a59d4339d3a2a
|
@@ -6492,6 +6492,10 @@
|
|
6492
6492
|
<xsl:variable name="footnote_inline">
|
6493
6493
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
6494
6494
|
|
6495
|
+
<xsl:if test="following-sibling::*[1][local-name() = 'fn']">
|
6496
|
+
<xsl:attribute name="padding-right">0.5mm</xsl:attribute>
|
6497
|
+
</xsl:if>
|
6498
|
+
|
6495
6499
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
6496
6500
|
<xsl:value-of select="$current_fn_number_text"/>
|
6497
6501
|
</fo:basic-link>
|
@@ -7649,6 +7653,23 @@
|
|
7649
7653
|
<xsl:apply-templates/>
|
7650
7654
|
</xsl:template>
|
7651
7655
|
|
7656
|
+
<!-- Don't break standard's numbers -->
|
7657
|
+
<!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
7658
|
+
<xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
|
7659
|
+
<xsl:choose>
|
7660
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
|
7661
|
+
<xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
|
7662
|
+
<fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
|
7663
|
+
</xsl:when>
|
7664
|
+
<xsl:otherwise>
|
7665
|
+
<xsl:apply-templates/>
|
7666
|
+
</xsl:otherwise>
|
7667
|
+
</xsl:choose>
|
7668
|
+
</xsl:template>
|
7669
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'table']) and preceding-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear'] and following-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']]" priority="2">
|
7670
|
+
<fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
|
7671
|
+
</xsl:template>
|
7672
|
+
|
7652
7673
|
<!-- ========================= -->
|
7653
7674
|
<!-- END Rich text formatting -->
|
7654
7675
|
<!-- ========================= -->
|
@@ -8044,7 +8065,7 @@
|
|
8044
8065
|
<xsl:choose>
|
8045
8066
|
<xsl:when test="@colspan">
|
8046
8067
|
<xsl:variable name="td">
|
8047
|
-
<xsl:element name="
|
8068
|
+
<xsl:element name="{local-name()}">
|
8048
8069
|
<xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
|
8049
8070
|
<xsl:if test="local-name()='th'">
|
8050
8071
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8059,7 +8080,7 @@
|
|
8059
8080
|
</xsl:call-template>
|
8060
8081
|
</xsl:when>
|
8061
8082
|
<xsl:otherwise>
|
8062
|
-
<xsl:element name="
|
8083
|
+
<xsl:element name="{local-name()}">
|
8063
8084
|
<xsl:apply-templates select="@*" mode="simple-table-colspan"/>
|
8064
8085
|
<xsl:if test="local-name()='th'">
|
8065
8086
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8126,7 +8147,7 @@
|
|
8126
8147
|
<xsl:variable name="currentRow" select="."/>
|
8127
8148
|
|
8128
8149
|
<xsl:variable name="normalizedTDs">
|
8129
|
-
<xsl:for-each select="xalan:nodeset($previousRow)
|
8150
|
+
<xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
|
8130
8151
|
<xsl:choose>
|
8131
8152
|
<xsl:when test="@rowspan > 1">
|
8132
8153
|
<xsl:copy>
|
@@ -8138,7 +8159,7 @@
|
|
8138
8159
|
</xsl:copy>
|
8139
8160
|
</xsl:when>
|
8140
8161
|
<xsl:otherwise>
|
8141
|
-
<xsl:copy-of select="$currentRow
|
8162
|
+
<xsl:copy-of select="$currentRow/*[self::td or self::th][1 + count(current()/preceding-sibling::*[self::td or self::th][not(@rowspan) or (@rowspan = 1)])]"/>
|
8142
8163
|
</xsl:otherwise>
|
8143
8164
|
</xsl:choose>
|
8144
8165
|
</xsl:for-each>
|
@@ -8853,12 +8874,6 @@
|
|
8853
8874
|
|
8854
8875
|
<fo:block-container margin-left="0mm">
|
8855
8876
|
|
8856
|
-
<!-- <xsl:if test="$namespace = 'iho'">
|
8857
|
-
<xsl:if test="ancestor::iho:td">
|
8858
|
-
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
8859
|
-
</xsl:if>
|
8860
|
-
</xsl:if> -->
|
8861
|
-
|
8862
8877
|
<fo:block>
|
8863
8878
|
|
8864
8879
|
<xsl:if test="@parent-type = 'quote'">
|
@@ -9385,6 +9400,31 @@
|
|
9385
9400
|
<xsl:apply-templates mode="svg_update"/>
|
9386
9401
|
</xsl:copy>
|
9387
9402
|
</xsl:template>
|
9403
|
+
|
9404
|
+
<!-- regex for 'display: inline-block;' -->
|
9405
|
+
<xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
|
9406
|
+
<xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
|
9407
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
|
9408
|
+
</xsl:template>
|
9409
|
+
|
9410
|
+
<!-- replace
|
9411
|
+
stroke="rgba(r, g, b, alpha)" to
|
9412
|
+
stroke="rgb(r,g,b)" stroke-opacity="alpha", and
|
9413
|
+
fill="rgba(r, g, b, alpha)" to
|
9414
|
+
fill="rgb(r,g,b)" fill-opacity="alpha" -->
|
9415
|
+
<xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
|
9416
|
+
<xsl:variable name="components_">
|
9417
|
+
<xsl:call-template name="split">
|
9418
|
+
<xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
|
9419
|
+
<xsl:with-param name="sep" select="','"/>
|
9420
|
+
</xsl:call-template>
|
9421
|
+
</xsl:variable>
|
9422
|
+
<xsl:variable name="components" select="xalan:nodeset($components_)"/>
|
9423
|
+
<xsl:variable name="att_name" select="local-name()"/>
|
9424
|
+
<xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
|
9425
|
+
<xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
|
9426
|
+
</xsl:template>
|
9427
|
+
|
9388
9428
|
<!-- ============== -->
|
9389
9429
|
<!-- END: svg_update -->
|
9390
9430
|
<!-- ============== -->
|
@@ -12343,7 +12383,9 @@
|
|
12343
12383
|
<!-- Update xml -->
|
12344
12384
|
<!-- ===================================== -->
|
12345
12385
|
<!-- =========================================================================== -->
|
12346
|
-
<!-- STEP1:
|
12386
|
+
<!-- STEP1: -->
|
12387
|
+
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12388
|
+
<!-- - Ignore 'span' without style -->
|
12347
12389
|
<!-- =========================================================================== -->
|
12348
12390
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
12349
12391
|
<xsl:copy>
|
@@ -12426,7 +12468,8 @@
|
|
12426
12468
|
</xsl:copy>
|
12427
12469
|
</xsl:template>
|
12428
12470
|
|
12429
|
-
|
12471
|
+
<!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
12472
|
+
<xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
|
12430
12473
|
<xsl:copy>
|
12431
12474
|
<xsl:copy-of select="@*"/>
|
12432
12475
|
<xsl:apply-templates mode="update_xml_step1"/>
|
@@ -6492,6 +6492,10 @@
|
|
6492
6492
|
<xsl:variable name="footnote_inline">
|
6493
6493
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
6494
6494
|
|
6495
|
+
<xsl:if test="following-sibling::*[1][local-name() = 'fn']">
|
6496
|
+
<xsl:attribute name="padding-right">0.5mm</xsl:attribute>
|
6497
|
+
</xsl:if>
|
6498
|
+
|
6495
6499
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
6496
6500
|
<xsl:value-of select="$current_fn_number_text"/>
|
6497
6501
|
</fo:basic-link>
|
@@ -7649,6 +7653,23 @@
|
|
7649
7653
|
<xsl:apply-templates/>
|
7650
7654
|
</xsl:template>
|
7651
7655
|
|
7656
|
+
<!-- Don't break standard's numbers -->
|
7657
|
+
<!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
7658
|
+
<xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
|
7659
|
+
<xsl:choose>
|
7660
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
|
7661
|
+
<xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
|
7662
|
+
<fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
|
7663
|
+
</xsl:when>
|
7664
|
+
<xsl:otherwise>
|
7665
|
+
<xsl:apply-templates/>
|
7666
|
+
</xsl:otherwise>
|
7667
|
+
</xsl:choose>
|
7668
|
+
</xsl:template>
|
7669
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'table']) and preceding-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear'] and following-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']]" priority="2">
|
7670
|
+
<fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
|
7671
|
+
</xsl:template>
|
7672
|
+
|
7652
7673
|
<!-- ========================= -->
|
7653
7674
|
<!-- END Rich text formatting -->
|
7654
7675
|
<!-- ========================= -->
|
@@ -8044,7 +8065,7 @@
|
|
8044
8065
|
<xsl:choose>
|
8045
8066
|
<xsl:when test="@colspan">
|
8046
8067
|
<xsl:variable name="td">
|
8047
|
-
<xsl:element name="
|
8068
|
+
<xsl:element name="{local-name()}">
|
8048
8069
|
<xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
|
8049
8070
|
<xsl:if test="local-name()='th'">
|
8050
8071
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8059,7 +8080,7 @@
|
|
8059
8080
|
</xsl:call-template>
|
8060
8081
|
</xsl:when>
|
8061
8082
|
<xsl:otherwise>
|
8062
|
-
<xsl:element name="
|
8083
|
+
<xsl:element name="{local-name()}">
|
8063
8084
|
<xsl:apply-templates select="@*" mode="simple-table-colspan"/>
|
8064
8085
|
<xsl:if test="local-name()='th'">
|
8065
8086
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8126,7 +8147,7 @@
|
|
8126
8147
|
<xsl:variable name="currentRow" select="."/>
|
8127
8148
|
|
8128
8149
|
<xsl:variable name="normalizedTDs">
|
8129
|
-
<xsl:for-each select="xalan:nodeset($previousRow)
|
8150
|
+
<xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
|
8130
8151
|
<xsl:choose>
|
8131
8152
|
<xsl:when test="@rowspan > 1">
|
8132
8153
|
<xsl:copy>
|
@@ -8138,7 +8159,7 @@
|
|
8138
8159
|
</xsl:copy>
|
8139
8160
|
</xsl:when>
|
8140
8161
|
<xsl:otherwise>
|
8141
|
-
<xsl:copy-of select="$currentRow
|
8162
|
+
<xsl:copy-of select="$currentRow/*[self::td or self::th][1 + count(current()/preceding-sibling::*[self::td or self::th][not(@rowspan) or (@rowspan = 1)])]"/>
|
8142
8163
|
</xsl:otherwise>
|
8143
8164
|
</xsl:choose>
|
8144
8165
|
</xsl:for-each>
|
@@ -8853,12 +8874,6 @@
|
|
8853
8874
|
|
8854
8875
|
<fo:block-container margin-left="0mm">
|
8855
8876
|
|
8856
|
-
<!-- <xsl:if test="$namespace = 'iho'">
|
8857
|
-
<xsl:if test="ancestor::iho:td">
|
8858
|
-
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
8859
|
-
</xsl:if>
|
8860
|
-
</xsl:if> -->
|
8861
|
-
|
8862
8877
|
<fo:block>
|
8863
8878
|
|
8864
8879
|
<xsl:if test="@parent-type = 'quote'">
|
@@ -9385,6 +9400,31 @@
|
|
9385
9400
|
<xsl:apply-templates mode="svg_update"/>
|
9386
9401
|
</xsl:copy>
|
9387
9402
|
</xsl:template>
|
9403
|
+
|
9404
|
+
<!-- regex for 'display: inline-block;' -->
|
9405
|
+
<xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
|
9406
|
+
<xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
|
9407
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
|
9408
|
+
</xsl:template>
|
9409
|
+
|
9410
|
+
<!-- replace
|
9411
|
+
stroke="rgba(r, g, b, alpha)" to
|
9412
|
+
stroke="rgb(r,g,b)" stroke-opacity="alpha", and
|
9413
|
+
fill="rgba(r, g, b, alpha)" to
|
9414
|
+
fill="rgb(r,g,b)" fill-opacity="alpha" -->
|
9415
|
+
<xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
|
9416
|
+
<xsl:variable name="components_">
|
9417
|
+
<xsl:call-template name="split">
|
9418
|
+
<xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
|
9419
|
+
<xsl:with-param name="sep" select="','"/>
|
9420
|
+
</xsl:call-template>
|
9421
|
+
</xsl:variable>
|
9422
|
+
<xsl:variable name="components" select="xalan:nodeset($components_)"/>
|
9423
|
+
<xsl:variable name="att_name" select="local-name()"/>
|
9424
|
+
<xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
|
9425
|
+
<xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
|
9426
|
+
</xsl:template>
|
9427
|
+
|
9388
9428
|
<!-- ============== -->
|
9389
9429
|
<!-- END: svg_update -->
|
9390
9430
|
<!-- ============== -->
|
@@ -12343,7 +12383,9 @@
|
|
12343
12383
|
<!-- Update xml -->
|
12344
12384
|
<!-- ===================================== -->
|
12345
12385
|
<!-- =========================================================================== -->
|
12346
|
-
<!-- STEP1:
|
12386
|
+
<!-- STEP1: -->
|
12387
|
+
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12388
|
+
<!-- - Ignore 'span' without style -->
|
12347
12389
|
<!-- =========================================================================== -->
|
12348
12390
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
12349
12391
|
<xsl:copy>
|
@@ -12426,7 +12468,8 @@
|
|
12426
12468
|
</xsl:copy>
|
12427
12469
|
</xsl:template>
|
12428
12470
|
|
12429
|
-
|
12471
|
+
<!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
12472
|
+
<xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
|
12430
12473
|
<xsl:copy>
|
12431
12474
|
<xsl:copy-of select="@*"/>
|
12432
12475
|
<xsl:apply-templates mode="update_xml_step1"/>
|
@@ -6492,6 +6492,10 @@
|
|
6492
6492
|
<xsl:variable name="footnote_inline">
|
6493
6493
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
6494
6494
|
|
6495
|
+
<xsl:if test="following-sibling::*[1][local-name() = 'fn']">
|
6496
|
+
<xsl:attribute name="padding-right">0.5mm</xsl:attribute>
|
6497
|
+
</xsl:if>
|
6498
|
+
|
6495
6499
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
6496
6500
|
<xsl:value-of select="$current_fn_number_text"/>
|
6497
6501
|
</fo:basic-link>
|
@@ -7649,6 +7653,23 @@
|
|
7649
7653
|
<xsl:apply-templates/>
|
7650
7654
|
</xsl:template>
|
7651
7655
|
|
7656
|
+
<!-- Don't break standard's numbers -->
|
7657
|
+
<!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
7658
|
+
<xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
|
7659
|
+
<xsl:choose>
|
7660
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
|
7661
|
+
<xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
|
7662
|
+
<fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
|
7663
|
+
</xsl:when>
|
7664
|
+
<xsl:otherwise>
|
7665
|
+
<xsl:apply-templates/>
|
7666
|
+
</xsl:otherwise>
|
7667
|
+
</xsl:choose>
|
7668
|
+
</xsl:template>
|
7669
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'table']) and preceding-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear'] and following-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']]" priority="2">
|
7670
|
+
<fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
|
7671
|
+
</xsl:template>
|
7672
|
+
|
7652
7673
|
<!-- ========================= -->
|
7653
7674
|
<!-- END Rich text formatting -->
|
7654
7675
|
<!-- ========================= -->
|
@@ -8044,7 +8065,7 @@
|
|
8044
8065
|
<xsl:choose>
|
8045
8066
|
<xsl:when test="@colspan">
|
8046
8067
|
<xsl:variable name="td">
|
8047
|
-
<xsl:element name="
|
8068
|
+
<xsl:element name="{local-name()}">
|
8048
8069
|
<xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
|
8049
8070
|
<xsl:if test="local-name()='th'">
|
8050
8071
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8059,7 +8080,7 @@
|
|
8059
8080
|
</xsl:call-template>
|
8060
8081
|
</xsl:when>
|
8061
8082
|
<xsl:otherwise>
|
8062
|
-
<xsl:element name="
|
8083
|
+
<xsl:element name="{local-name()}">
|
8063
8084
|
<xsl:apply-templates select="@*" mode="simple-table-colspan"/>
|
8064
8085
|
<xsl:if test="local-name()='th'">
|
8065
8086
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8126,7 +8147,7 @@
|
|
8126
8147
|
<xsl:variable name="currentRow" select="."/>
|
8127
8148
|
|
8128
8149
|
<xsl:variable name="normalizedTDs">
|
8129
|
-
<xsl:for-each select="xalan:nodeset($previousRow)
|
8150
|
+
<xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
|
8130
8151
|
<xsl:choose>
|
8131
8152
|
<xsl:when test="@rowspan > 1">
|
8132
8153
|
<xsl:copy>
|
@@ -8138,7 +8159,7 @@
|
|
8138
8159
|
</xsl:copy>
|
8139
8160
|
</xsl:when>
|
8140
8161
|
<xsl:otherwise>
|
8141
|
-
<xsl:copy-of select="$currentRow
|
8162
|
+
<xsl:copy-of select="$currentRow/*[self::td or self::th][1 + count(current()/preceding-sibling::*[self::td or self::th][not(@rowspan) or (@rowspan = 1)])]"/>
|
8142
8163
|
</xsl:otherwise>
|
8143
8164
|
</xsl:choose>
|
8144
8165
|
</xsl:for-each>
|
@@ -8853,12 +8874,6 @@
|
|
8853
8874
|
|
8854
8875
|
<fo:block-container margin-left="0mm">
|
8855
8876
|
|
8856
|
-
<!-- <xsl:if test="$namespace = 'iho'">
|
8857
|
-
<xsl:if test="ancestor::iho:td">
|
8858
|
-
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
8859
|
-
</xsl:if>
|
8860
|
-
</xsl:if> -->
|
8861
|
-
|
8862
8877
|
<fo:block>
|
8863
8878
|
|
8864
8879
|
<xsl:if test="@parent-type = 'quote'">
|
@@ -9385,6 +9400,31 @@
|
|
9385
9400
|
<xsl:apply-templates mode="svg_update"/>
|
9386
9401
|
</xsl:copy>
|
9387
9402
|
</xsl:template>
|
9403
|
+
|
9404
|
+
<!-- regex for 'display: inline-block;' -->
|
9405
|
+
<xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
|
9406
|
+
<xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
|
9407
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
|
9408
|
+
</xsl:template>
|
9409
|
+
|
9410
|
+
<!-- replace
|
9411
|
+
stroke="rgba(r, g, b, alpha)" to
|
9412
|
+
stroke="rgb(r,g,b)" stroke-opacity="alpha", and
|
9413
|
+
fill="rgba(r, g, b, alpha)" to
|
9414
|
+
fill="rgb(r,g,b)" fill-opacity="alpha" -->
|
9415
|
+
<xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
|
9416
|
+
<xsl:variable name="components_">
|
9417
|
+
<xsl:call-template name="split">
|
9418
|
+
<xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
|
9419
|
+
<xsl:with-param name="sep" select="','"/>
|
9420
|
+
</xsl:call-template>
|
9421
|
+
</xsl:variable>
|
9422
|
+
<xsl:variable name="components" select="xalan:nodeset($components_)"/>
|
9423
|
+
<xsl:variable name="att_name" select="local-name()"/>
|
9424
|
+
<xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
|
9425
|
+
<xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
|
9426
|
+
</xsl:template>
|
9427
|
+
|
9388
9428
|
<!-- ============== -->
|
9389
9429
|
<!-- END: svg_update -->
|
9390
9430
|
<!-- ============== -->
|
@@ -12343,7 +12383,9 @@
|
|
12343
12383
|
<!-- Update xml -->
|
12344
12384
|
<!-- ===================================== -->
|
12345
12385
|
<!-- =========================================================================== -->
|
12346
|
-
<!-- STEP1:
|
12386
|
+
<!-- STEP1: -->
|
12387
|
+
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12388
|
+
<!-- - Ignore 'span' without style -->
|
12347
12389
|
<!-- =========================================================================== -->
|
12348
12390
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
12349
12391
|
<xsl:copy>
|
@@ -12426,7 +12468,8 @@
|
|
12426
12468
|
</xsl:copy>
|
12427
12469
|
</xsl:template>
|
12428
12470
|
|
12429
|
-
|
12471
|
+
<!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
12472
|
+
<xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
|
12430
12473
|
<xsl:copy>
|
12431
12474
|
<xsl:copy-of select="@*"/>
|
12432
12475
|
<xsl:apply-templates mode="update_xml_step1"/>
|
@@ -6492,6 +6492,10 @@
|
|
6492
6492
|
<xsl:variable name="footnote_inline">
|
6493
6493
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
6494
6494
|
|
6495
|
+
<xsl:if test="following-sibling::*[1][local-name() = 'fn']">
|
6496
|
+
<xsl:attribute name="padding-right">0.5mm</xsl:attribute>
|
6497
|
+
</xsl:if>
|
6498
|
+
|
6495
6499
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
6496
6500
|
<xsl:value-of select="$current_fn_number_text"/>
|
6497
6501
|
</fo:basic-link>
|
@@ -7649,6 +7653,23 @@
|
|
7649
7653
|
<xsl:apply-templates/>
|
7650
7654
|
</xsl:template>
|
7651
7655
|
|
7656
|
+
<!-- Don't break standard's numbers -->
|
7657
|
+
<!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
7658
|
+
<xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
|
7659
|
+
<xsl:choose>
|
7660
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
|
7661
|
+
<xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
|
7662
|
+
<fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
|
7663
|
+
</xsl:when>
|
7664
|
+
<xsl:otherwise>
|
7665
|
+
<xsl:apply-templates/>
|
7666
|
+
</xsl:otherwise>
|
7667
|
+
</xsl:choose>
|
7668
|
+
</xsl:template>
|
7669
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'table']) and preceding-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear'] and following-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']]" priority="2">
|
7670
|
+
<fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
|
7671
|
+
</xsl:template>
|
7672
|
+
|
7652
7673
|
<!-- ========================= -->
|
7653
7674
|
<!-- END Rich text formatting -->
|
7654
7675
|
<!-- ========================= -->
|
@@ -8044,7 +8065,7 @@
|
|
8044
8065
|
<xsl:choose>
|
8045
8066
|
<xsl:when test="@colspan">
|
8046
8067
|
<xsl:variable name="td">
|
8047
|
-
<xsl:element name="
|
8068
|
+
<xsl:element name="{local-name()}">
|
8048
8069
|
<xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
|
8049
8070
|
<xsl:if test="local-name()='th'">
|
8050
8071
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8059,7 +8080,7 @@
|
|
8059
8080
|
</xsl:call-template>
|
8060
8081
|
</xsl:when>
|
8061
8082
|
<xsl:otherwise>
|
8062
|
-
<xsl:element name="
|
8083
|
+
<xsl:element name="{local-name()}">
|
8063
8084
|
<xsl:apply-templates select="@*" mode="simple-table-colspan"/>
|
8064
8085
|
<xsl:if test="local-name()='th'">
|
8065
8086
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -8126,7 +8147,7 @@
|
|
8126
8147
|
<xsl:variable name="currentRow" select="."/>
|
8127
8148
|
|
8128
8149
|
<xsl:variable name="normalizedTDs">
|
8129
|
-
<xsl:for-each select="xalan:nodeset($previousRow)
|
8150
|
+
<xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
|
8130
8151
|
<xsl:choose>
|
8131
8152
|
<xsl:when test="@rowspan > 1">
|
8132
8153
|
<xsl:copy>
|
@@ -8138,7 +8159,7 @@
|
|
8138
8159
|
</xsl:copy>
|
8139
8160
|
</xsl:when>
|
8140
8161
|
<xsl:otherwise>
|
8141
|
-
<xsl:copy-of select="$currentRow
|
8162
|
+
<xsl:copy-of select="$currentRow/*[self::td or self::th][1 + count(current()/preceding-sibling::*[self::td or self::th][not(@rowspan) or (@rowspan = 1)])]"/>
|
8142
8163
|
</xsl:otherwise>
|
8143
8164
|
</xsl:choose>
|
8144
8165
|
</xsl:for-each>
|
@@ -8853,12 +8874,6 @@
|
|
8853
8874
|
|
8854
8875
|
<fo:block-container margin-left="0mm">
|
8855
8876
|
|
8856
|
-
<!-- <xsl:if test="$namespace = 'iho'">
|
8857
|
-
<xsl:if test="ancestor::iho:td">
|
8858
|
-
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
8859
|
-
</xsl:if>
|
8860
|
-
</xsl:if> -->
|
8861
|
-
|
8862
8877
|
<fo:block>
|
8863
8878
|
|
8864
8879
|
<xsl:if test="@parent-type = 'quote'">
|
@@ -9385,6 +9400,31 @@
|
|
9385
9400
|
<xsl:apply-templates mode="svg_update"/>
|
9386
9401
|
</xsl:copy>
|
9387
9402
|
</xsl:template>
|
9403
|
+
|
9404
|
+
<!-- regex for 'display: inline-block;' -->
|
9405
|
+
<xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
|
9406
|
+
<xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
|
9407
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
|
9408
|
+
</xsl:template>
|
9409
|
+
|
9410
|
+
<!-- replace
|
9411
|
+
stroke="rgba(r, g, b, alpha)" to
|
9412
|
+
stroke="rgb(r,g,b)" stroke-opacity="alpha", and
|
9413
|
+
fill="rgba(r, g, b, alpha)" to
|
9414
|
+
fill="rgb(r,g,b)" fill-opacity="alpha" -->
|
9415
|
+
<xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
|
9416
|
+
<xsl:variable name="components_">
|
9417
|
+
<xsl:call-template name="split">
|
9418
|
+
<xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
|
9419
|
+
<xsl:with-param name="sep" select="','"/>
|
9420
|
+
</xsl:call-template>
|
9421
|
+
</xsl:variable>
|
9422
|
+
<xsl:variable name="components" select="xalan:nodeset($components_)"/>
|
9423
|
+
<xsl:variable name="att_name" select="local-name()"/>
|
9424
|
+
<xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
|
9425
|
+
<xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
|
9426
|
+
</xsl:template>
|
9427
|
+
|
9388
9428
|
<!-- ============== -->
|
9389
9429
|
<!-- END: svg_update -->
|
9390
9430
|
<!-- ============== -->
|
@@ -12343,7 +12383,9 @@
|
|
12343
12383
|
<!-- Update xml -->
|
12344
12384
|
<!-- ===================================== -->
|
12345
12385
|
<!-- =========================================================================== -->
|
12346
|
-
<!-- STEP1:
|
12386
|
+
<!-- STEP1: -->
|
12387
|
+
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12388
|
+
<!-- - Ignore 'span' without style -->
|
12347
12389
|
<!-- =========================================================================== -->
|
12348
12390
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
12349
12391
|
<xsl:copy>
|
@@ -12426,7 +12468,8 @@
|
|
12426
12468
|
</xsl:copy>
|
12427
12469
|
</xsl:template>
|
12428
12470
|
|
12429
|
-
|
12471
|
+
<!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
12472
|
+
<xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
|
12430
12473
|
<xsl:copy>
|
12431
12474
|
<xsl:copy-of select="@*"/>
|
12432
12475
|
<xsl:apply-templates mode="update_xml_step1"/>
|
data/lib/isodoc/bipm/index.rb
CHANGED
@@ -14,12 +14,12 @@ module IsoDoc
|
|
14
14
|
return
|
15
15
|
end
|
16
16
|
i = docxml.at(ns("//indexsect")) ||
|
17
|
-
docxml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}"\
|
17
|
+
docxml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}" \
|
18
18
|
"</title></indexsect>").first
|
19
19
|
index = sort_indexterms(
|
20
20
|
docxml.xpath(ns("//index")),
|
21
21
|
docxml.xpath(ns("//index-xref[@also = 'false']")),
|
22
|
-
docxml.xpath(ns("//index-xref[@also = 'true']"))
|
22
|
+
docxml.xpath(ns("//index-xref[@also = 'true']")),
|
23
23
|
)
|
24
24
|
index1(docxml, i, index)
|
25
25
|
end
|
@@ -27,7 +27,9 @@ module IsoDoc
|
|
27
27
|
def index1(docxml, i, index)
|
28
28
|
index.keys.sort.each do |k|
|
29
29
|
c = i.add_child "<clause #{add_id}><title>#{k}</title><ul></ul></clause>"
|
30
|
-
words = index[k].keys.each_with_object({})
|
30
|
+
words = index[k].keys.each_with_object({}) do |w, v|
|
31
|
+
v[sortable(w).downcase] = w
|
32
|
+
end
|
31
33
|
words.keys.localize(@lang.to_sym).sort.to_a.each do |w|
|
32
34
|
c.first.at(ns("./ul")).add_child index_entries(words, index[k], w)
|
33
35
|
end
|
@@ -64,12 +66,13 @@ module IsoDoc
|
|
64
66
|
ret = index_entries_head(words[secondary],
|
65
67
|
index.dig(words[secondary], nil),
|
66
68
|
index_entries_opt)
|
67
|
-
words3 = index[words[secondary]]&.keys&.reject
|
69
|
+
words3 = index[words[secondary]]&.keys&.reject(&:nil?)
|
68
70
|
&.each_with_object({}) { |w, v| v[w.downcase] = w }
|
69
71
|
unless words3.empty?
|
70
72
|
ret += "<ul>"
|
71
73
|
words3.keys.localize(@lang.to_sym).sort.to_a.each do |w|
|
72
|
-
ret += (index_entries_head(words3[w],
|
74
|
+
ret += (index_entries_head(words3[w],
|
75
|
+
index[words[secondary]][words3[w]], index_entries_opt) + "</li>")
|
73
76
|
end
|
74
77
|
ret += "</ul>"
|
75
78
|
end
|
@@ -79,10 +82,18 @@ module IsoDoc
|
|
79
82
|
def index_entries_head(head, entries, opt)
|
80
83
|
ret = "<li>#{head}"
|
81
84
|
xref = entries&.dig(:xref)&.join(", ")
|
82
|
-
see_sort = entries&.dig(:see)&.each_with_object({})
|
83
|
-
|
84
|
-
|
85
|
-
|
85
|
+
see_sort = entries&.dig(:see)&.each_with_object({}) do |w, v|
|
86
|
+
v[sortable(w).downcase] = w
|
87
|
+
end
|
88
|
+
see = see_sort&.keys&.localize(@lang.to_sym)&.sort&.to_a&.map do |k|
|
89
|
+
see_sort[k]
|
90
|
+
end&.join(", ")
|
91
|
+
also_sort = entries&.dig(:also)&.each_with_object({}) do |w, v|
|
92
|
+
v[sortable(w).downcase] = w
|
93
|
+
end
|
94
|
+
also = also_sort&.keys&.localize(@lang.to_sym)&.sort&.to_a&.map do |k|
|
95
|
+
also_sort[k]
|
96
|
+
end&.join(", ")
|
86
97
|
ret += "#{opt[:xref_lbl]} #{xref}" if xref
|
87
98
|
ret += "#{opt[:see_lbl]} #{see}" if see
|
88
99
|
ret += "#{opt[:also_lbl]} #{also}" if also
|
@@ -107,16 +118,16 @@ module IsoDoc
|
|
107
118
|
end
|
108
119
|
end
|
109
120
|
|
110
|
-
def extract_indexsee(
|
111
|
-
terms.each_with_object(
|
112
|
-
term = t
|
113
|
-
term2 = t
|
114
|
-
term3 = t
|
121
|
+
def extract_indexsee(idx, terms, label)
|
122
|
+
terms.each_with_object(idx) do |t, v|
|
123
|
+
term = to_xml(t.at(ns("./primary"))&.children)
|
124
|
+
term2 = to_xml(t.at(ns("./secondary"))&.children)
|
125
|
+
term3 = to_xml(t.at(ns("./tertiary"))&.children)
|
115
126
|
v[term] ||= {}
|
116
127
|
v[term][term2] ||= {}
|
117
128
|
v[term][term2][term3] ||= {}
|
118
129
|
v[term][term2][term3][label] ||= []
|
119
|
-
v[term][term2][term3][label] << t
|
130
|
+
v[term][term2][term3][label] << to_xml(t.at(ns("./target"))&.children)
|
120
131
|
t.remove
|
121
132
|
end
|
122
133
|
end
|
@@ -129,9 +140,9 @@ module IsoDoc
|
|
129
140
|
# attributes are decoded into UTF-8, elements in extract_indexsee are still in entities
|
130
141
|
def extract_indexterms(terms)
|
131
142
|
terms.each_with_object({}) do |t, v|
|
132
|
-
term = t
|
133
|
-
term2 = t
|
134
|
-
term3 = t
|
143
|
+
term = to_xml(t.at(ns("./primary"))&.children)
|
144
|
+
term2 = to_xml(t.at(ns("./secondary"))&.children)
|
145
|
+
term3 = to_xml(t.at(ns("./tertiary"))&.children)
|
135
146
|
index2bookmark(t)
|
136
147
|
v[term] ||= {}
|
137
148
|
v[term][term2] ||= {}
|
@@ -4371,6 +4371,10 @@
|
|
4371
4371
|
<xsl:variable name="footnote_inline">
|
4372
4372
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
4373
4373
|
|
4374
|
+
<xsl:if test="following-sibling::*[1][local-name() = 'fn']">
|
4375
|
+
<xsl:attribute name="padding-right">0.5mm</xsl:attribute>
|
4376
|
+
</xsl:if>
|
4377
|
+
|
4374
4378
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
4375
4379
|
<xsl:value-of select="$current_fn_number_text"/>
|
4376
4380
|
</fo:basic-link>
|
@@ -5541,6 +5545,23 @@
|
|
5541
5545
|
<xsl:apply-templates/>
|
5542
5546
|
</xsl:template>
|
5543
5547
|
|
5548
|
+
<!-- Don't break standard's numbers -->
|
5549
|
+
<!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
5550
|
+
<xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
|
5551
|
+
<xsl:choose>
|
5552
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
|
5553
|
+
<xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
|
5554
|
+
<fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
|
5555
|
+
</xsl:when>
|
5556
|
+
<xsl:otherwise>
|
5557
|
+
<xsl:apply-templates/>
|
5558
|
+
</xsl:otherwise>
|
5559
|
+
</xsl:choose>
|
5560
|
+
</xsl:template>
|
5561
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'table']) and preceding-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear'] and following-sibling::*[1][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']]" priority="2">
|
5562
|
+
<fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
|
5563
|
+
</xsl:template>
|
5564
|
+
|
5544
5565
|
<!-- ========================= -->
|
5545
5566
|
<!-- END Rich text formatting -->
|
5546
5567
|
<!-- ========================= -->
|
@@ -5936,7 +5957,7 @@
|
|
5936
5957
|
<xsl:choose>
|
5937
5958
|
<xsl:when test="@colspan">
|
5938
5959
|
<xsl:variable name="td">
|
5939
|
-
<xsl:element name="
|
5960
|
+
<xsl:element name="{local-name()}">
|
5940
5961
|
<xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
|
5941
5962
|
<xsl:if test="local-name()='th'">
|
5942
5963
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -5951,7 +5972,7 @@
|
|
5951
5972
|
</xsl:call-template>
|
5952
5973
|
</xsl:when>
|
5953
5974
|
<xsl:otherwise>
|
5954
|
-
<xsl:element name="
|
5975
|
+
<xsl:element name="{local-name()}">
|
5955
5976
|
<xsl:apply-templates select="@*" mode="simple-table-colspan"/>
|
5956
5977
|
<xsl:if test="local-name()='th'">
|
5957
5978
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -6018,7 +6039,7 @@
|
|
6018
6039
|
<xsl:variable name="currentRow" select="."/>
|
6019
6040
|
|
6020
6041
|
<xsl:variable name="normalizedTDs">
|
6021
|
-
<xsl:for-each select="xalan:nodeset($previousRow)
|
6042
|
+
<xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
|
6022
6043
|
<xsl:choose>
|
6023
6044
|
<xsl:when test="@rowspan > 1">
|
6024
6045
|
<xsl:copy>
|
@@ -6030,7 +6051,7 @@
|
|
6030
6051
|
</xsl:copy>
|
6031
6052
|
</xsl:when>
|
6032
6053
|
<xsl:otherwise>
|
6033
|
-
<xsl:copy-of select="$currentRow
|
6054
|
+
<xsl:copy-of select="$currentRow/*[self::td or self::th][1 + count(current()/preceding-sibling::*[self::td or self::th][not(@rowspan) or (@rowspan = 1)])]"/>
|
6034
6055
|
</xsl:otherwise>
|
6035
6056
|
</xsl:choose>
|
6036
6057
|
</xsl:for-each>
|
@@ -6707,12 +6728,6 @@
|
|
6707
6728
|
|
6708
6729
|
<fo:block-container margin-left="0mm">
|
6709
6730
|
|
6710
|
-
<!-- <xsl:if test="$namespace = 'iho'">
|
6711
|
-
<xsl:if test="ancestor::iho:td">
|
6712
|
-
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
6713
|
-
</xsl:if>
|
6714
|
-
</xsl:if> -->
|
6715
|
-
|
6716
6731
|
<fo:block>
|
6717
6732
|
|
6718
6733
|
<fo:inline xsl:use-attribute-sets="note-name-style">
|
@@ -7216,6 +7231,31 @@
|
|
7216
7231
|
<xsl:apply-templates mode="svg_update"/>
|
7217
7232
|
</xsl:copy>
|
7218
7233
|
</xsl:template>
|
7234
|
+
|
7235
|
+
<!-- regex for 'display: inline-block;' -->
|
7236
|
+
<xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
|
7237
|
+
<xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
|
7238
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
|
7239
|
+
</xsl:template>
|
7240
|
+
|
7241
|
+
<!-- replace
|
7242
|
+
stroke="rgba(r, g, b, alpha)" to
|
7243
|
+
stroke="rgb(r,g,b)" stroke-opacity="alpha", and
|
7244
|
+
fill="rgba(r, g, b, alpha)" to
|
7245
|
+
fill="rgb(r,g,b)" fill-opacity="alpha" -->
|
7246
|
+
<xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
|
7247
|
+
<xsl:variable name="components_">
|
7248
|
+
<xsl:call-template name="split">
|
7249
|
+
<xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
|
7250
|
+
<xsl:with-param name="sep" select="','"/>
|
7251
|
+
</xsl:call-template>
|
7252
|
+
</xsl:variable>
|
7253
|
+
<xsl:variable name="components" select="xalan:nodeset($components_)"/>
|
7254
|
+
<xsl:variable name="att_name" select="local-name()"/>
|
7255
|
+
<xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
|
7256
|
+
<xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
|
7257
|
+
</xsl:template>
|
7258
|
+
|
7219
7259
|
<!-- ============== -->
|
7220
7260
|
<!-- END: svg_update -->
|
7221
7261
|
<!-- ============== -->
|
@@ -10163,7 +10203,9 @@
|
|
10163
10203
|
<!-- Update xml -->
|
10164
10204
|
<!-- ===================================== -->
|
10165
10205
|
<!-- =========================================================================== -->
|
10166
|
-
<!-- STEP1:
|
10206
|
+
<!-- STEP1: -->
|
10207
|
+
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
10208
|
+
<!-- - Ignore 'span' without style -->
|
10167
10209
|
<!-- =========================================================================== -->
|
10168
10210
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
10169
10211
|
<xsl:copy>
|
@@ -10246,7 +10288,8 @@
|
|
10246
10288
|
</xsl:copy>
|
10247
10289
|
</xsl:template>
|
10248
10290
|
|
10249
|
-
|
10291
|
+
<!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
|
10292
|
+
<xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
|
10250
10293
|
<xsl:copy>
|
10251
10294
|
<xsl:copy-of select="@*"/>
|
10252
10295
|
<xsl:apply-templates mode="update_xml_step1"/>
|
@@ -9,7 +9,7 @@ module IsoDoc
|
|
9
9
|
module BIPM
|
10
10
|
class PresentationXMLConvert < IsoDoc::Generic::PresentationXMLConvert
|
11
11
|
def convert1(docxml, filename, dir)
|
12
|
-
@jcgm = docxml&.at(ns("//bibdata/ext/editorialgroup/committee/"\
|
12
|
+
@jcgm = docxml&.at(ns("//bibdata/ext/editorialgroup/committee/" \
|
13
13
|
"@acronym"))&.value == "JCGM"
|
14
14
|
@iso = IsoDoc::Iso::PresentationXMLConvert
|
15
15
|
.new({ language: @lang, script: @script })
|
@@ -18,9 +18,8 @@ module IsoDoc
|
|
18
18
|
super
|
19
19
|
end
|
20
20
|
|
21
|
-
def eref_localities1(
|
22
|
-
@jcgm and return @iso.eref_localities1(
|
23
|
-
node, lang)
|
21
|
+
def eref_localities1(opt)
|
22
|
+
@jcgm and return @iso.eref_localities1(opt)
|
24
23
|
super
|
25
24
|
end
|
26
25
|
|
@@ -46,7 +45,7 @@ module IsoDoc
|
|
46
45
|
|
47
46
|
lbl = @xrefs.anchor(elem["id"], :label)
|
48
47
|
t = elem.at(ns("./title")) and
|
49
|
-
t.children = "<strong>#{t.children
|
48
|
+
t.children = "<strong>#{to_xml(t.children)}</strong>"
|
50
49
|
prefix_name(elem, ".<tab/>", lbl, "title")
|
51
50
|
end
|
52
51
|
|
@@ -118,7 +117,7 @@ module IsoDoc
|
|
118
117
|
end
|
119
118
|
|
120
119
|
def bibdata_titles(bibdata)
|
121
|
-
return unless app = bibdata.at(ns("//bibdata/ext/"\
|
120
|
+
return unless app = bibdata.at(ns("//bibdata/ext/" \
|
122
121
|
"structuredidentifier/part"))
|
123
122
|
|
124
123
|
bibdata.xpath(ns("//bibdata/title[@type = 'part']")).each do |t|
|
@@ -126,7 +125,7 @@ module IsoDoc
|
|
126
125
|
t["type"] = "part-with-numbering"
|
127
126
|
part = t["language"] == "en" ? "Part" : "Partie"
|
128
127
|
# not looking up in YAML
|
129
|
-
t.children = l10n("#{part} #{app.text}: #{t.children
|
128
|
+
t.children = l10n("#{part} #{app.text}: #{to_xml(t.children)}",
|
130
129
|
t["language"])
|
131
130
|
end
|
132
131
|
end
|
@@ -204,9 +203,9 @@ module IsoDoc
|
|
204
203
|
|
205
204
|
def termsource1(elem)
|
206
205
|
while elem&.next_element&.name == "termsource"
|
207
|
-
elem << "; #{elem.next_element.remove.children
|
206
|
+
elem << "; #{to_xml(elem.next_element.remove.children)}"
|
208
207
|
end
|
209
|
-
elem.children = l10n("[#{@i18n.source} #{elem.children.
|
208
|
+
elem.children = l10n("[#{@i18n.source} #{to_xml(elem.children).strip}]")
|
210
209
|
end
|
211
210
|
|
212
211
|
include Init
|
data/metanorma-bipm.gemspec
CHANGED
@@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
29
29
|
|
30
|
-
spec.add_dependency "metanorma-generic", "~> 2.
|
31
|
-
spec.add_dependency "metanorma-iso", "~> 2.
|
30
|
+
spec.add_dependency "metanorma-generic", "~> 2.3.0"
|
31
|
+
spec.add_dependency "metanorma-iso", "~> 2.3.0"
|
32
32
|
|
33
33
|
spec.add_development_dependency "debug"
|
34
34
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-bipm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-generic
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: metanorma-iso
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: debug
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
297
|
- !ruby/object:Gem::Version
|
298
298
|
version: '0'
|
299
299
|
requirements: []
|
300
|
-
rubygems_version: 3.3.
|
300
|
+
rubygems_version: 3.3.26
|
301
301
|
signing_key:
|
302
302
|
specification_version: 4
|
303
303
|
summary: metanorma-bipm lets you write BIPM standards in Metanorma.
|