metanorma-un 0.9.13 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ab639f67a56793ac0c4cd8c7e4f4f87714bc1f67fb2897a014bfffdc9a1c684
4
- data.tar.gz: 78ec32fe72a479329a179fb7cb60c0e30aededbfe7e6d1655a1957876f6290ce
3
+ metadata.gz: c1f88faecab823265a04683e0cb537559854d1305ff1131b1406f5485f8f84cc
4
+ data.tar.gz: f3296a9d4c51493ac3fdf9272c98fabafc090c7722aa31044ef80d90d98107f1
5
5
  SHA512:
6
- metadata.gz: b17e04aded032ff576c2ed9c69a5a31890fa54f301b4338db9aac6e7c82b3cc34f29cdaaba6b46d082843f71e6fa8bb8ec2cde973bedfd64655a5223532296e9
7
- data.tar.gz: 4b4d406dd3f392a331c29102b1ac8dedab932012806de5a2a87dbced5e56d11f86a8953819d7d37cb9283906d6df56435d77633fb6ab1e3b3b91ba75a07e6026
6
+ metadata.gz: 8acc09d4a9cec681e329578ab3262956ade90bcadd9718be93fa4dfdd3a952d2c509a9655f743419572256edee2372be511fd7eef20c096f9d6dc8aeaf8c1fec
7
+ data.tar.gz: 7028049467e75c46e9aa2e3b17b625f06c440f13f5a3319596b3ba98d7a429d27e7516559c332d73f4052f98a3deede370860b2e98efab1a22069cbff661d436
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .rubocop-https--*
4
4
 
5
5
  /.rspec_status
6
- /Gemfile.devel
7
6
  /Gemfile.lock
8
7
  /coverage/
9
8
  /test.doc
@@ -34,7 +34,7 @@ module IsoDoc
34
34
  def annex1(elem)
35
35
  lbl = @xrefs.anchor(elem["id"], :label)
36
36
  if t = elem.at(ns("./title"))
37
- t.children = "<strong>#{t.children.to_xml}</strong>"
37
+ t.children = "<strong>#{to_xml(t.children)}</strong>"
38
38
  end
39
39
  prefix_name(elem, "<br/>", lbl, "title")
40
40
  end
@@ -3320,6 +3320,10 @@
3320
3320
  <xsl:variable name="footnote_inline">
3321
3321
  <fo:inline xsl:use-attribute-sets="fn-num-style">
3322
3322
 
3323
+ <xsl:if test="following-sibling::*[1][local-name() = 'fn']">
3324
+ <xsl:attribute name="padding-right">0.5mm</xsl:attribute>
3325
+ </xsl:if>
3326
+
3323
3327
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3324
3328
  <xsl:value-of select="$current_fn_number_text"/>
3325
3329
  </fo:basic-link>
@@ -4468,6 +4472,23 @@
4468
4472
  <xsl:apply-templates/>
4469
4473
  </xsl:template>
4470
4474
 
4475
+ <!-- Don't break standard's numbers -->
4476
+ <!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
4477
+ <xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
4478
+ <xsl:choose>
4479
+ <xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
4480
+ <xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
4481
+ <fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
4482
+ </xsl:when>
4483
+ <xsl:otherwise>
4484
+ <xsl:apply-templates/>
4485
+ </xsl:otherwise>
4486
+ </xsl:choose>
4487
+ </xsl:template>
4488
+ <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">
4489
+ <fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
4490
+ </xsl:template>
4491
+
4471
4492
  <!-- ========================= -->
4472
4493
  <!-- END Rich text formatting -->
4473
4494
  <!-- ========================= -->
@@ -4863,7 +4884,7 @@
4863
4884
  <xsl:choose>
4864
4885
  <xsl:when test="@colspan">
4865
4886
  <xsl:variable name="td">
4866
- <xsl:element name="td">
4887
+ <xsl:element name="{local-name()}">
4867
4888
  <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
4868
4889
  <xsl:if test="local-name()='th'">
4869
4890
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4878,7 +4899,7 @@
4878
4899
  </xsl:call-template>
4879
4900
  </xsl:when>
4880
4901
  <xsl:otherwise>
4881
- <xsl:element name="td">
4902
+ <xsl:element name="{local-name()}">
4882
4903
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4883
4904
  <xsl:if test="local-name()='th'">
4884
4905
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4945,7 +4966,7 @@
4945
4966
  <xsl:variable name="currentRow" select="."/>
4946
4967
 
4947
4968
  <xsl:variable name="normalizedTDs">
4948
- <xsl:for-each select="xalan:nodeset($previousRow)//td">
4969
+ <xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
4949
4970
  <xsl:choose>
4950
4971
  <xsl:when test="@rowspan &gt; 1">
4951
4972
  <xsl:copy>
@@ -4957,7 +4978,7 @@
4957
4978
  </xsl:copy>
4958
4979
  </xsl:when>
4959
4980
  <xsl:otherwise>
4960
- <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
4981
+ <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)])]"/>
4961
4982
  </xsl:otherwise>
4962
4983
  </xsl:choose>
4963
4984
  </xsl:for-each>
@@ -5632,12 +5653,6 @@
5632
5653
 
5633
5654
  <fo:block-container margin-left="0mm">
5634
5655
 
5635
- <!-- <xsl:if test="$namespace = 'iho'">
5636
- <xsl:if test="ancestor::iho:td">
5637
- <xsl:attribute name="font-size">12pt</xsl:attribute>
5638
- </xsl:if>
5639
- </xsl:if> -->
5640
-
5641
5656
  <fo:block>
5642
5657
 
5643
5658
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -6152,6 +6167,31 @@
6152
6167
  <xsl:apply-templates mode="svg_update"/>
6153
6168
  </xsl:copy>
6154
6169
  </xsl:template>
6170
+
6171
+ <!-- regex for 'display: inline-block;' -->
6172
+ <xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
6173
+ <xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
6174
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
6175
+ </xsl:template>
6176
+
6177
+ <!-- replace
6178
+ stroke="rgba(r, g, b, alpha)" to
6179
+ stroke="rgb(r,g,b)" stroke-opacity="alpha", and
6180
+ fill="rgba(r, g, b, alpha)" to
6181
+ fill="rgb(r,g,b)" fill-opacity="alpha" -->
6182
+ <xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
6183
+ <xsl:variable name="components_">
6184
+ <xsl:call-template name="split">
6185
+ <xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
6186
+ <xsl:with-param name="sep" select="','"/>
6187
+ </xsl:call-template>
6188
+ </xsl:variable>
6189
+ <xsl:variable name="components" select="xalan:nodeset($components_)"/>
6190
+ <xsl:variable name="att_name" select="local-name()"/>
6191
+ <xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
6192
+ <xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
6193
+ </xsl:template>
6194
+
6155
6195
  <!-- ============== -->
6156
6196
  <!-- END: svg_update -->
6157
6197
  <!-- ============== -->
@@ -9061,7 +9101,9 @@
9061
9101
  <!-- Update xml -->
9062
9102
  <!-- ===================================== -->
9063
9103
  <!-- =========================================================================== -->
9064
- <!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9104
+ <!-- STEP1: -->
9105
+ <!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
9106
+ <!-- - Ignore 'span' without style -->
9065
9107
  <!-- =========================================================================== -->
9066
9108
  <xsl:template match="@*|node()" mode="update_xml_step1">
9067
9109
  <xsl:copy>
@@ -9144,7 +9186,8 @@
9144
9186
  </xsl:copy>
9145
9187
  </xsl:template>
9146
9188
 
9147
- <xsl:template match="*[local-name() = 'span'][@style]" mode="update_xml_step1" priority="2">
9189
+ <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
9190
+ <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">
9148
9191
  <xsl:copy>
9149
9192
  <xsl:copy-of select="@*"/>
9150
9193
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -3320,6 +3320,10 @@
3320
3320
  <xsl:variable name="footnote_inline">
3321
3321
  <fo:inline xsl:use-attribute-sets="fn-num-style">
3322
3322
 
3323
+ <xsl:if test="following-sibling::*[1][local-name() = 'fn']">
3324
+ <xsl:attribute name="padding-right">0.5mm</xsl:attribute>
3325
+ </xsl:if>
3326
+
3323
3327
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3324
3328
  <xsl:value-of select="$current_fn_number_text"/>
3325
3329
  </fo:basic-link>
@@ -4468,6 +4472,23 @@
4468
4472
  <xsl:apply-templates/>
4469
4473
  </xsl:template>
4470
4474
 
4475
+ <!-- Don't break standard's numbers -->
4476
+ <!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
4477
+ <xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
4478
+ <xsl:choose>
4479
+ <xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
4480
+ <xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
4481
+ <fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
4482
+ </xsl:when>
4483
+ <xsl:otherwise>
4484
+ <xsl:apply-templates/>
4485
+ </xsl:otherwise>
4486
+ </xsl:choose>
4487
+ </xsl:template>
4488
+ <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">
4489
+ <fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
4490
+ </xsl:template>
4491
+
4471
4492
  <!-- ========================= -->
4472
4493
  <!-- END Rich text formatting -->
4473
4494
  <!-- ========================= -->
@@ -4863,7 +4884,7 @@
4863
4884
  <xsl:choose>
4864
4885
  <xsl:when test="@colspan">
4865
4886
  <xsl:variable name="td">
4866
- <xsl:element name="td">
4887
+ <xsl:element name="{local-name()}">
4867
4888
  <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
4868
4889
  <xsl:if test="local-name()='th'">
4869
4890
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4878,7 +4899,7 @@
4878
4899
  </xsl:call-template>
4879
4900
  </xsl:when>
4880
4901
  <xsl:otherwise>
4881
- <xsl:element name="td">
4902
+ <xsl:element name="{local-name()}">
4882
4903
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4883
4904
  <xsl:if test="local-name()='th'">
4884
4905
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4945,7 +4966,7 @@
4945
4966
  <xsl:variable name="currentRow" select="."/>
4946
4967
 
4947
4968
  <xsl:variable name="normalizedTDs">
4948
- <xsl:for-each select="xalan:nodeset($previousRow)//td">
4969
+ <xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
4949
4970
  <xsl:choose>
4950
4971
  <xsl:when test="@rowspan &gt; 1">
4951
4972
  <xsl:copy>
@@ -4957,7 +4978,7 @@
4957
4978
  </xsl:copy>
4958
4979
  </xsl:when>
4959
4980
  <xsl:otherwise>
4960
- <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
4981
+ <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)])]"/>
4961
4982
  </xsl:otherwise>
4962
4983
  </xsl:choose>
4963
4984
  </xsl:for-each>
@@ -5632,12 +5653,6 @@
5632
5653
 
5633
5654
  <fo:block-container margin-left="0mm">
5634
5655
 
5635
- <!-- <xsl:if test="$namespace = 'iho'">
5636
- <xsl:if test="ancestor::iho:td">
5637
- <xsl:attribute name="font-size">12pt</xsl:attribute>
5638
- </xsl:if>
5639
- </xsl:if> -->
5640
-
5641
5656
  <fo:block>
5642
5657
 
5643
5658
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -6152,6 +6167,31 @@
6152
6167
  <xsl:apply-templates mode="svg_update"/>
6153
6168
  </xsl:copy>
6154
6169
  </xsl:template>
6170
+
6171
+ <!-- regex for 'display: inline-block;' -->
6172
+ <xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
6173
+ <xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
6174
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
6175
+ </xsl:template>
6176
+
6177
+ <!-- replace
6178
+ stroke="rgba(r, g, b, alpha)" to
6179
+ stroke="rgb(r,g,b)" stroke-opacity="alpha", and
6180
+ fill="rgba(r, g, b, alpha)" to
6181
+ fill="rgb(r,g,b)" fill-opacity="alpha" -->
6182
+ <xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
6183
+ <xsl:variable name="components_">
6184
+ <xsl:call-template name="split">
6185
+ <xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
6186
+ <xsl:with-param name="sep" select="','"/>
6187
+ </xsl:call-template>
6188
+ </xsl:variable>
6189
+ <xsl:variable name="components" select="xalan:nodeset($components_)"/>
6190
+ <xsl:variable name="att_name" select="local-name()"/>
6191
+ <xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
6192
+ <xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
6193
+ </xsl:template>
6194
+
6155
6195
  <!-- ============== -->
6156
6196
  <!-- END: svg_update -->
6157
6197
  <!-- ============== -->
@@ -9061,7 +9101,9 @@
9061
9101
  <!-- Update xml -->
9062
9102
  <!-- ===================================== -->
9063
9103
  <!-- =========================================================================== -->
9064
- <!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9104
+ <!-- STEP1: -->
9105
+ <!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
9106
+ <!-- - Ignore 'span' without style -->
9065
9107
  <!-- =========================================================================== -->
9066
9108
  <xsl:template match="@*|node()" mode="update_xml_step1">
9067
9109
  <xsl:copy>
@@ -9144,7 +9186,8 @@
9144
9186
  </xsl:copy>
9145
9187
  </xsl:template>
9146
9188
 
9147
- <xsl:template match="*[local-name() = 'span'][@style]" mode="update_xml_step1" priority="2">
9189
+ <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
9190
+ <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">
9148
9191
  <xsl:copy>
9149
9192
  <xsl:copy-of select="@*"/>
9150
9193
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -3414,6 +3414,10 @@
3414
3414
  <xsl:variable name="footnote_inline">
3415
3415
  <fo:inline xsl:use-attribute-sets="fn-num-style">
3416
3416
 
3417
+ <xsl:if test="following-sibling::*[1][local-name() = 'fn']">
3418
+ <xsl:attribute name="padding-right">0.5mm</xsl:attribute>
3419
+ </xsl:if>
3420
+
3417
3421
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3418
3422
  <xsl:value-of select="$current_fn_number_text"/>
3419
3423
  </fo:basic-link>
@@ -4562,6 +4566,23 @@
4562
4566
  <xsl:apply-templates/>
4563
4567
  </xsl:template>
4564
4568
 
4569
+ <!-- Don't break standard's numbers -->
4570
+ <!-- Example : <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
4571
+ <xsl:template match="*[local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" priority="2">
4572
+ <xsl:choose>
4573
+ <xsl:when test="ancestor::*[local-name() = 'table']"><xsl:apply-templates/></xsl:when>
4574
+ <xsl:when test="following-sibling::*[2][local-name() = 'span'][@class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']">
4575
+ <fo:inline keep-with-next.within-line="always"><xsl:apply-templates/></fo:inline>
4576
+ </xsl:when>
4577
+ <xsl:otherwise>
4578
+ <xsl:apply-templates/>
4579
+ </xsl:otherwise>
4580
+ </xsl:choose>
4581
+ </xsl:template>
4582
+ <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">
4583
+ <fo:inline keep-with-next.within-line="always"><xsl:value-of select="."/></fo:inline>
4584
+ </xsl:template>
4585
+
4565
4586
  <!-- ========================= -->
4566
4587
  <!-- END Rich text formatting -->
4567
4588
  <!-- ========================= -->
@@ -4957,7 +4978,7 @@
4957
4978
  <xsl:choose>
4958
4979
  <xsl:when test="@colspan">
4959
4980
  <xsl:variable name="td">
4960
- <xsl:element name="td">
4981
+ <xsl:element name="{local-name()}">
4961
4982
  <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
4962
4983
  <xsl:if test="local-name()='th'">
4963
4984
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4972,7 +4993,7 @@
4972
4993
  </xsl:call-template>
4973
4994
  </xsl:when>
4974
4995
  <xsl:otherwise>
4975
- <xsl:element name="td">
4996
+ <xsl:element name="{local-name()}">
4976
4997
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4977
4998
  <xsl:if test="local-name()='th'">
4978
4999
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -5039,7 +5060,7 @@
5039
5060
  <xsl:variable name="currentRow" select="."/>
5040
5061
 
5041
5062
  <xsl:variable name="normalizedTDs">
5042
- <xsl:for-each select="xalan:nodeset($previousRow)//td">
5063
+ <xsl:for-each select="xalan:nodeset($previousRow)//*[self::td or self::th]">
5043
5064
  <xsl:choose>
5044
5065
  <xsl:when test="@rowspan &gt; 1">
5045
5066
  <xsl:copy>
@@ -5051,7 +5072,7 @@
5051
5072
  </xsl:copy>
5052
5073
  </xsl:when>
5053
5074
  <xsl:otherwise>
5054
- <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
5075
+ <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)])]"/>
5055
5076
  </xsl:otherwise>
5056
5077
  </xsl:choose>
5057
5078
  </xsl:for-each>
@@ -5730,12 +5751,6 @@
5730
5751
 
5731
5752
  <fo:block-container margin-left="0mm">
5732
5753
 
5733
- <!-- <xsl:if test="$namespace = 'iho'">
5734
- <xsl:if test="ancestor::iho:td">
5735
- <xsl:attribute name="font-size">12pt</xsl:attribute>
5736
- </xsl:if>
5737
- </xsl:if> -->
5738
-
5739
5754
  <fo:block>
5740
5755
 
5741
5756
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -6255,6 +6270,31 @@
6255
6270
  <xsl:apply-templates mode="svg_update"/>
6256
6271
  </xsl:copy>
6257
6272
  </xsl:template>
6273
+
6274
+ <!-- regex for 'display: inline-block;' -->
6275
+ <xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
6276
+ <xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
6277
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), $regex_svg_style_notsupported, '')"/>
6278
+ </xsl:template>
6279
+
6280
+ <!-- replace
6281
+ stroke="rgba(r, g, b, alpha)" to
6282
+ stroke="rgb(r,g,b)" stroke-opacity="alpha", and
6283
+ fill="rgba(r, g, b, alpha)" to
6284
+ fill="rgb(r,g,b)" fill-opacity="alpha" -->
6285
+ <xsl:template match="@*[local-name() = 'stroke' or local-name() = 'fill'][starts-with(normalize-space(.), 'rgba')]" mode="svg_update">
6286
+ <xsl:variable name="components_">
6287
+ <xsl:call-template name="split">
6288
+ <xsl:with-param name="pText" select="substring-before(substring-after(., '('), ')')"/>
6289
+ <xsl:with-param name="sep" select="','"/>
6290
+ </xsl:call-template>
6291
+ </xsl:variable>
6292
+ <xsl:variable name="components" select="xalan:nodeset($components_)"/>
6293
+ <xsl:variable name="att_name" select="local-name()"/>
6294
+ <xsl:attribute name="{$att_name}"><xsl:value-of select="concat('rgb(', $components/item[1], ',', $components/item[2], ',', $components/item[3], ')')"/></xsl:attribute>
6295
+ <xsl:attribute name="{$att_name}-opacity"><xsl:value-of select="$components/item[4]"/></xsl:attribute>
6296
+ </xsl:template>
6297
+
6258
6298
  <!-- ============== -->
6259
6299
  <!-- END: svg_update -->
6260
6300
  <!-- ============== -->
@@ -9165,7 +9205,9 @@
9165
9205
  <!-- Update xml -->
9166
9206
  <!-- ===================================== -->
9167
9207
  <!-- =========================================================================== -->
9168
- <!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
9208
+ <!-- STEP1: -->
9209
+ <!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
9210
+ <!-- - Ignore 'span' without style -->
9169
9211
  <!-- =========================================================================== -->
9170
9212
  <xsl:template match="@*|node()" mode="update_xml_step1">
9171
9213
  <xsl:copy>
@@ -9248,7 +9290,8 @@
9248
9290
  </xsl:copy>
9249
9291
  </xsl:template>
9250
9292
 
9251
- <xsl:template match="*[local-name() = 'span'][@style]" mode="update_xml_step1" priority="2">
9293
+ <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
9294
+ <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">
9252
9295
  <xsl:copy>
9253
9296
  <xsl:copy-of select="@*"/>
9254
9297
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -683,6 +683,9 @@
683
683
  </define>
684
684
  <define name="underline">
685
685
  <element name="underline">
686
+ <optional>
687
+ <attribute name="style"/>
688
+ </optional>
686
689
  <zeroOrMore>
687
690
  <ref name="PureTextElement"/>
688
691
  </zeroOrMore>
@@ -47,7 +47,7 @@
47
47
  </element>
48
48
  </define>
49
49
  <define name="DocumentType">
50
- <value>document</value>
50
+ <text/>
51
51
  </define>
52
52
  <define name="docsubtype">
53
53
  <element name="subdoctype">
@@ -2653,6 +2653,7 @@
2653
2653
  <value>full</value>
2654
2654
  <value>short</value>
2655
2655
  <value>id</value>
2656
+ <value>modspec</value>
2656
2657
  </choice>
2657
2658
  </define>
2658
2659
  <define name="erefTypeWithConnective">
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module UN
3
- VERSION = "0.9.13".freeze
3
+ VERSION = "0.10.0".freeze
4
4
  end
5
5
  end
data/metanorma-un.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "roman-numerals"
32
32
  spec.add_dependency "twitter_cldr"
33
33
 
34
- spec.add_dependency "metanorma-standoc", "~> 2.2.4"
34
+ spec.add_dependency "metanorma-standoc", "~> 2.3.0"
35
35
 
36
36
  spec.add_development_dependency "debug"
37
37
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-un
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.10.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-21 00:00:00.000000000 Z
11
+ date: 2022-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iso-639
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 2.2.4
61
+ version: 2.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 2.2.4
68
+ version: 2.3.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: debug
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  - !ruby/object:Gem::Version
289
289
  version: '0'
290
290
  requirements: []
291
- rubygems_version: 3.3.7
291
+ rubygems_version: 3.3.26
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Metanorma for UN.