metanorma-iso 2.8.9 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cddf2aa3ff6244b6b2c71735ff0d0fadf3c09781f175a911acdd329fb0a1d8a4
4
- data.tar.gz: c8349e9a17b898ec039710f1db1129f771e138fd3f2d1aabd10831fb37a88c31
3
+ metadata.gz: '0941432979465638a050af9a47a277a037c98bcf7ac8fd8dc6f5cdf55fe0f92b'
4
+ data.tar.gz: 628a80940efddab2c8659dae8aa140839f1b7eb2e4c662a9757410e0048c3e23
5
5
  SHA512:
6
- metadata.gz: 044e820c2a45d6e90e0d56edbf546ee3edf9413ae4430abbcd142f56d0b4b1e0f08245b3873565aa4700b9d18f12259f4583208483cbf0377e9d3a94b0724f19
7
- data.tar.gz: f14bfec47073d66be2b55a84c19be102c24797c4bbbc878bc41253d99f2f6bc6be9cd39a50f47ec341c5232f29f370dc158655974710feab7e1032de2139da34
6
+ metadata.gz: 322cbf882d1fb24c13c8263ce74d2d1d851763df54a2e27dc864657dbce0d47adf08537420aabb89eb3632ed1e476463e583fd9e52117072e0cf88a95fe666e2
7
+ data.tar.gz: 9eaa31b78ccfa61cb66a3352493dfcf38e36584a3ef960f7782dab497f77bccfdd750bddf2fbe96f23ac34907c530eced9ec30cd8a999eba08e5f07e964acf34
@@ -13,11 +13,6 @@ module IsoDoc
13
13
  super
14
14
  end
15
15
 
16
- def implicit_reference(bib)
17
- bib.at(ns("./docidentifier"))&.text == "IEV" and return true
18
- super
19
- end
20
-
21
16
  # terms not defined in standoc
22
17
  def error_parse(node, out)
23
18
  case node.name
@@ -40,7 +35,7 @@ module IsoDoc
40
35
  insert_tab(p, 1)
41
36
  node.first_element_child.children.each { |n| parse(n, p) }
42
37
  end
43
- node.element_children[1..-1].each { |n| parse(n, div) }
38
+ node.element_children[1..].each { |n| parse(n, div) }
44
39
  end
45
40
 
46
41
  def example_parse1(node, div)
@@ -83,42 +78,18 @@ module IsoDoc
83
78
  end
84
79
  end
85
80
 
86
- def admonition_parse(node, out)
87
- type = node["type"]
88
- name = admonition_name(node, type)
89
- out.div id: node["id"], class: admonition_class(node) do |div|
90
- if node.first_element_child.name == "p"
91
- admonition_p_parse(node, div, name)
92
- else
93
- admonition_parse1(node, div, name)
94
- end
95
- end
96
- end
97
-
98
81
  def admonition_class(node)
99
82
  if node["type"] == "editorial" then "zzHelp"
100
83
  else super
101
84
  end
102
85
  end
103
86
 
104
- def admonition_parse1(node, div, name)
105
- div.p do |p|
106
- admonition_name_parse(node, p, name) if name
107
- end
108
- node.children.each { |n| parse(n, div) unless n.name == "name" }
109
- end
110
-
111
- def admonition_p_parse(node, div, name)
112
- div.p do |p|
113
- admonition_name_parse(node, p, name) if name
114
- node.first_element_child.children.each { |n| parse(n, p) }
115
- end
116
- node.element_children[1..-1].each { |n| parse(n, div) }
87
+ def admonition_p_parse(node, div)
88
+ admonition_name_in_first_para(node, div)
117
89
  end
118
90
 
119
- def admonition_name_parse(_node, div, name)
120
- name.children.each { |n| parse(n, div) }
121
- div << " &#x2014; "
91
+ def admonition_name_para_delim(para)
92
+ para << " "
122
93
  end
123
94
 
124
95
  def figure_name_parse(_node, div, name)
@@ -154,12 +125,6 @@ module IsoDoc
154
125
  super.merge(start: node["start"]).compact
155
126
  end
156
127
 
157
- def render_identifier(ident)
158
- ret = super
159
- ret[:sdo] = std_docid_semantic(ret[:sdo])
160
- ret
161
- end
162
-
163
128
  def table_parse(node, out)
164
129
  @in_table = true
165
130
  table_title_parse(node, out)
@@ -183,7 +148,6 @@ module IsoDoc
183
148
  measurement_units(node, out)
184
149
  out.div **figure_attrs(node) do |div|
185
150
  node.children.each do |n|
186
- figure_key(out) if n.name == "dl"
187
151
  n.name == "note" && n["type"] == "units" and next
188
152
  parse(n, div) unless n.name == "name"
189
153
  end
@@ -3731,6 +3731,21 @@
3731
3731
  </xsl:choose>
3732
3732
  </xsl:template>
3733
3733
 
3734
+ <xsl:template match="iso:copyright-statement/iso:clause" priority="3">
3735
+ <fo:block role="SKIP">
3736
+ <xsl:if test="@id = 'boilerplate-copyright-default' and ../iso:clause[not(@id = 'boilerplate-copyright-default')]">
3737
+ <xsl:attribute name="color">blue</xsl:attribute>
3738
+ <xsl:attribute name="border">1pt solid blue</xsl:attribute>
3739
+ <xsl:attribute name="padding">1mm</xsl:attribute>
3740
+ </xsl:if>
3741
+ <xsl:if test="not(@id = 'boilerplate-copyright-default') and preceding-sibling::iso:clause">
3742
+ <xsl:attribute name="margin-top">5mm</xsl:attribute>
3743
+ </xsl:if>
3744
+ <xsl:copy-of select="@id"/>
3745
+ <xsl:apply-templates/>
3746
+ </fo:block>
3747
+ </xsl:template>
3748
+
3734
3749
  <xsl:template match="iso:copyright-statement//iso:p" priority="2">
3735
3750
  <xsl:choose>
3736
3751
  <xsl:when test="$layoutVersion = '1951'">
@@ -3777,7 +3792,7 @@
3777
3792
  <xsl:attribute name="margin-left">0.5mm</xsl:attribute>
3778
3793
  <xsl:attribute name="margin-right">0.5mm</xsl:attribute>
3779
3794
  </xsl:if>
3780
- <xsl:if test="contains(@id, 'address')">
3795
+ <xsl:if test="contains(@id, 'address') or contains(normalize-space(), 'Tel:') or contains(normalize-space(), 'Phone:')">
3781
3796
  <xsl:attribute name="margin-left">4.5mm</xsl:attribute>
3782
3797
  </xsl:if>
3783
3798
  <xsl:apply-templates/>
@@ -4415,6 +4430,8 @@
4415
4430
  </xsl:if>
4416
4431
  </xsl:if>
4417
4432
 
4433
+ <xsl:call-template name="addReviewHelper"/>
4434
+
4418
4435
  <xsl:call-template name="processElementContent"/>
4419
4436
  </fo:block>
4420
4437
  </xsl:template>
@@ -4431,6 +4448,8 @@
4431
4448
 
4432
4449
  <xsl:call-template name="refine_clause_style"/>
4433
4450
 
4451
+ <xsl:call-template name="addReviewHelper"/>
4452
+
4434
4453
  <xsl:call-template name="processElementContent"/>
4435
4454
 
4436
4455
  </fo:block>
@@ -9357,6 +9376,11 @@
9357
9376
 
9358
9377
  <xsl:value-of select="@reference"/>
9359
9378
 
9379
+ <!-- commented https://github.com/metanorma/isodoc/issues/614 -->
9380
+ <!-- <xsl:if test="$namespace = 'itu'">
9381
+ <xsl:text>)</xsl:text>
9382
+ </xsl:if> -->
9383
+
9360
9384
  </fo:inline>
9361
9385
  <fo:inline xsl:use-attribute-sets="table-fn-body-style">
9362
9386
  <xsl:copy-of select="./node()"/>
@@ -9366,7 +9390,7 @@
9366
9390
 
9367
9391
  </xsl:if>
9368
9392
  </xsl:for-each>
9369
- </xsl:template>
9393
+ </xsl:template> <!-- table_fn_display -->
9370
9394
 
9371
9395
  <xsl:template name="create_fn">
9372
9396
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -9394,8 +9418,10 @@
9394
9418
  <!-- EMD table's footnotes rendering -->
9395
9419
  <!-- ============================ -->
9396
9420
 
9421
+ <!-- ============================ -->
9397
9422
  <!-- figure's footnotes rendering -->
9398
- <xsl:template name="fn_display_figure">
9423
+ <!-- ============================ -->
9424
+ <xsl:template name="fn_display_figure"> <!-- figure_fn_display -->
9399
9425
 
9400
9426
  <!-- current figure id -->
9401
9427
  <xsl:variable name="figure_id_">
@@ -9508,9 +9534,28 @@
9508
9534
 
9509
9535
  </fo:block>
9510
9536
  </xsl:if>
9511
-
9512
9537
  </xsl:template> <!-- fn_display_figure -->
9513
9538
 
9539
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
9540
+ <!-- figure's footnote label -->
9541
+ <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">
9542
+ <xsl:variable name="key_iso">
9543
+ true
9544
+ </xsl:variable>
9545
+ <xsl:if test="normalize-space($key_iso) = 'true'">
9546
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
9547
+
9548
+ </xsl:if>
9549
+ <fo:inline xsl:use-attribute-sets="figure-fn-number-style"> <!-- id="{@id}" -->
9550
+ <!-- <xsl:value-of select="@reference"/> -->
9551
+ <xsl:apply-templates/>
9552
+ </fo:inline>
9553
+ </xsl:template>
9554
+
9555
+ <!-- ============================ -->
9556
+ <!-- END: figure's footnotes rendering -->
9557
+ <!-- ============================ -->
9558
+
9514
9559
  <!-- fn reference in the text rendering (for instance, 'some text 1) some text' ) -->
9515
9560
  <xsl:template match="*[local-name()='fn']">
9516
9561
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
@@ -9526,6 +9571,10 @@
9526
9571
 
9527
9572
  <xsl:value-of select="@reference"/>
9528
9573
 
9574
+ <!-- commented, https://github.com/metanorma/isodoc/issues/614 -->
9575
+ <!-- <xsl:if test="$namespace = 'jis'">
9576
+ <fo:inline font-weight="normal">)</fo:inline>
9577
+ </xsl:if> -->
9529
9578
  </fo:basic-link>
9530
9579
  </fo:inline>
9531
9580
  </xsl:template>
@@ -9656,17 +9705,22 @@
9656
9705
  </fo:block>
9657
9706
  </xsl:when> <!-- END: a few components -->
9658
9707
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
9659
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
9708
+ <!-- Presentation XML contains 'Key' caption, https://github.com/metanorma/isodoc/issues/607 -->
9709
+ <xsl:if test="not(preceding-sibling::*[1][local-name() = 'p' and @keep-with-next])"> <!-- for old Presentation XML -->
9660
9710
 
9661
- <xsl:call-template name="refine_figure_key_style"/>
9711
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
9662
9712
 
9663
- <xsl:variable name="title-key">
9664
- <xsl:call-template name="getLocalizedString">
9665
- <xsl:with-param name="key">key</xsl:with-param>
9666
- </xsl:call-template>
9667
- </xsl:variable>
9668
- <xsl:value-of select="$title-key"/>
9669
- </fo:block>
9713
+ <xsl:call-template name="refine_figure_key_style"/>
9714
+
9715
+ <xsl:variable name="title-key">
9716
+ <xsl:call-template name="getLocalizedString">
9717
+ <xsl:with-param name="key">key</xsl:with-param>
9718
+ </xsl:call-template>
9719
+ </xsl:variable>
9720
+ <xsl:value-of select="$title-key"/>
9721
+ </fo:block>
9722
+
9723
+ </xsl:if>
9670
9724
  </xsl:when> <!-- END: definition list in a figure -->
9671
9725
  </xsl:choose>
9672
9726
 
@@ -9856,6 +9910,14 @@
9856
9910
 
9857
9911
  </xsl:template> <!-- END: dl -->
9858
9912
 
9913
+ <!-- caption for figure key and another caption, https://github.com/metanorma/isodoc/issues/607 -->
9914
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'p'][@keep-with-next = 'true' and *[local-name() = 'strong']]" priority="3">
9915
+ <fo:block text-align="left" margin-bottom="12pt" keep-with-next="always">
9916
+ <xsl:call-template name="refine_figure_key_style"/>
9917
+ <xsl:apply-templates/>
9918
+ </fo:block>
9919
+ </xsl:template>
9920
+
9859
9921
  <xsl:template name="refine_dl_formula_where_style">
9860
9922
 
9861
9923
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -11988,6 +12050,39 @@
11988
12050
  </xsl:copy>
11989
12051
  </xsl:template>
11990
12052
 
12053
+ <xsl:template match="@*|node()" mode="mathml_linebreak">
12054
+ <xsl:copy>
12055
+ <xsl:apply-templates select="@*|node()" mode="mathml_linebreak"/>
12056
+ </xsl:copy>
12057
+ </xsl:template>
12058
+
12059
+ <!-- split math into two math -->
12060
+ <xsl:template match="mathml:mo[@linebreak] | mathml:mspace[@linebreak]" mode="mathml_linebreak">
12061
+ <xsl:variable name="math_elements_tree_">
12062
+ <xsl:for-each select="ancestor::*[ancestor-or-self::mathml:math]">
12063
+ <element pos="{position()}">
12064
+ <xsl:copy-of select="@*[local-name() != 'id']"/>
12065
+ <xsl:value-of select="name()"/>
12066
+ </element>
12067
+ </xsl:for-each>
12068
+ </xsl:variable>
12069
+
12070
+ <xsl:variable name="math_elements_tree" select="xalan:nodeset($math_elements_tree_)"/>
12071
+
12072
+ <xsl:call-template name="insertClosingElements">
12073
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
12074
+ </xsl:call-template>
12075
+
12076
+ <xsl:element name="br" namespace="{$namespace_full}"/>
12077
+
12078
+ <xsl:call-template name="insertOpeningElements">
12079
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
12080
+ <xsl:with-param name="xmlns">http://www.w3.org/1998/Math/MathML</xsl:with-param>
12081
+ <xsl:with-param name="add_continue">false</xsl:with-param>
12082
+ </xsl:call-template>
12083
+
12084
+ </xsl:template>
12085
+
11991
12086
  <!-- Examples:
11992
12087
  <stem type="AsciiMath">x = 1</stem>
11993
12088
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -12241,9 +12336,11 @@
12241
12336
  </xsl:template>
12242
12337
 
12243
12338
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
12339
+ <!-- https://github.com/metanorma/isodoc/issues/607
12244
12340
  <xsl:if test="normalize-space() != ''">
12245
- <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
12246
- </xsl:if>
12341
+ <xsl:text>(</xsl:text><xsl:apply-templates /><xsl:text>)</xsl:text>
12342
+ </xsl:if> -->
12343
+ <xsl:apply-templates/>
12247
12344
  </xsl:template>
12248
12345
 
12249
12346
  <!-- stem inside formula with name (with formula's number) -->
@@ -12422,10 +12519,21 @@
12422
12519
  </xsl:when>
12423
12520
  <xsl:otherwise>
12424
12521
 
12522
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
12523
+ <!-- <xsl:if test="$namespace = 'ieee'">
12524
+ <xsl:text>—</xsl:text> em dash &#x2014;
12525
+ </xsl:if> -->
12526
+ <!-- <xsl:if test="$namespace = 'iho' or $namespace = 'gb' or $namespace = 'm3d' or $namespace = 'unece-rec' or $namespace = 'unece' or $namespace = 'rsd'">
12527
+ <xsl:text>:</xsl:text>
12528
+ </xsl:if> -->
12529
+
12425
12530
  <xsl:if test="$layoutVersion = '1987' and . = translate(.,'1234567890','')"> <!-- NOTE without number -->
12426
12531
  <xsl:text> — </xsl:text>
12427
12532
  </xsl:if>
12428
12533
 
12534
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp'">
12535
+ <xsl:text> – </xsl:text> en dash &#x2013;
12536
+ </xsl:if> -->
12429
12537
  </xsl:otherwise>
12430
12538
  </xsl:choose>
12431
12539
  </xsl:variable>
@@ -12444,8 +12552,16 @@
12444
12552
  </xsl:when>
12445
12553
  <xsl:otherwise>
12446
12554
 
12555
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
12556
+ <!-- <xsl:if test="$namespace = 'ieee'">
12557
+ <xsl:text>—</xsl:text> em dash &#x2014;
12558
+ </xsl:if> -->
12559
+ <!-- <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'">
12447
12560
  <xsl:text>:</xsl:text>
12448
-
12561
+ </xsl:if> -->
12562
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'unece-rec' or $namespace = 'unece'">
12563
+ <xsl:text> – </xsl:text> en dash &#x2013;
12564
+ </xsl:if> -->
12449
12565
  </xsl:otherwise>
12450
12566
  </xsl:choose>
12451
12567
  </xsl:variable>
@@ -14615,7 +14731,7 @@
14615
14731
  <xsl:if test="normalize-space() != ''">
14616
14732
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
14617
14733
  <xsl:call-template name="refine_termexample-name-style"/>
14618
- <xsl:apply-templates/>
14734
+ <xsl:apply-templates/> <!-- commented $namespace = 'ieee', https://github.com/metanorma/isodoc/issues/614-->
14619
14735
  </fo:inline>
14620
14736
  </xsl:if>
14621
14737
  </xsl:template>
@@ -14782,7 +14898,7 @@
14782
14898
  <xsl:otherwise>
14783
14899
  <fo:inline xsl:use-attribute-sets="example-name-style">
14784
14900
  <xsl:call-template name="refine_example-name-style"/>
14785
- <xsl:apply-templates/>
14901
+ <xsl:apply-templates/> <!-- $namespace = 'ieee', see https://github.com/metanorma/isodoc/issues/614 -->
14786
14902
  </fo:inline>
14787
14903
  </xsl:otherwise>
14788
14904
  </xsl:choose>
@@ -14974,15 +15090,17 @@
14974
15090
 
14975
15091
  <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
14976
15092
  <fo:block role="BlockQuote">
14977
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
15093
+ <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 -->
14978
15094
  </fo:block>
14979
15095
  </fo:block-container>
14980
15096
  </fo:block-container>
14981
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
15097
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source'] or *[local-name() = 'attribution']">
14982
15098
  <fo:block xsl:use-attribute-sets="quote-source-style">
14983
15099
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
14984
15100
  <xsl:apply-templates select="*[local-name() = 'author']"/>
14985
15101
  <xsl:apply-templates select="*[local-name() = 'source']"/>
15102
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
15103
+ <xsl:apply-templates select="*[local-name() = 'attribution']/*[local-name() = 'p']/node()"/>
14986
15104
  </fo:block>
14987
15105
  </xsl:if>
14988
15106
 
@@ -15004,9 +15122,13 @@
15004
15122
  </xsl:template>
15005
15123
 
15006
15124
  <xsl:template match="*[local-name() = 'author']">
15007
- <xsl:text>— </xsl:text>
15125
+ <xsl:if test="local-name(..) = 'quote'"> <!-- for old Presentation XML, https://github.com/metanorma/isodoc/issues/607 -->
15126
+ <xsl:text>— </xsl:text>
15127
+ </xsl:if>
15008
15128
  <xsl:apply-templates/>
15009
15129
  </xsl:template>
15130
+
15131
+ <xsl:template match="*[local-name() = 'quote']//*[local-name() = 'referenceFrom']"/>
15010
15132
  <!-- ====== -->
15011
15133
  <!-- ====== -->
15012
15134
 
@@ -15187,8 +15309,12 @@
15187
15309
  </xsl:template>
15188
15310
 
15189
15311
  <xsl:template match="*[local-name() = 'domain']">
15312
+ <!-- https://github.com/metanorma/isodoc/issues/607
15190
15313
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
15191
- <xsl:text> </xsl:text>
15314
+ <xsl:text> </xsl:text> -->
15315
+ <xsl:if test="not(@hidden = 'true')">
15316
+ <xsl:apply-templates/>
15317
+ </xsl:if>
15192
15318
  </xsl:template>
15193
15319
 
15194
15320
  <xsl:template match="*[local-name() = 'admitted']">
@@ -15236,6 +15362,29 @@
15236
15362
  <!-- END definition -->
15237
15363
  <!-- ========== -->
15238
15364
 
15365
+ <xsl:variable name="reviews_">
15366
+ <xsl:for-each select="//*[local-name() = 'review'][@from]">
15367
+ <xsl:copy>
15368
+ <xsl:copy-of select="@from"/>
15369
+ <xsl:copy-of select="@id"/>
15370
+ </xsl:copy>
15371
+ </xsl:for-each>
15372
+ </xsl:variable>
15373
+ <xsl:variable name="reviews" select="xalan:nodeset($reviews_)"/>
15374
+
15375
+ <xsl:template name="addReviewHelper">
15376
+ <!-- if there is review with from="...", then add small helper block for Annot tag adding, see 'review' template -->
15377
+ <xsl:variable name="curr_id" select="@id"/>
15378
+ <xsl:variable name="review_id" select="normalize-space($reviews//*[local-name() = 'review'][@from = $curr_id]/@id)"/>
15379
+ <xsl:if test="$review_id != ''"> <!-- i.e. if review found -->
15380
+ <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>
15381
+ </xsl:if>
15382
+ <!-- <fo:block>
15383
+ <curr_id><xsl:value-of select="$curr_id"/></curr_id>
15384
+ <xsl:copy-of select="$reviews"/>
15385
+ </fo:block> -->
15386
+ </xsl:template>
15387
+
15239
15388
  <!-- main sections -->
15240
15389
  <xsl:template match="/*/*[local-name() = 'sections']/*" name="sections_node" priority="2">
15241
15390
 
@@ -15244,6 +15393,8 @@
15244
15393
 
15245
15394
  <xsl:call-template name="sections_element_style"/>
15246
15395
 
15396
+ <xsl:call-template name="addReviewHelper"/>
15397
+
15247
15398
  <xsl:apply-templates/>
15248
15399
  </fo:block>
15249
15400
 
@@ -15290,6 +15441,7 @@
15290
15441
 
15291
15442
  <fo:block>
15292
15443
  <xsl:call-template name="setId"/>
15444
+ <xsl:call-template name="addReviewHelper"/>
15293
15445
  <xsl:apply-templates/>
15294
15446
  </fo:block>
15295
15447
  </xsl:template>
@@ -15326,6 +15478,8 @@
15326
15478
 
15327
15479
  <xsl:call-template name="refine_clause_style"/>
15328
15480
 
15481
+ <xsl:call-template name="addReviewHelper"/>
15482
+
15329
15483
  <xsl:apply-templates/>
15330
15484
  </fo:block>
15331
15485
  </xsl:template>
@@ -15378,6 +15532,23 @@
15378
15532
 
15379
15533
  <xsl:variable name="id_from" select="normalize-space(current()/@from)"/>
15380
15534
 
15535
+ <xsl:if test="1 = 1">
15536
+ <xsl:choose>
15537
+ <!-- if there isn't the attribute '@from', then -->
15538
+ <xsl:when test="$id_from = ''">
15539
+ <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>
15540
+ </xsl:when>
15541
+ <!-- if there isn't element with id 'from', then create 'bookmark' here -->
15542
+ <xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
15543
+ <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>
15544
+ </xsl:when>
15545
+ <xsl:when test="not(/*[@id = $id_from]) and not(/*//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
15546
+ <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>
15547
+ </xsl:when>
15548
+ </xsl:choose>
15549
+ </xsl:if>
15550
+
15551
+ <xsl:if test="1 = 2">
15381
15552
  <xsl:choose>
15382
15553
  <!-- if there isn't the attribute '@from', then -->
15383
15554
  <xsl:when test="$id_from = ''">
@@ -15391,6 +15562,7 @@
15391
15562
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
15392
15563
  </xsl:when>
15393
15564
  </xsl:choose>
15565
+ </xsl:if>
15394
15566
 
15395
15567
  </xsl:template>
15396
15568
 
@@ -16545,9 +16717,9 @@
16545
16717
  </xsl:if>
16546
16718
 
16547
16719
  <xsl:if test="@type != 'editorial'">
16548
- <xsl:call-template name="displayAdmonitionName">
16549
- <xsl:with-param name="sep"> — </xsl:with-param>
16550
- </xsl:call-template>
16720
+ <xsl:call-template name="displayAdmonitionName"/>
16721
+ <!-- https://github.com/metanorma/isodoc/issues/614 -->
16722
+ <!-- <xsl:with-param name="sep"> — </xsl:with-param> -->
16551
16723
  </xsl:if>
16552
16724
 
16553
16725
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
@@ -16805,7 +16977,7 @@
16805
16977
  <!-- remove preprocess-xslt -->
16806
16978
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
16807
16979
 
16808
- <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image'] | *[local-name() = 'sourcecode'] | *[local-name() = 'bibdata'] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
16980
+ <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">
16809
16981
  <xsl:copy-of select="."/>
16810
16982
  </xsl:template>
16811
16983
 
@@ -16871,6 +17043,22 @@
16871
17043
  </xsl:choose>
16872
17044
  </xsl:template>
16873
17045
 
17046
+ <xsl:variable name="regex_passthrough">.*\bpdf\b.*</xsl:variable>
17047
+ <xsl:template match="*[local-name() = 'passthrough']" mode="update_xml_step1">
17048
+ <!-- <xsl:if test="contains(@formats, ' pdf ')"> -->
17049
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new(@formats), $regex_passthrough)) = 'true'">
17050
+ <xsl:apply-templates mode="update_xml_step1"/>
17051
+ </xsl:if>
17052
+ </xsl:template>
17053
+
17054
+ <!-- split math by element with @linebreak into maths -->
17055
+ <xsl:template match="mathml:math[.//mathml:mo[@linebreak] or .//mathml:mspace[@linebreak]]" mode="update_xml_step1">
17056
+ <xsl:variable name="maths">
17057
+ <xsl:apply-templates select="." mode="mathml_linebreak"/>
17058
+ </xsl:variable>
17059
+ <xsl:copy-of select="$maths"/>
17060
+ </xsl:template>
17061
+
16874
17062
  <!-- =========================================================================== -->
16875
17063
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
16876
17064
  <!-- =========================================================================== -->
@@ -16974,6 +17162,8 @@
16974
17162
 
16975
17163
  <xsl:template name="insertOpeningElements">
16976
17164
  <xsl:param name="tree"/>
17165
+ <xsl:param name="xmlns"/>
17166
+ <xsl:param name="add_continue">true</xsl:param>
16977
17167
  <xsl:for-each select="$tree//element">
16978
17168
  <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
16979
17169
  <xsl:value-of select="."/>
@@ -16984,7 +17174,8 @@
16984
17174
  <xsl:value-of select="."/>
16985
17175
  <xsl:text>"</xsl:text>
16986
17176
  </xsl:for-each>
16987
- <xsl:if test="position() = 1"> continue="true"</xsl:if>
17177
+ <xsl:if test="position() = 1 and $add_continue = 'true'"> continue="true"</xsl:if>
17178
+ <xsl:if test="position() = 1 and $xmlns != ''"> xmlns="<xsl:value-of select="$xmlns"/>"</xsl:if>
16988
17179
  <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
16989
17180
  <xsl:if test="$debug = 'true'">
16990
17181
  <xsl:message>&lt;<xsl:value-of select="."/>&gt;</xsl:message>