metanorma-iec 2.5.6 → 2.5.7

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: 78359e2ac02b91e944cc5f6ca43a5f75bb7815bbec9b12095904b7e0b2b03c92
4
- data.tar.gz: 5aafa118815a882f6d6b77d0d92f8a3810973e1823d244edf8d8aa5a46763df6
3
+ metadata.gz: 2943a0d27f9b2a3dfc6f3075e9f09a5e98e2e3bff208fedecf134a79d8e62d77
4
+ data.tar.gz: c4d3c17e2d976295a1c43a099db21131d7234c08365145dc653e2d9483a8cee5
5
5
  SHA512:
6
- metadata.gz: 752e4dd0e8170ac2b9d890df5d3a8703cbf76d63c1598df38381a7118129d51bbc75cf1f2b86d00892f35d92df483ff7030b9dfeb3f148135d5b0af48cb24cb8
7
- data.tar.gz: 056c959058c619cb27330f33a3430ed8b4dcb4ea812381fc4dc9953f088a21b27d85b5a793c09381264082ab292ae1002fa808786df24af3c8c6a4963d39e8ac
6
+ metadata.gz: fdf68ccbd39985b4d01465b82e03a4c3e877ed2287f7b918e4003216d8985f65a0ac1225a453de0b9c28e99e129a4dbb5366c5c2c07d4e639556e6e324fcc440
7
+ data.tar.gz: 2bad112331aabedd8c60fce2052dd73edcacb707d1c84778d41ba1a735930a825795d77a4aaca9f6721ed8d7723659de3160bae06af4efb9084079f628b2b870
@@ -8,28 +8,27 @@ module IsoDoc
8
8
  # processed in foreword instead
9
9
  end
10
10
 
11
- def foreword(sect, out)
12
- out.div **attr_code(id: sect ? sect["id"] : "") do |s|
13
- s.h1(class: "ForewordTitle") { |h1| h1 << @i18n.foreword }
14
- sect&.elements&.each { |e| parse(e, s) unless e.name == "title" }
11
+ def foreword(clause, out)
12
+ out.div **attr_code(id: clause["id"]) do |s|
13
+ clause_name(nil, clause.at(ns("./title")), s,
14
+ { class: "ForewordTitle" })
15
+ clause.elements.each { |e| parse(e, s) unless e.name == "title" }
15
16
  end
16
17
  end
17
18
 
18
19
  def bibliography(node, out)
19
- return super unless @is_iev
20
+ @is_iev or return super
20
21
  end
21
22
 
22
23
  def biblio_list(elem, div, biblio)
23
- return super unless @is_iev
24
-
24
+ @is_iev or return super
25
25
  elem.children.each do |b|
26
26
  parse(b, div) unless %w(title bibitem).include? b.name
27
27
  end
28
28
  end
29
29
 
30
30
  def terms_parse(node, out)
31
- return super unless @is_iev
32
-
31
+ @is_iev or return super
33
32
  page_break(out)
34
33
  out.div **attr_code(id: node["id"]) do |div|
35
34
  depth = clause_title_depth(node, nil)
@@ -44,10 +43,6 @@ module IsoDoc
44
43
  end
45
44
  end
46
45
 
47
- def set_termdomain(termdomain)
48
- return super unless @is_iev
49
- end
50
-
51
46
  def para_class(node)
52
47
  case node["class"]
53
48
  when "zzSTDTitle1", "zzSTDTitle2" then "zzSTDTitle1"
@@ -5804,6 +5804,11 @@
5804
5804
 
5805
5805
  <xsl:value-of select="@reference"/>
5806
5806
 
5807
+ <!-- commented https://github.com/metanorma/isodoc/issues/614 -->
5808
+ <!-- <xsl:if test="$namespace = 'itu'">
5809
+ <xsl:text>)</xsl:text>
5810
+ </xsl:if> -->
5811
+
5807
5812
  </fo:inline>
5808
5813
  <fo:inline xsl:use-attribute-sets="table-fn-body-style">
5809
5814
  <xsl:copy-of select="./node()"/>
@@ -5813,7 +5818,7 @@
5813
5818
 
5814
5819
  </xsl:if>
5815
5820
  </xsl:for-each>
5816
- </xsl:template>
5821
+ </xsl:template> <!-- table_fn_display -->
5817
5822
 
5818
5823
  <xsl:template name="create_fn">
5819
5824
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -5841,8 +5846,10 @@
5841
5846
  <!-- EMD table's footnotes rendering -->
5842
5847
  <!-- ============================ -->
5843
5848
 
5849
+ <!-- ============================ -->
5844
5850
  <!-- figure's footnotes rendering -->
5845
- <xsl:template name="fn_display_figure">
5851
+ <!-- ============================ -->
5852
+ <xsl:template name="fn_display_figure"> <!-- figure_fn_display -->
5846
5853
 
5847
5854
  <!-- current figure id -->
5848
5855
  <xsl:variable name="figure_id_">
@@ -5955,9 +5962,30 @@
5955
5962
 
5956
5963
  </fo:block>
5957
5964
  </xsl:if>
5958
-
5959
5965
  </xsl:template> <!-- fn_display_figure -->
5960
5966
 
5967
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
5968
+ <!-- figure's footnote label -->
5969
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'dl'][@key = 'true']/*[local-name() = 'dt']/ *[local-name() = 'p'][count(node()[normalize-space() != '']) = 1]/*[local-name() = 'sup']" priority="3">
5970
+ <xsl:variable name="key_iso">
5971
+ true
5972
+ </xsl:variable>
5973
+ <xsl:if test="normalize-space($key_iso) = 'true'">
5974
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
5975
+
5976
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
5977
+
5978
+ </xsl:if>
5979
+ <fo:inline xsl:use-attribute-sets="figure-fn-number-style"> <!-- id="{@id}" -->
5980
+ <!-- <xsl:value-of select="@reference"/> -->
5981
+ <xsl:apply-templates/>
5982
+ </fo:inline>
5983
+ </xsl:template>
5984
+
5985
+ <!-- ============================ -->
5986
+ <!-- END: figure's footnotes rendering -->
5987
+ <!-- ============================ -->
5988
+
5961
5989
  <!-- fn reference in the text rendering (for instance, 'some text 1) some text' ) -->
5962
5990
  <xsl:template match="*[local-name()='fn']">
5963
5991
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
@@ -5973,6 +6001,10 @@
5973
6001
 
5974
6002
  <xsl:value-of select="@reference"/>
5975
6003
 
6004
+ <!-- commented, https://github.com/metanorma/isodoc/issues/614 -->
6005
+ <!-- <xsl:if test="$namespace = 'jis'">
6006
+ <fo:inline font-weight="normal">)</fo:inline>
6007
+ </xsl:if> -->
5976
6008
  </fo:basic-link>
5977
6009
  </fo:inline>
5978
6010
  </xsl:template>
@@ -6104,17 +6136,22 @@
6104
6136
  </fo:block>
6105
6137
  </xsl:when> <!-- END: a few components -->
6106
6138
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
6107
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
6139
+ <!-- Presentation XML contains 'Key' caption, https://github.com/metanorma/isodoc/issues/607 -->
6140
+ <xsl:if test="not(preceding-sibling::*[1][local-name() = 'p' and @keep-with-next])"> <!-- for old Presentation XML -->
6108
6141
 
6109
- <xsl:call-template name="refine_figure_key_style"/>
6142
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
6110
6143
 
6111
- <xsl:variable name="title-key">
6112
- <xsl:call-template name="getLocalizedString">
6113
- <xsl:with-param name="key">key</xsl:with-param>
6114
- </xsl:call-template>
6115
- </xsl:variable>
6116
- <xsl:value-of select="$title-key"/>
6117
- </fo:block>
6144
+ <xsl:call-template name="refine_figure_key_style"/>
6145
+
6146
+ <xsl:variable name="title-key">
6147
+ <xsl:call-template name="getLocalizedString">
6148
+ <xsl:with-param name="key">key</xsl:with-param>
6149
+ </xsl:call-template>
6150
+ </xsl:variable>
6151
+ <xsl:value-of select="$title-key"/>
6152
+ </fo:block>
6153
+
6154
+ </xsl:if>
6118
6155
  </xsl:when> <!-- END: definition list in a figure -->
6119
6156
  </xsl:choose>
6120
6157
 
@@ -6302,6 +6339,14 @@
6302
6339
 
6303
6340
  </xsl:template> <!-- END: dl -->
6304
6341
 
6342
+ <!-- caption for figure key and another caption, https://github.com/metanorma/isodoc/issues/607 -->
6343
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'p'][@keep-with-next = 'true' and *[local-name() = 'strong']]" priority="3">
6344
+ <fo:block text-align="left" margin-bottom="12pt" keep-with-next="always">
6345
+ <xsl:call-template name="refine_figure_key_style"/>
6346
+ <xsl:apply-templates/>
6347
+ </fo:block>
6348
+ </xsl:template>
6349
+
6305
6350
  <xsl:template name="refine_dl_formula_where_style">
6306
6351
 
6307
6352
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
@@ -8410,6 +8455,39 @@
8410
8455
  </xsl:copy>
8411
8456
  </xsl:template>
8412
8457
 
8458
+ <xsl:template match="@*|node()" mode="mathml_linebreak">
8459
+ <xsl:copy>
8460
+ <xsl:apply-templates select="@*|node()" mode="mathml_linebreak"/>
8461
+ </xsl:copy>
8462
+ </xsl:template>
8463
+
8464
+ <!-- split math into two math -->
8465
+ <xsl:template match="mathml:mo[@linebreak] | mathml:mspace[@linebreak]" mode="mathml_linebreak">
8466
+ <xsl:variable name="math_elements_tree_">
8467
+ <xsl:for-each select="ancestor::*[ancestor-or-self::mathml:math]">
8468
+ <element pos="{position()}">
8469
+ <xsl:copy-of select="@*[local-name() != 'id']"/>
8470
+ <xsl:value-of select="name()"/>
8471
+ </element>
8472
+ </xsl:for-each>
8473
+ </xsl:variable>
8474
+
8475
+ <xsl:variable name="math_elements_tree" select="xalan:nodeset($math_elements_tree_)"/>
8476
+
8477
+ <xsl:call-template name="insertClosingElements">
8478
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
8479
+ </xsl:call-template>
8480
+
8481
+ <xsl:element name="br" namespace="{$namespace_full}"/>
8482
+
8483
+ <xsl:call-template name="insertOpeningElements">
8484
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
8485
+ <xsl:with-param name="xmlns">http://www.w3.org/1998/Math/MathML</xsl:with-param>
8486
+ <xsl:with-param name="add_continue">false</xsl:with-param>
8487
+ </xsl:call-template>
8488
+
8489
+ </xsl:template>
8490
+
8413
8491
  <!-- Examples:
8414
8492
  <stem type="AsciiMath">x = 1</stem>
8415
8493
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -8661,9 +8739,11 @@
8661
8739
  </xsl:template>
8662
8740
 
8663
8741
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
8742
+ <!-- https://github.com/metanorma/isodoc/issues/607
8664
8743
  <xsl:if test="normalize-space() != ''">
8665
- <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
8666
- </xsl:if>
8744
+ <xsl:text>(</xsl:text><xsl:apply-templates /><xsl:text>)</xsl:text>
8745
+ </xsl:if> -->
8746
+ <xsl:apply-templates/>
8667
8747
  </xsl:template>
8668
8748
 
8669
8749
  <!-- stem inside formula with name (with formula's number) -->
@@ -8819,6 +8899,17 @@
8819
8899
  </xsl:when>
8820
8900
  <xsl:otherwise>
8821
8901
 
8902
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
8903
+ <!-- <xsl:if test="$namespace = 'ieee'">
8904
+ <xsl:text>—</xsl:text> em dash &#x2014;
8905
+ </xsl:if> -->
8906
+ <!-- <xsl:if test="$namespace = 'iho' or $namespace = 'gb' or $namespace = 'm3d' or $namespace = 'unece-rec' or $namespace = 'unece' or $namespace = 'rsd'">
8907
+ <xsl:text>:</xsl:text>
8908
+ </xsl:if> -->
8909
+
8910
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp'">
8911
+ <xsl:text> – </xsl:text> en dash &#x2013;
8912
+ </xsl:if> -->
8822
8913
  </xsl:otherwise>
8823
8914
  </xsl:choose>
8824
8915
  </xsl:variable>
@@ -8837,8 +8928,16 @@
8837
8928
  </xsl:when>
8838
8929
  <xsl:otherwise>
8839
8930
 
8931
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
8932
+ <!-- <xsl:if test="$namespace = 'ieee'">
8933
+ <xsl:text>—</xsl:text> em dash &#x2014;
8934
+ </xsl:if> -->
8935
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' or $namespace = 'rsd' or $namespace = 'jcgm'">
8840
8936
  <xsl:text>:</xsl:text>
8841
-
8937
+ </xsl:if> -->
8938
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'unece-rec' or $namespace = 'unece'">
8939
+ <xsl:text> – </xsl:text> en dash &#x2013;
8940
+ </xsl:if> -->
8842
8941
  </xsl:otherwise>
8843
8942
  </xsl:choose>
8844
8943
  </xsl:variable>
@@ -11019,7 +11118,7 @@
11019
11118
  <xsl:if test="normalize-space() != ''">
11020
11119
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
11021
11120
  <xsl:call-template name="refine_termexample-name-style"/>
11022
- <xsl:apply-templates/>
11121
+ <xsl:apply-templates/> <!-- commented $namespace = 'ieee', https://github.com/metanorma/isodoc/issues/614-->
11023
11122
  </fo:inline>
11024
11123
  </xsl:if>
11025
11124
  </xsl:template>
@@ -11187,7 +11286,7 @@
11187
11286
  <xsl:otherwise>
11188
11287
  <fo:inline xsl:use-attribute-sets="example-name-style">
11189
11288
  <xsl:call-template name="refine_example-name-style"/>
11190
- <xsl:apply-templates/>
11289
+ <xsl:apply-templates/> <!-- $namespace = 'ieee', see https://github.com/metanorma/isodoc/issues/614 -->
11191
11290
  </fo:inline>
11192
11291
  </xsl:otherwise>
11193
11292
  </xsl:choose>
@@ -11369,15 +11468,17 @@
11369
11468
 
11370
11469
  <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11371
11470
  <fo:block role="BlockQuote">
11372
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
11471
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source') and not(local-name() = 'attribution')]"/> <!-- process all nested nodes, except author and source -->
11373
11472
  </fo:block>
11374
11473
  </fo:block-container>
11375
11474
  </fo:block-container>
11376
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
11475
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source'] or *[local-name() = 'attribution']">
11377
11476
  <fo:block xsl:use-attribute-sets="quote-source-style">
11378
11477
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
11379
11478
  <xsl:apply-templates select="*[local-name() = 'author']"/>
11380
11479
  <xsl:apply-templates select="*[local-name() = 'source']"/>
11480
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
11481
+ <xsl:apply-templates select="*[local-name() = 'attribution']/*[local-name() = 'p']/node()"/>
11381
11482
  </fo:block>
11382
11483
  </xsl:if>
11383
11484
 
@@ -11399,9 +11500,13 @@
11399
11500
  </xsl:template>
11400
11501
 
11401
11502
  <xsl:template match="*[local-name() = 'author']">
11402
- <xsl:text>— </xsl:text>
11503
+ <xsl:if test="local-name(..) = 'quote'"> <!-- for old Presentation XML, https://github.com/metanorma/isodoc/issues/607 -->
11504
+ <xsl:text>— </xsl:text>
11505
+ </xsl:if>
11403
11506
  <xsl:apply-templates/>
11404
11507
  </xsl:template>
11508
+
11509
+ <xsl:template match="*[local-name() = 'quote']//*[local-name() = 'referenceFrom']"/>
11405
11510
  <!-- ====== -->
11406
11511
  <!-- ====== -->
11407
11512
 
@@ -11585,8 +11690,12 @@
11585
11690
  </xsl:template>
11586
11691
 
11587
11692
  <xsl:template match="*[local-name() = 'domain']">
11693
+ <!-- https://github.com/metanorma/isodoc/issues/607
11588
11694
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
11589
- <xsl:text> </xsl:text>
11695
+ <xsl:text> </xsl:text> -->
11696
+ <xsl:if test="not(@hidden = 'true')">
11697
+ <xsl:apply-templates/>
11698
+ </xsl:if>
11590
11699
  </xsl:template>
11591
11700
 
11592
11701
  <xsl:template match="*[local-name() = 'admitted']">
@@ -11634,6 +11743,29 @@
11634
11743
  <!-- END definition -->
11635
11744
  <!-- ========== -->
11636
11745
 
11746
+ <xsl:variable name="reviews_">
11747
+ <xsl:for-each select="//*[local-name() = 'review'][@from]">
11748
+ <xsl:copy>
11749
+ <xsl:copy-of select="@from"/>
11750
+ <xsl:copy-of select="@id"/>
11751
+ </xsl:copy>
11752
+ </xsl:for-each>
11753
+ </xsl:variable>
11754
+ <xsl:variable name="reviews" select="xalan:nodeset($reviews_)"/>
11755
+
11756
+ <xsl:template name="addReviewHelper">
11757
+ <!-- if there is review with from="...", then add small helper block for Annot tag adding, see 'review' template -->
11758
+ <xsl:variable name="curr_id" select="@id"/>
11759
+ <xsl:variable name="review_id" select="normalize-space($reviews//*[local-name() = 'review'][@from = $curr_id]/@id)"/>
11760
+ <xsl:if test="$review_id != ''"> <!-- i.e. if review found -->
11761
+ <fo:block keep-with-next="always" line-height="0.1" id="{$review_id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{$review_id}" fox:alt-text="Annot___{$review_id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11762
+ </xsl:if>
11763
+ <!-- <fo:block>
11764
+ <curr_id><xsl:value-of select="$curr_id"/></curr_id>
11765
+ <xsl:copy-of select="$reviews"/>
11766
+ </fo:block> -->
11767
+ </xsl:template>
11768
+
11637
11769
  <!-- main sections -->
11638
11770
  <xsl:template match="/*/*[local-name() = 'sections']/*" name="sections_node" priority="2">
11639
11771
 
@@ -11642,6 +11774,8 @@
11642
11774
 
11643
11775
  <xsl:call-template name="sections_element_style"/>
11644
11776
 
11777
+ <xsl:call-template name="addReviewHelper"/>
11778
+
11645
11779
  <xsl:apply-templates/>
11646
11780
  </fo:block>
11647
11781
 
@@ -11677,6 +11811,7 @@
11677
11811
 
11678
11812
  <fo:block>
11679
11813
  <xsl:call-template name="setId"/>
11814
+ <xsl:call-template name="addReviewHelper"/>
11680
11815
  <xsl:apply-templates/>
11681
11816
  </fo:block>
11682
11817
  </xsl:template>
@@ -11713,6 +11848,8 @@
11713
11848
 
11714
11849
  <xsl:call-template name="refine_clause_style"/>
11715
11850
 
11851
+ <xsl:call-template name="addReviewHelper"/>
11852
+
11716
11853
  <xsl:apply-templates/>
11717
11854
  </fo:block>
11718
11855
  </xsl:template>
@@ -11765,6 +11902,23 @@
11765
11902
 
11766
11903
  <xsl:variable name="id_from" select="normalize-space(current()/@from)"/>
11767
11904
 
11905
+ <xsl:if test="1 = 1">
11906
+ <xsl:choose>
11907
+ <!-- if there isn't the attribute '@from', then -->
11908
+ <xsl:when test="$id_from = ''">
11909
+ <fo:block id="{@id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@id}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11910
+ </xsl:when>
11911
+ <!-- if there isn't element with id 'from', then create 'bookmark' here -->
11912
+ <xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
11913
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11914
+ </xsl:when>
11915
+ <xsl:when test="not(/*[@id = $id_from]) and not(/*//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
11916
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11917
+ </xsl:when>
11918
+ </xsl:choose>
11919
+ </xsl:if>
11920
+
11921
+ <xsl:if test="1 = 2">
11768
11922
  <xsl:choose>
11769
11923
  <!-- if there isn't the attribute '@from', then -->
11770
11924
  <xsl:when test="$id_from = ''">
@@ -11778,6 +11932,7 @@
11778
11932
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
11779
11933
  </xsl:when>
11780
11934
  </xsl:choose>
11935
+ </xsl:if>
11781
11936
 
11782
11937
  </xsl:template>
11783
11938
 
@@ -13147,7 +13302,7 @@
13147
13302
  <!-- remove preprocess-xslt -->
13148
13303
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
13149
13304
 
13150
- <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image'] | *[local-name() = 'sourcecode'] | *[local-name() = 'bibdata'] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
13305
+ <xsl:template match="*[local-name() = 'stem'][not(.//*[local-name() = 'passthrough']) and not(.//*[@linebreak])] | *[local-name() = 'image'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'sourcecode'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
13151
13306
  <xsl:copy-of select="."/>
13152
13307
  </xsl:template>
13153
13308
 
@@ -13213,6 +13368,22 @@
13213
13368
  </xsl:choose>
13214
13369
  </xsl:template>
13215
13370
 
13371
+ <xsl:variable name="regex_passthrough">.*\bpdf\b.*</xsl:variable>
13372
+ <xsl:template match="*[local-name() = 'passthrough']" mode="update_xml_step1">
13373
+ <!-- <xsl:if test="contains(@formats, ' pdf ')"> -->
13374
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new(@formats), $regex_passthrough)) = 'true'">
13375
+ <xsl:apply-templates mode="update_xml_step1"/>
13376
+ </xsl:if>
13377
+ </xsl:template>
13378
+
13379
+ <!-- split math by element with @linebreak into maths -->
13380
+ <xsl:template match="mathml:math[.//mathml:mo[@linebreak] or .//mathml:mspace[@linebreak]]" mode="update_xml_step1">
13381
+ <xsl:variable name="maths">
13382
+ <xsl:apply-templates select="." mode="mathml_linebreak"/>
13383
+ </xsl:variable>
13384
+ <xsl:copy-of select="$maths"/>
13385
+ </xsl:template>
13386
+
13216
13387
  <!-- =========================================================================== -->
13217
13388
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
13218
13389
  <!-- =========================================================================== -->
@@ -13316,6 +13487,8 @@
13316
13487
 
13317
13488
  <xsl:template name="insertOpeningElements">
13318
13489
  <xsl:param name="tree"/>
13490
+ <xsl:param name="xmlns"/>
13491
+ <xsl:param name="add_continue">true</xsl:param>
13319
13492
  <xsl:for-each select="$tree//element">
13320
13493
  <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
13321
13494
  <xsl:value-of select="."/>
@@ -13326,7 +13499,8 @@
13326
13499
  <xsl:value-of select="."/>
13327
13500
  <xsl:text>"</xsl:text>
13328
13501
  </xsl:for-each>
13329
- <xsl:if test="position() = 1"> continue="true"</xsl:if>
13502
+ <xsl:if test="position() = 1 and $add_continue = 'true'"> continue="true"</xsl:if>
13503
+ <xsl:if test="position() = 1 and $xmlns != ''"> xmlns="<xsl:value-of select="$xmlns"/>"</xsl:if>
13330
13504
  <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
13331
13505
  <xsl:if test="$debug = 'true'">
13332
13506
  <xsl:message>&lt;<xsl:value-of select="."/>&gt;</xsl:message>
@@ -11,9 +11,8 @@ module IsoDoc
11
11
  end
12
12
 
13
13
  def xref_init(lang, script, _klass, labels, options)
14
- @xrefs = Xref.new(lang, script,
15
- HtmlConvert.new(language: lang, script: script),
16
- labels, options)
14
+ p = HtmlConvert.new(language: lang, script: script)
15
+ @xrefs = Xref.new(lang, script, p, labels, options)
17
16
  end
18
17
 
19
18
  def i18n_init(lang, script, locale, i18nyaml = nil)
@@ -20,25 +20,25 @@ module IsoDoc
20
20
  set(:revdate, revdate&.text)
21
21
  end
22
22
 
23
- def doctype(isoxml, _out)
23
+ def doctype(xml, _out)
24
24
  super
25
- b = isoxml&.at(ns("//bibdata/ext/doctype#{NOLANG}"))&.text
26
- b1 = isoxml&.at(ns("//bibdata/ext/doctype[@language = 'en']"))&.text || b
25
+ b = xml.at(ns("//bibdata/ext/doctype#{NOLANG}"))&.text
26
+ b1 = xml.at(ns("//bibdata/ext/doctype[@language = 'en']"))&.text || b
27
27
  b1 and set(:doctype_en, status_print(b1))
28
- b1 = isoxml&.at(ns("//bibdata/ext/doctype[@language = 'fr']"))&.text || b
28
+ b1 = xml.at(ns("//bibdata/ext/doctype[@language = 'fr']"))&.text || b
29
29
  b1 and set(:doctype_fr, status_print(b1))
30
- docfunction(isoxml)
31
- dochorizontal(isoxml)
30
+ docfunction(xml)
31
+ dochorizontal(xml)
32
32
  end
33
33
 
34
- def docfunction(isoxml)
35
- b = isoxml&.at(ns("//bibdata/ext/function#{NOLANG}"))&.text || return
34
+ def docfunction(xml)
35
+ b = xml.at(ns("//bibdata/ext/function#{NOLANG}"))&.text || return
36
36
  b and set(:function, status_print(b))
37
- b1 = isoxml&.at(ns("//bibdata/ext/function#{currlang}"))&.text || b
37
+ b1 = xml.at(ns("//bibdata/ext/function#{currlang}"))&.text || b
38
38
  b1 and set(:function_display, status_print(b1))
39
- b1 = isoxml&.at(ns("//bibdata/ext/function[@language = 'en']"))&.text || b
39
+ b1 = xml.at(ns("//bibdata/ext/function[@language = 'en']"))&.text || b
40
40
  b1 and set(:function_en, status_print(b1))
41
- b1 = isoxml&.at(ns("//bibdata/ext/function[@language = 'fr']"))&.text || b
41
+ b1 = xml.at(ns("//bibdata/ext/function[@language = 'fr']"))&.text || b
42
42
  b1 and set(:function_fr, status_print(b1))
43
43
  end
44
44
 
@@ -54,7 +54,7 @@ module IsoDoc
54
54
  end
55
55
 
56
56
  def unpublished(status)
57
- status.to_i > 0 && status.to_i < 60
57
+ status.to_i.positive? && status.to_i < 60
58
58
  end
59
59
  end
60
60
  end
@@ -38,6 +38,14 @@ module IsoDoc
38
38
  merge_fr_into_en_term(docxml)
39
39
  end
40
40
 
41
+ def termdomain(elem)
42
+ if @is_iev
43
+ d = elem.at(ns("./domain")) or return
44
+ d["hidden"] = true
45
+ else super
46
+ end
47
+ end
48
+
41
49
  def merge_fr_into_en_term(docxml)
42
50
  @is_iev or return
43
51
  docxml.xpath(ns("//term[@language = 'en'][@tag]")).each do |en|
@@ -119,13 +127,13 @@ module IsoDoc
119
127
 
120
128
  def move_related(term)
121
129
  defn = term.at(ns("./definition")) or return
122
- term.xpath(ns("./related")).reverse.each do |r|
130
+ term.xpath(ns("./related")).reverse_each do |r|
123
131
  defn.next = r.remove
124
132
  end
125
133
  end
126
134
 
127
135
  def related1(node)
128
- lg = node&.at("./ancestor::xmlns:term/@language")&.text
136
+ lg = node.at("./ancestor::xmlns:term/@language")&.text
129
137
  @i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
130
138
  p = node.at(ns("./preferred"))
131
139
  ref = node.at(ns("./xref | ./eref | ./termref"))
@@ -171,14 +179,15 @@ module IsoDoc
171
179
  @i18n = @i18n_lg["default"]
172
180
  end
173
181
 
174
- def termnote1(elem)
182
+ def termnote_label(elem)
175
183
  lg = elem&.at("./ancestor::xmlns:term/@language")&.text
176
184
  @i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
177
185
 
178
186
  val = @xrefs.anchor(elem["id"], :value) || "???"
179
187
  lbl = @i18n.termnote.gsub("%", val)
180
- prefix_name(elem, "", lower2cap(lbl), "name")
188
+ ret = @i18n.l10n "#{lbl}#{termnote_delim(elem)}"
181
189
  @i18n = @i18n_lg["default"]
190
+ ret
182
191
  end
183
192
  end
184
193
  end
@@ -118,7 +118,7 @@ module IsoDoc
118
118
  <p class='zzSTDTitle2'><strong>#{title2}</strong><p>
119
119
  TITLE
120
120
  ret += "<p class='zzSTDTitle1'>&#xa0;</p>"
121
- s.children.first.previous = ret
121
+ s.add_first_child ret
122
122
  end
123
123
 
124
124
  include Init
@@ -218,7 +218,7 @@ module IsoDoc
218
218
  parse(node.at(ns("./stem")), div)
219
219
  if lbl = node&.at(ns("./name"))&.text
220
220
  insert_tab(div, 1)
221
- div << "(#{lbl})"
221
+ div << lbl
222
222
  end
223
223
  end
224
224
  end
@@ -10,7 +10,7 @@ module IsoDoc
10
10
  end
11
11
 
12
12
  def introduction_names(clause)
13
- return super unless @is_iev
13
+ super unless @is_iev
14
14
  end
15
15
 
16
16
  def initial_anchor_names(docxml)
@@ -1783,9 +1783,21 @@ that the `number` given for the series applies to the second iteration of number
1783
1783
  May be used to differentiate rendering of notes in bibliographies</a:documentation>
1784
1784
  </attribute>
1785
1785
  </optional>
1786
- <ref name="LocalizedMarkedUpString">
1786
+ <ref name="LocalizedStringAttributes">
1787
1787
  <a:documentation>The content of the note</a:documentation>
1788
1788
  </ref>
1789
+ <choice>
1790
+ <oneOrMore>
1791
+ <ref name="BasicBlockNoId">
1792
+ <a:documentation>Multiple blocks of content</a:documentation>
1793
+ </ref>
1794
+ </oneOrMore>
1795
+ <oneOrMore>
1796
+ <ref name="TextElement">
1797
+ <a:documentation>Single block of content</a:documentation>
1798
+ </ref>
1799
+ </oneOrMore>
1800
+ </choice>
1789
1801
  </element>
1790
1802
  </define>
1791
1803
  <define name="bibabstract">
@@ -166,7 +166,6 @@ module Metanorma
166
166
  super
167
167
  a = node.attr("accessibility-color-inside") and
168
168
  xml.accessibility_color_inside a
169
- a = node.attr("price-code") and xml.price_code a
170
169
  a = node.attr("cen-processing") and xml.cen_processing a
171
170
  a = node.attr("secretary") and xml.secretary a
172
171
  a = node.attr("interest-to-committees") and xml.interest_to_committees a
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.3.4 -->
20
+ <!-- VERSION v1.4.0 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -326,7 +326,7 @@ normative or informative references, some split references into sections organiz
326
326
  <a:documentation>Content of note</a:documentation>
327
327
  <oneOrMore>
328
328
  <choice>
329
- <ref name="paragraph"/>
329
+ <ref name="paragraph-with-footnote"/>
330
330
  <ref name="ul"/>
331
331
  <ref name="ol"/>
332
332
  <ref name="dl"/>
@@ -412,7 +412,7 @@ normative or informative references, some split references into sections organiz
412
412
  <element name="note">
413
413
  <ref name="OptionalId"/>
414
414
  <oneOrMore>
415
- <ref name="paragraph"/>
415
+ <ref name="paragraph-with-footnote"/>
416
416
  </oneOrMore>
417
417
  </element>
418
418
  </define>
@@ -1977,7 +1977,7 @@ used in document amendments</a:documentation>
1977
1977
  <oneOrMore>
1978
1978
  <choice>
1979
1979
  <a:documentation>Content of the verbal representation of the term</a:documentation>
1980
- <ref name="paragraph"/>
1980
+ <ref name="paragraph-with-footnote"/>
1981
1981
  <ref name="dl"/>
1982
1982
  <ref name="ol"/>
1983
1983
  <ref name="ul"/>
@@ -2015,7 +2015,7 @@ used in document amendments</a:documentation>
2015
2015
  <oneOrMore>
2016
2016
  <choice>
2017
2017
  <a:documentation>Content of the term note</a:documentation>
2018
- <ref name="paragraph"/>
2018
+ <ref name="paragraph-with-footnote"/>
2019
2019
  <ref name="ul"/>
2020
2020
  <ref name="ol"/>
2021
2021
  <ref name="dl"/>
@@ -2037,7 +2037,7 @@ used in document amendments</a:documentation>
2037
2037
  <ref name="dl"/>
2038
2038
  <ref name="quote"/>
2039
2039
  <ref name="sourcecode"/>
2040
- <ref name="paragraph"/>
2040
+ <ref name="paragraph-with-footnote"/>
2041
2041
  <ref name="figure"/>
2042
2042
  </choice>
2043
2043
  </oneOrMore>
@@ -28,10 +28,10 @@
28
28
  <ref name="updates_document_type"/>
29
29
  </optional>
30
30
  <optional>
31
- <ref name="accessibility-color-inside"/>
31
+ <ref name="price-code"/>
32
32
  </optional>
33
33
  <optional>
34
- <ref name="price-code"/>
34
+ <ref name="accessibility-color-inside"/>
35
35
  </optional>
36
36
  <optional>
37
37
  <ref name="cen-processing"/>
@@ -75,36 +75,19 @@
75
75
  </choice>
76
76
  </element>
77
77
  </define>
78
- <define name="organization">
79
- <element name="organization">
80
- <oneOrMore>
81
- <ref name="orgname"/>
82
- </oneOrMore>
83
- <optional>
84
- <ref name="abbreviation"/>
85
- </optional>
86
- <optional>
87
- <ref name="uri"/>
88
- </optional>
89
- <zeroOrMore>
90
- <ref name="org-identifier"/>
91
- </zeroOrMore>
92
- <zeroOrMore>
93
- <ref name="contact"/>
94
- </zeroOrMore>
95
- <optional>
96
- <ref name="technical-committee"/>
97
- </optional>
98
- <optional>
99
- <ref name="subcommittee"/>
100
- </optional>
101
- <optional>
102
- <ref name="workgroup"/>
103
- </optional>
104
- <optional>
105
- <ref name="secretariat"/>
106
- </optional>
107
- </element>
78
+ <define name="OrganizationType" combine="interleave">
79
+ <optional>
80
+ <ref name="technical-committee"/>
81
+ </optional>
82
+ <optional>
83
+ <ref name="subcommittee"/>
84
+ </optional>
85
+ <optional>
86
+ <ref name="workgroup"/>
87
+ </optional>
88
+ <optional>
89
+ <ref name="secretariat"/>
90
+ </optional>
108
91
  </define>
109
92
  <define name="DocumentType">
110
93
  <choice>
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module Iec
3
- VERSION = "2.5.6".freeze
3
+ VERSION = "2.5.7".freeze
4
4
  end
5
5
  end
6
6
 
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
31
31
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
32
32
 
33
- spec.add_dependency "metanorma-iso", "~> 2.8.0"
33
+ spec.add_dependency "metanorma-iso", "~> 2.9.0"
34
34
  spec.add_dependency "pubid"
35
35
 
36
36
  spec.add_development_dependency "debug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.6
4
+ version: 2.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-28 00:00:00.000000000 Z
11
+ date: 2024-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.8.0
19
+ version: 2.9.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.8.0
26
+ version: 2.9.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pubid
29
29
  requirement: !ruby/object:Gem::Requirement