metanorma-iso 2.8.9 → 2.9.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/iso/base_convert.rb +5 -41
- data/lib/isodoc/iso/iso.amendment.xsl +218 -27
- data/lib/isodoc/iso/iso.international-standard.xsl +218 -27
- data/lib/isodoc/iso/presentation_bibdata.rb +1 -1
- data/lib/isodoc/iso/presentation_terms.rb +0 -13
- data/lib/isodoc/iso/presentation_xml_convert.rb +29 -20
- data/lib/isodoc/iso/presentation_xref.rb +2 -0
- data/lib/isodoc/iso/sections.rb +1 -1
- data/lib/metanorma/iso/front.rb +1 -0
- data/lib/metanorma/iso/front_contributor.rb +1 -3
- data/lib/metanorma/iso/isodoc.rng +1 -1
- data/lib/metanorma/iso/relaton-iso.rng +8 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +1 -1
- metadata +4 -4
@@ -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
|
-
|
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
|
-
|
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
|
-
|
9711
|
+
<fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
|
9662
9712
|
|
9663
|
-
|
9664
|
-
|
9665
|
-
|
9666
|
-
|
9667
|
-
|
9668
|
-
|
9669
|
-
|
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 —
|
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 –
|
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 —
|
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 –
|
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
|
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:
|
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"><<xsl:apply-templates/>></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
|
-
|
16550
|
-
|
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"><</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">></xsl:text>
|
16989
17180
|
<xsl:if test="$debug = 'true'">
|
16990
17181
|
<xsl:message><<xsl:value-of select="."/>></xsl:message>
|
@@ -32,7 +32,7 @@ module IsoDoc
|
|
32
32
|
ret = "<review date='#{Date.today}' reviewer='Metanorma' id='_#{id}'>" \
|
33
33
|
"<p><strong>Metadata warnings:<strong></p> #{ret}</review>"
|
34
34
|
ins = docxml.at(ns("//sections//title")) or return
|
35
|
-
ins.
|
35
|
+
ins.add_first_child ret
|
36
36
|
end
|
37
37
|
|
38
38
|
def editorialgroup_identifier(docxml)
|
@@ -52,19 +52,6 @@ module IsoDoc
|
|
52
52
|
node.children)
|
53
53
|
end
|
54
54
|
|
55
|
-
def termdefinition1(elem)
|
56
|
-
prefix_domain_to_definition(elem)
|
57
|
-
super
|
58
|
-
end
|
59
|
-
|
60
|
-
def prefix_domain_to_definition(elem)
|
61
|
-
((d = elem.at(ns("./domain"))) &&
|
62
|
-
(v = elem.at(ns("./definition/verbal-definition"))) &&
|
63
|
-
v.elements.first.name == "p") or return
|
64
|
-
v.elements.first.children.first.previous =
|
65
|
-
"<#{to_xml(d.remove.children)}> "
|
66
|
-
end
|
67
|
-
|
68
55
|
def insertall_after_here(node, insert, name)
|
69
56
|
node.children.each do |n|
|
70
57
|
n.name == name or next
|
@@ -31,6 +31,7 @@ module IsoDoc
|
|
31
31
|
admonition docxml
|
32
32
|
source docxml
|
33
33
|
ol docxml
|
34
|
+
quote docxml
|
34
35
|
permission docxml
|
35
36
|
requirement docxml
|
36
37
|
recommendation docxml
|
@@ -38,6 +39,8 @@ module IsoDoc
|
|
38
39
|
@xrefs.anchors_previous = @xrefs.anchors.dup # store old xrefs of reqts
|
39
40
|
@xrefs.parse docxml
|
40
41
|
table docxml # have table include requirements newly converted to tables
|
42
|
+
# table feeds dl
|
43
|
+
dl docxml
|
41
44
|
example docxml
|
42
45
|
note docxml
|
43
46
|
end
|
@@ -52,6 +55,8 @@ module IsoDoc
|
|
52
55
|
end
|
53
56
|
|
54
57
|
def figure1(node)
|
58
|
+
figure_fn(node)
|
59
|
+
figure_key(node.at(ns("./dl")))
|
55
60
|
lbl = @xrefs.anchor(node["id"], :label, false) or return
|
56
61
|
figname = node.parent.name == "figure" ? "" : "#{@i18n.figure} "
|
57
62
|
conn = node.parent.name == "figure" ? "  " : " — "
|
@@ -97,7 +102,6 @@ module IsoDoc
|
|
97
102
|
|
98
103
|
def admonition1(elem)
|
99
104
|
super
|
100
|
-
admonition_inline_name(elem)
|
101
105
|
admonition_outside_clauses(elem)
|
102
106
|
end
|
103
107
|
|
@@ -113,17 +117,6 @@ module IsoDoc
|
|
113
117
|
cell.children.each { |p| wrap_in_bold(p) }
|
114
118
|
end
|
115
119
|
|
116
|
-
def admonition_inline_name(elem)
|
117
|
-
n = elem.at(ns("./name")) or return
|
118
|
-
if (p = n.next_element) && p&.name == "p"
|
119
|
-
p.children.first.previous = admonition_name(to_xml(n.remove.children))
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def admonition_name(xml)
|
124
|
-
"#{xml} — "
|
125
|
-
end
|
126
|
-
|
127
120
|
def bibrender_formattedref(formattedref, xml)
|
128
121
|
%w(techreport standard).include? xml["type"] and return
|
129
122
|
super
|
@@ -146,10 +139,9 @@ module IsoDoc
|
|
146
139
|
|
147
140
|
def formula_where(dlist)
|
148
141
|
dlist.nil? and return
|
149
|
-
|
142
|
+
dlist.xpath(ns("./dt")).size == 1 &&
|
150
143
|
dlist.at(ns("./dd"))&.elements&.size == 1 &&
|
151
|
-
dlist.at(ns("./dd/p"))
|
152
|
-
|
144
|
+
dlist.at(ns("./dd/p")) or return super
|
153
145
|
formula_where_one(dlist)
|
154
146
|
end
|
155
147
|
|
@@ -162,7 +154,7 @@ module IsoDoc
|
|
162
154
|
|
163
155
|
def table1(elem)
|
164
156
|
elem.xpath(ns(".//dl[@key = 'true'][not(./name)]")).each do |dl|
|
165
|
-
dl.
|
157
|
+
dl.add_first_child "<name>#{@i18n.key}</name>"
|
166
158
|
end
|
167
159
|
super
|
168
160
|
end
|
@@ -177,7 +169,7 @@ module IsoDoc
|
|
177
169
|
return
|
178
170
|
s = docxml.at(ns("//sections")) or return
|
179
171
|
ret = "#{middle_title_main}#{middle_title_amd}"
|
180
|
-
s.
|
172
|
+
s.add_first_child ret
|
181
173
|
end
|
182
174
|
|
183
175
|
def middle_title_main
|
@@ -214,9 +206,7 @@ module IsoDoc
|
|
214
206
|
end
|
215
207
|
|
216
208
|
def move_norm_ref_to_sections(docxml)
|
217
|
-
|
218
|
-
else super
|
219
|
-
end
|
209
|
+
amd?(docxml) or super
|
220
210
|
end
|
221
211
|
|
222
212
|
def twitter_cldr_localiser_symbols
|
@@ -224,6 +214,25 @@ module IsoDoc
|
|
224
214
|
fraction_group_digits: 3 }
|
225
215
|
end
|
226
216
|
|
217
|
+
def implicit_reference(bib)
|
218
|
+
bib.at(ns("./docidentifier"))&.text == "IEV" and return true
|
219
|
+
super
|
220
|
+
end
|
221
|
+
|
222
|
+
def render_identifier(ident)
|
223
|
+
ret = super
|
224
|
+
ret[:sdo] = std_docid_semantic(ret[:sdo])
|
225
|
+
ret
|
226
|
+
end
|
227
|
+
|
228
|
+
def admonition_delim(elem)
|
229
|
+
if elem.at("./*[not(self::xmlns:name)]")&.name == "p"
|
230
|
+
" — "
|
231
|
+
else
|
232
|
+
""
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
227
236
|
include Init
|
228
237
|
end
|
229
238
|
end
|
data/lib/isodoc/iso/sections.rb
CHANGED
@@ -12,7 +12,7 @@ module IsoDoc
|
|
12
12
|
@foreword = true
|
13
13
|
page_break(out)
|
14
14
|
out.div **attr_code(id: clause["id"]) do |s|
|
15
|
-
clause_name(nil, clause.at(ns("./title"))
|
15
|
+
clause_name(nil, clause.at(ns("./title")), s,
|
16
16
|
{ class: "ForewordTitle" })
|
17
17
|
clause.elements.each { |e| parse(e, s) unless e.name == "title" }
|
18
18
|
end
|
data/lib/metanorma/iso/front.rb
CHANGED
@@ -21,6 +21,7 @@ module Metanorma
|
|
21
21
|
@amd && a = node.attr("updates-document-type") and
|
22
22
|
xml.updates_document_type a
|
23
23
|
a = node.attr("fast-track") and xml.send "fast-track", a != "false"
|
24
|
+
a = node.attr("price-code") and xml.price_code a
|
24
25
|
end
|
25
26
|
|
26
27
|
STAGE_ERROR = [Pubid::Core::Errors::HarmonizedStageCodeInvalidError,
|
@@ -54,12 +54,10 @@ module Metanorma
|
|
54
54
|
def contrib_committee_build(xml, agency, committee)
|
55
55
|
name = org_abbrev.invert[agency] and agency = name
|
56
56
|
xml.name agency
|
57
|
-
xml.subdivision do |
|
58
|
-
s.organization do |o|
|
57
|
+
xml.subdivision do |o|
|
59
58
|
o.name committee[:name]
|
60
59
|
committee[:abbr] and o.abbreviation committee[:abbr]
|
61
60
|
committee[:ident] and o.identifier committee[:ident]
|
62
|
-
end
|
63
61
|
end
|
64
62
|
end
|
65
63
|
|