metanorma-iso 2.4.7 → 2.5.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 +4 -4
- data/lib/isodoc/iso/base_convert.rb +7 -22
- data/lib/isodoc/iso/html/style-human.css +15 -11
- data/lib/isodoc/iso/html/style-human.scss +8 -8
- data/lib/isodoc/iso/html/style-iso.css +26 -22
- data/lib/isodoc/iso/html/style-iso.scss +19 -19
- data/lib/isodoc/iso/html_convert.rb +0 -12
- data/lib/isodoc/iso/i18n-en.yaml +6 -0
- data/lib/isodoc/iso/i18n-fr.yaml +6 -0
- data/lib/isodoc/iso/i18n-ja.yaml +1 -0
- data/lib/isodoc/iso/i18n-ru.yaml +6 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +3 -0
- data/lib/isodoc/iso/iso.amendment.xsl +156 -78
- data/lib/isodoc/iso/iso.international-standard.xsl +156 -78
- data/lib/isodoc/iso/presentation_xml_convert.rb +34 -1
- data/lib/isodoc/iso/sections.rb +4 -44
- data/lib/isodoc/iso/word_convert.rb +24 -17
- data/lib/isodoc/iso/word_dis_cleanup.rb +9 -0
- data/lib/isodoc/iso/word_dis_convert.rb +28 -25
- data/lib/isodoc/iso/xref.rb +1 -1
- data/lib/metanorma/iso/front.rb +18 -6
- data/lib/metanorma/iso/front_id.rb +6 -45
- data/lib/metanorma/iso/isodoc.rng +26 -4
- data/lib/metanorma/iso/validate.rb +0 -16
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +1 -1
- metadata +4 -4
@@ -719,10 +719,20 @@
|
|
719
719
|
<fo:block> </fo:block>
|
720
720
|
</fo:table-cell>
|
721
721
|
<fo:table-cell>
|
722
|
-
<fo:block>
|
722
|
+
<fo:block>
|
723
|
+
<!-- Voting begins on: -->
|
724
|
+
<xsl:call-template name="getLocalizedString">
|
725
|
+
<xsl:with-param name="key">voting_begins_on</xsl:with-param>
|
726
|
+
</xsl:call-template><xsl:text>:</xsl:text>
|
727
|
+
</fo:block>
|
723
728
|
</fo:table-cell>
|
724
729
|
<fo:table-cell>
|
725
|
-
<fo:block>
|
730
|
+
<fo:block>
|
731
|
+
<!-- Voting terminates on: -->
|
732
|
+
<xsl:call-template name="getLocalizedString">
|
733
|
+
<xsl:with-param name="key">voting_terminates_on</xsl:with-param>
|
734
|
+
</xsl:call-template><xsl:text>:</xsl:text>
|
735
|
+
</fo:block>
|
726
736
|
</fo:table-cell>
|
727
737
|
</fo:table-row>
|
728
738
|
<fo:table-row>
|
@@ -955,7 +965,12 @@
|
|
955
965
|
<fo:block margin="2mm" role="SKIP">
|
956
966
|
<fo:block margin-bottom="8pt"><xsl:copy-of select="$editorialgroup"/></fo:block>
|
957
967
|
<fo:block margin-bottom="6pt"><xsl:copy-of select="$secretariat"/></fo:block>
|
958
|
-
<fo:block margin-bottom="6pt">
|
968
|
+
<fo:block margin-bottom="6pt">
|
969
|
+
<!-- Voting begins on: -->
|
970
|
+
<xsl:call-template name="getLocalizedString">
|
971
|
+
<xsl:with-param name="key">voting_begins_on</xsl:with-param>
|
972
|
+
</xsl:call-template><xsl:text>:</xsl:text>
|
973
|
+
<xsl:value-of select="$linebreak"/>
|
959
974
|
<fo:inline font-weight="bold">
|
960
975
|
<xsl:choose>
|
961
976
|
<xsl:when test="/iso:iso-standard/iso:bibdata/iso:date[@type = 'vote-started']/iso:on">
|
@@ -965,7 +980,12 @@
|
|
965
980
|
</xsl:choose>
|
966
981
|
</fo:inline>
|
967
982
|
</fo:block>
|
968
|
-
<fo:block>
|
983
|
+
<fo:block>
|
984
|
+
<!-- Voting terminates on: -->
|
985
|
+
<xsl:call-template name="getLocalizedString">
|
986
|
+
<xsl:with-param name="key">voting_terminates_on</xsl:with-param>
|
987
|
+
</xsl:call-template><xsl:text>:</xsl:text>
|
988
|
+
<xsl:value-of select="$linebreak"/>
|
969
989
|
<fo:inline font-weight="bold">
|
970
990
|
<xsl:choose>
|
971
991
|
<xsl:when test="/iso:iso-standard/iso:bibdata/iso:date[@type = 'vote-ended']/iso:on">
|
@@ -1333,38 +1353,35 @@
|
|
1333
1353
|
<xsl:call-template name="insertHeaderFooter"/>
|
1334
1354
|
<fo:flow flow-name="xsl-region-body">
|
1335
1355
|
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
<xsl:value-of select="$title-en"/>
|
1340
|
-
</fo:block>
|
1341
|
-
-->
|
1356
|
+
<!-- Information and documentation — Codes for transcription systems -->
|
1357
|
+
<!-- <fo:block-container>
|
1358
|
+
|
1342
1359
|
<fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1" role="H1">
|
1343
|
-
|
1360
|
+
|
1344
1361
|
<fo:block role="SKIP">
|
1345
|
-
|
1362
|
+
|
1346
1363
|
<xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
|
1347
|
-
|
1364
|
+
|
1348
1365
|
<xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
|
1349
|
-
|
1366
|
+
|
1350
1367
|
<xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
|
1351
1368
|
<xsl:with-param name="isMainLang">true</xsl:with-param>
|
1352
1369
|
<xsl:with-param name="isMainBody">true</xsl:with-param>
|
1353
1370
|
</xsl:apply-templates>
|
1354
|
-
|
1371
|
+
|
1355
1372
|
</fo:block>
|
1356
1373
|
<fo:block role="SKIP">
|
1357
1374
|
<xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']/node()"/>
|
1358
1375
|
</fo:block>
|
1359
|
-
|
1376
|
+
|
1360
1377
|
<xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']">
|
1361
1378
|
<xsl:with-param name="isMainLang">true</xsl:with-param>
|
1362
1379
|
<xsl:with-param name="isMainBody">true</xsl:with-param>
|
1363
1380
|
</xsl:apply-templates>
|
1364
|
-
|
1381
|
+
|
1365
1382
|
</fo:block>
|
1366
|
-
|
1367
|
-
</fo:block-container>
|
1383
|
+
|
1384
|
+
</fo:block-container> -->
|
1368
1385
|
<!-- Clause(s) -->
|
1369
1386
|
<fo:block>
|
1370
1387
|
|
@@ -1446,8 +1463,8 @@
|
|
1446
1463
|
<xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
|
1447
1464
|
<fo:block font-size="9pt" margin-bottom="6pt">
|
1448
1465
|
<xsl:variable name="title-descriptors">
|
1449
|
-
<xsl:call-template name="
|
1450
|
-
<xsl:with-param name="
|
1466
|
+
<xsl:call-template name="getLocalizedString">
|
1467
|
+
<xsl:with-param name="key">Descriptor.pl</xsl:with-param>
|
1451
1468
|
</xsl:call-template>
|
1452
1469
|
</xsl:variable>
|
1453
1470
|
<fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/>: </fo:inline>
|
@@ -1737,6 +1754,31 @@
|
|
1737
1754
|
</xsl:if>
|
1738
1755
|
</xsl:template>
|
1739
1756
|
|
1757
|
+
<xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']" priority="4">
|
1758
|
+
<fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1" role="H1">
|
1759
|
+
<xsl:if test="following-sibling::*[1][self::iso:p][starts-with(@class, 'zzSTDTitle')]">
|
1760
|
+
<xsl:attribute name="margin-bottom">0pt</xsl:attribute>
|
1761
|
+
</xsl:if>
|
1762
|
+
<xsl:apply-templates/>
|
1763
|
+
</fo:block>
|
1764
|
+
</xsl:template>
|
1765
|
+
|
1766
|
+
<xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']/iso:span[@class = 'nonboldtitle']" priority="3">
|
1767
|
+
<!-- Example: <span class="nonboldtitle">Part 1:</span> -->
|
1768
|
+
<fo:block font-weight="normal" margin-top="12pt" line-height="1.1" role="SKIP">
|
1769
|
+
<xsl:apply-templates/>
|
1770
|
+
</fo:block>
|
1771
|
+
</xsl:template>
|
1772
|
+
|
1773
|
+
<xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle2']" priority="4">
|
1774
|
+
<!-- Example: <p class="zzSTDTitle2" displayorder="3">AMENDMENT 1: Mass fraction of extraneous matter, milled rice (nonglutinous), sample dividers and recommendations relating to storage and transport conditions</p> -->
|
1775
|
+
<xsl:if test="$doctype = 'amendment'">
|
1776
|
+
<fo:block font-size="18pt" margin-top="12pt" margin-bottom="20pt" margin-right="0mm" font-weight="normal" line-height="1.1" role="H1">
|
1777
|
+
<xsl:apply-templates/>
|
1778
|
+
</fo:block>
|
1779
|
+
</xsl:if>
|
1780
|
+
</xsl:template>
|
1781
|
+
|
1740
1782
|
<!-- ==================== -->
|
1741
1783
|
<!-- END display titles -->
|
1742
1784
|
<!-- ==================== -->
|
@@ -2047,10 +2089,17 @@
|
|
2047
2089
|
<xsl:if test="ancestor::*[local-name() = 'li' or local-name() = 'td' or local-name() = 'th' or local-name() = 'dd']">
|
2048
2090
|
<xsl:attribute name="role">SKIP</xsl:attribute>
|
2049
2091
|
</xsl:if>
|
2050
|
-
<xsl:apply-templates>
|
2092
|
+
<!-- <xsl:apply-templates>
|
2093
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
2094
|
+
</xsl:apply-templates> -->
|
2095
|
+
<!-- <xsl:apply-templates select="node()[not(self::iso:note[not(following-sibling::*) or count(following-sibling::*) = count(../iso:note) - 1])]"> -->
|
2096
|
+
<xsl:apply-templates select="node()[not(self::iso:note)]"> <!-- note renders below paragraph for correct PDF tags order (see https://github.com/metanorma/metanorma-iso/issues/1003) -->
|
2051
2097
|
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
2052
2098
|
</xsl:apply-templates>
|
2053
2099
|
</xsl:element>
|
2100
|
+
|
2101
|
+
<xsl:apply-templates select="iso:note"/> <!-- [not(following-sibling::*) or count(following-sibling::*) = count(../iso:note) - 1] -->
|
2102
|
+
|
2054
2103
|
<xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
|
2055
2104
|
<fo:block margin-bottom="12pt" role="SKIP">
|
2056
2105
|
<xsl:if test="ancestor::iso:annex or following-sibling::iso:table">
|
@@ -2444,19 +2493,32 @@
|
|
2444
2493
|
<xsl:variable name="titles_">
|
2445
2494
|
|
2446
2495
|
<!-- These titles of Table of contents renders different than determined in localized-strings -->
|
2447
|
-
<title-toc lang="en">
|
2448
|
-
|
2449
|
-
|
2450
|
-
|
2496
|
+
<!-- <title-toc lang="en">
|
2497
|
+
<xsl:if test="$namespace = 'csd' or $namespace = 'ieee' or $namespace = 'iho' or $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'unece-rec'">
|
2498
|
+
<xsl:text>Contents</xsl:text>
|
2499
|
+
</xsl:if>
|
2500
|
+
<xsl:if test="$namespace = 'csa' or $namespace = 'm3d' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper'">
|
2501
|
+
<xsl:text>Table of Contents</xsl:text>
|
2502
|
+
</xsl:if>
|
2503
|
+
<xsl:if test="$namespace = 'gb'">
|
2504
|
+
<xsl:text>Table of contents</xsl:text>
|
2505
|
+
</xsl:if>
|
2506
|
+
</title-toc> -->
|
2507
|
+
<title-toc lang="en">Table of contents</title-toc>
|
2508
|
+
<!-- <title-toc lang="fr">
|
2451
2509
|
<xsl:text>Sommaire</xsl:text>
|
2452
|
-
</title-toc>
|
2453
|
-
<title-toc lang="zh">
|
2454
|
-
|
2510
|
+
</title-toc> -->
|
2511
|
+
<!-- <title-toc lang="zh">
|
2512
|
+
<xsl:choose>
|
2513
|
+
<xsl:when test="$namespace = 'gb'">
|
2514
|
+
<xsl:text>目次</xsl:text>
|
2515
|
+
</xsl:when>
|
2516
|
+
<xsl:otherwise>
|
2455
2517
|
<xsl:text>Contents</xsl:text>
|
2456
|
-
|
2457
|
-
|
2458
|
-
|
2459
|
-
<title-
|
2518
|
+
</xsl:otherwise>
|
2519
|
+
</xsl:choose>
|
2520
|
+
</title-toc> -->
|
2521
|
+
<title-toc lang="zh">目次</title-toc>
|
2460
2522
|
|
2461
2523
|
<title-part lang="en">
|
2462
2524
|
|
@@ -2478,20 +2540,6 @@
|
|
2478
2540
|
<title-subpart lang="en">Sub-part #</title-subpart>
|
2479
2541
|
<title-subpart lang="fr">Partie de sub #</title-subpart>
|
2480
2542
|
|
2481
|
-
<title-list-tables lang="en">List of Tables</title-list-tables>
|
2482
|
-
|
2483
|
-
<title-list-figures lang="en">List of Figures</title-list-figures>
|
2484
|
-
|
2485
|
-
<title-table-figures lang="en">Table of Figures</title-table-figures>
|
2486
|
-
|
2487
|
-
<title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
|
2488
|
-
|
2489
|
-
<title-summary lang="en">Summary</title-summary>
|
2490
|
-
|
2491
|
-
<title-continued lang="ru">(продолжение)</title-continued>
|
2492
|
-
<title-continued lang="en">(continued)</title-continued>
|
2493
|
-
<title-continued lang="fr">(continué)</title-continued>
|
2494
|
-
|
2495
2543
|
</xsl:variable>
|
2496
2544
|
<xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
|
2497
2545
|
|
@@ -2499,8 +2547,8 @@
|
|
2499
2547
|
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
2500
2548
|
<xsl:value-of select="$toc_table_title"/>
|
2501
2549
|
<xsl:if test="normalize-space($toc_table_title) = ''">
|
2502
|
-
<xsl:call-template name="
|
2503
|
-
<xsl:with-param name="
|
2550
|
+
<xsl:call-template name="getLocalizedString">
|
2551
|
+
<xsl:with-param name="key">toc_tables</xsl:with-param>
|
2504
2552
|
</xsl:call-template>
|
2505
2553
|
</xsl:if>
|
2506
2554
|
</xsl:variable>
|
@@ -2509,8 +2557,8 @@
|
|
2509
2557
|
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
2510
2558
|
<xsl:value-of select="$toc_figure_title"/>
|
2511
2559
|
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
2512
|
-
<xsl:call-template name="
|
2513
|
-
<xsl:with-param name="
|
2560
|
+
<xsl:call-template name="getLocalizedString">
|
2561
|
+
<xsl:with-param name="key">toc_figures</xsl:with-param>
|
2514
2562
|
</xsl:call-template>
|
2515
2563
|
</xsl:if>
|
2516
2564
|
</xsl:variable>
|
@@ -2519,8 +2567,8 @@
|
|
2519
2567
|
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
2520
2568
|
<xsl:value-of select="$toc_requirement_title"/>
|
2521
2569
|
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
2522
|
-
<xsl:call-template name="
|
2523
|
-
<xsl:with-param name="
|
2570
|
+
<xsl:call-template name="getLocalizedString">
|
2571
|
+
<xsl:with-param name="key">toc_recommendations</xsl:with-param>
|
2524
2572
|
</xsl:call-template>
|
2525
2573
|
</xsl:if>
|
2526
2574
|
</xsl:variable>
|
@@ -5064,13 +5112,13 @@
|
|
5064
5112
|
<fo:table-body>
|
5065
5113
|
|
5066
5114
|
<xsl:variable name="title_continued_">
|
5067
|
-
<xsl:call-template name="
|
5068
|
-
<xsl:with-param name="
|
5115
|
+
<xsl:call-template name="getLocalizedString">
|
5116
|
+
<xsl:with-param name="key">continued</xsl:with-param>
|
5069
5117
|
</xsl:call-template>
|
5070
5118
|
</xsl:variable>
|
5071
|
-
|
5119
|
+
<xsl:variable name="title_continued_in_parenthesis" select="concat('(',$title_continued_,')')"/>
|
5072
5120
|
<xsl:variable name="title_continued">
|
5073
|
-
<xsl:value-of select="$
|
5121
|
+
<xsl:value-of select="$title_continued_in_parenthesis"/>
|
5074
5122
|
|
5075
5123
|
</xsl:variable>
|
5076
5124
|
|
@@ -6403,6 +6451,9 @@
|
|
6403
6451
|
<!-- END Definition List -->
|
6404
6452
|
<!-- ===================== -->
|
6405
6453
|
|
6454
|
+
<!-- default: ignore title in sections/p -->
|
6455
|
+
<xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
|
6456
|
+
|
6406
6457
|
<!-- ========================= -->
|
6407
6458
|
<!-- Rich text formatting -->
|
6408
6459
|
<!-- ========================= -->
|
@@ -6486,7 +6537,7 @@
|
|
6486
6537
|
<xsl:variable name="regex_url_start">^(http://|https://|www\.)?(.*)</xsl:variable>
|
6487
6538
|
<xsl:template match="*[local-name()='tt']/text()" priority="2">
|
6488
6539
|
<xsl:choose>
|
6489
|
-
<xsl:when test="java:replaceAll(java:java.lang.String.new(.),
|
6540
|
+
<xsl:when test="java:replaceAll(java:java.lang.String.new(.), $regex_url_start, '$2') != ''">
|
6490
6541
|
<!-- url -->
|
6491
6542
|
<xsl:call-template name="add-zero-spaces-link-java"/>
|
6492
6543
|
</xsl:when>
|
@@ -7019,10 +7070,13 @@
|
|
7019
7070
|
</xsl:choose>
|
7020
7071
|
</xsl:variable>
|
7021
7072
|
|
7073
|
+
<!-- replace sequence #x200B to one ​ -->
|
7074
|
+
<xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b{2,}', '')"/>
|
7075
|
+
|
7022
7076
|
<!-- replace sequence #x200B and space TO space -->
|
7023
|
-
<xsl:variable name="
|
7077
|
+
<xsl:variable name="text11" select="java:replaceAll(java:java.lang.String.new($text10), '\u200b ', ' ')"/>
|
7024
7078
|
|
7025
|
-
<xsl:value-of select="$
|
7079
|
+
<xsl:value-of select="$text11"/>
|
7026
7080
|
</xsl:template>
|
7027
7081
|
|
7028
7082
|
<xsl:template name="add-zero-spaces-link-java">
|
@@ -7032,8 +7086,12 @@
|
|
7032
7086
|
<xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
|
7033
7087
|
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
|
7034
7088
|
<xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1')"/>
|
7089
|
+
|
7090
|
+
<!-- replace sequence #x200B to one ​ -->
|
7091
|
+
<xsl:variable name="url2" select="java:replaceAll(java:java.lang.String.new($url), '\u200b{2,}', '')"/>
|
7092
|
+
|
7035
7093
|
<!-- remove zero-width space at the end -->
|
7036
|
-
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($
|
7094
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($url2), '$', '')"/>
|
7037
7095
|
</xsl:template>
|
7038
7096
|
|
7039
7097
|
<!-- add zero space after dash character (for table's entries) -->
|
@@ -8303,7 +8361,7 @@
|
|
8303
8361
|
|
8304
8362
|
<xsl:call-template name="refine_note_block_style"/>
|
8305
8363
|
|
8306
|
-
<fo:inline xsl:use-attribute-sets="note-name-style">
|
8364
|
+
<fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
|
8307
8365
|
|
8308
8366
|
<xsl:call-template name="refine_note-name-style"/>
|
8309
8367
|
|
@@ -8340,12 +8398,12 @@
|
|
8340
8398
|
<xsl:variable name="num"><xsl:number/></xsl:variable>
|
8341
8399
|
<xsl:choose>
|
8342
8400
|
<xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
|
8343
|
-
<fo:inline xsl:use-attribute-sets="note-p-style">
|
8401
|
+
<fo:inline xsl:use-attribute-sets="note-p-style" role="SKIP">
|
8344
8402
|
<xsl:apply-templates/>
|
8345
8403
|
</fo:inline>
|
8346
8404
|
</xsl:when>
|
8347
8405
|
<xsl:otherwise>
|
8348
|
-
<fo:block xsl:use-attribute-sets="note-p-style">
|
8406
|
+
<fo:block xsl:use-attribute-sets="note-p-style" role="SKIP">
|
8349
8407
|
<xsl:apply-templates/>
|
8350
8408
|
</fo:block>
|
8351
8409
|
</xsl:otherwise>
|
@@ -8564,25 +8622,45 @@
|
|
8564
8622
|
<fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
|
8565
8623
|
<xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
|
8566
8624
|
|
8567
|
-
<xsl:
|
8568
|
-
<xsl:
|
8569
|
-
<xsl:
|
8570
|
-
|
8571
|
-
|
8572
|
-
</xsl:variable>
|
8625
|
+
<xsl:if test="@width != '' and @width != 'auto'">
|
8626
|
+
<xsl:attribute name="width">
|
8627
|
+
<xsl:value-of select="@width"/>
|
8628
|
+
</xsl:attribute>
|
8629
|
+
</xsl:if>
|
8573
8630
|
|
8574
|
-
<xsl:
|
8631
|
+
<xsl:if test="@height != '' and @height != 'auto'">
|
8632
|
+
<xsl:attribute name="height">
|
8633
|
+
<xsl:value-of select="@height"/>
|
8634
|
+
</xsl:attribute>
|
8635
|
+
</xsl:if>
|
8575
8636
|
|
8576
|
-
|
8637
|
+
<xsl:choose>
|
8638
|
+
<xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
|
8639
|
+
<xsl:attribute name="scaling">non-uniform</xsl:attribute>
|
8640
|
+
</xsl:when>
|
8641
|
+
<xsl:otherwise>
|
8577
8642
|
|
8578
|
-
|
8643
|
+
<xsl:variable name="img_src">
|
8644
|
+
<xsl:choose>
|
8645
|
+
<xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
|
8646
|
+
<xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
|
8647
|
+
</xsl:choose>
|
8648
|
+
</xsl:variable>
|
8579
8649
|
|
8580
|
-
|
8581
|
-
<xsl:if test="number($scale) < 100">
|
8650
|
+
<xsl:variable name="image_width_effective">
|
8582
8651
|
|
8583
|
-
|
8652
|
+
<xsl:value-of select="$width_effective"/>
|
8584
8653
|
|
8585
|
-
|
8654
|
+
</xsl:variable>
|
8655
|
+
|
8656
|
+
<xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
|
8657
|
+
<xsl:if test="number($scale) < 100">
|
8658
|
+
|
8659
|
+
<xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
|
8660
|
+
|
8661
|
+
</xsl:if>
|
8662
|
+
</xsl:otherwise>
|
8663
|
+
</xsl:choose>
|
8586
8664
|
|
8587
8665
|
</xsl:if>
|
8588
8666
|
|
@@ -12240,7 +12318,7 @@
|
|
12240
12318
|
<xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
|
12241
12319
|
<xsl:apply-templates mode="update_xml_step1"/>
|
12242
12320
|
</xsl:template>
|
12243
|
-
<xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
|
12321
|
+
<xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
|
12244
12322
|
<xsl:copy>
|
12245
12323
|
<xsl:copy-of select="@*"/>
|
12246
12324
|
<xsl:apply-templates mode="update_xml_step1"/>
|
@@ -95,7 +95,7 @@ module IsoDoc
|
|
95
95
|
i = display_order_at(docxml, "//clause[@type = 'scope']", i)
|
96
96
|
i = display_order_at(docxml, @xrefs.klass.norm_ref_xpath, i)
|
97
97
|
i = display_order_xpath(docxml,
|
98
|
-
"//sections/clause[not(@type = 'scope')] | " \
|
98
|
+
"//sections/clause[not(@type = 'scope')][not(.//references)] | " \
|
99
99
|
"//sections/terms | //sections/definitions", i)
|
100
100
|
i = display_order_xpath(docxml, "//annex", i)
|
101
101
|
i = display_order_xpath(docxml, @xrefs.klass.bibliography_xpath, i)
|
@@ -161,6 +161,39 @@ module IsoDoc
|
|
161
161
|
super
|
162
162
|
end
|
163
163
|
|
164
|
+
def middle_title(docxml)
|
165
|
+
@meta.get[:doctitlemain].nil? || @meta.get[:doctitlemain].empty? and
|
166
|
+
return
|
167
|
+
s = docxml.at(ns("//sections")) or return
|
168
|
+
ret = "#{middle_title_main}#{middle_title_amd}"
|
169
|
+
s.children.first.previous = ret
|
170
|
+
end
|
171
|
+
|
172
|
+
def middle_title_main
|
173
|
+
ret = "<span class='boldtitle'>#{@meta.get[:doctitleintro]}"
|
174
|
+
ret += " — " if @meta.get[:doctitleintro] && @meta.get[:doctitlemain]
|
175
|
+
ret += @meta.get[:doctitlemain]
|
176
|
+
ret += " — " if @meta.get[:doctitlemain] && @meta.get[:doctitlepart]
|
177
|
+
ret += "</span>"
|
178
|
+
if a = @meta.get[:doctitlepart]
|
179
|
+
b = @meta.get[:doctitlepartlabel] and ret += "<span class='nonboldtitle'>#{b}:</span> "
|
180
|
+
ret += "<span class='boldtitle'>#{a}</span>"
|
181
|
+
end
|
182
|
+
"<p class='zzSTDTitle1'>#{ret}</p>"
|
183
|
+
end
|
184
|
+
|
185
|
+
def middle_title_amd
|
186
|
+
ret = ""
|
187
|
+
if a = @meta.get[:doctitleamdlabel]
|
188
|
+
ret += "<p class='zzSTDTitle2'>#{a}"
|
189
|
+
a = @meta.get[:doctitleamd] and ret += ": #{a}"
|
190
|
+
ret += "</p>"
|
191
|
+
end
|
192
|
+
a = @meta.get[:doctitlecorrlabel] and
|
193
|
+
ret += "<p class='zzSTDTitle2'>#{a}</p>"
|
194
|
+
ret
|
195
|
+
end
|
196
|
+
|
164
197
|
include Init
|
165
198
|
end
|
166
199
|
end
|
data/lib/isodoc/iso/sections.rb
CHANGED
@@ -1,52 +1,12 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
module Iso
|
3
3
|
module BaseConvert
|
4
|
-
def
|
5
|
-
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
def middle_title_main(out)
|
10
|
-
out.p(class: "zzSTDTitle1") do |p|
|
11
|
-
p << @meta.get[:doctitleintro]
|
12
|
-
p << " — " if @meta.get[:doctitleintro] && @meta.get[:doctitlemain]
|
13
|
-
p << @meta.get[:doctitlemain]
|
14
|
-
p << " — " if @meta.get[:doctitlemain] && @meta.get[:doctitlepart]
|
15
|
-
end
|
16
|
-
a = @meta.get[:doctitlepart] and out.p(class: "zzSTDTitle2") do |p|
|
17
|
-
b = @meta.get[:doctitlepartlabel] and p << "#{b}: "
|
18
|
-
p << "<br/><b>#{a}</b>"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def middle_title_amd(out)
|
23
|
-
a = @meta.get[:doctitleamdlabel] and out.p(class: "zzSTDTitle2") do |p|
|
24
|
-
p << a
|
25
|
-
a = @meta.get[:doctitleamd] and p << ": #{a}"
|
26
|
-
end
|
27
|
-
a = @meta.get[:doctitlecorrlabel] and out.p(class: "zzSTDTitle2") do |p|
|
28
|
-
p << a
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def annex(isoxml, out)
|
33
|
-
amd(isoxml) and @suppressheadingnumbers = @oldsuppressheadingnumbers
|
4
|
+
def annex(node, out)
|
5
|
+
amd(node.document) and
|
6
|
+
@suppressheadingnumbers = @oldsuppressheadingnumbers
|
34
7
|
super
|
35
|
-
amd(
|
36
|
-
end
|
37
|
-
|
38
|
-
=begin
|
39
|
-
def introduction(clause, out)
|
40
|
-
title_attr = { class: "IntroTitle" }
|
41
|
-
page_break(out)
|
42
|
-
out.div class: "Section3", id: clause["id"] do |div|
|
43
|
-
clause_name(clause, clause.at(ns("./title")), div, title_attr)
|
44
|
-
clause.elements.each do |e|
|
45
|
-
parse(e, div) unless e.name == "title"
|
46
|
-
end
|
47
|
-
end
|
8
|
+
amd(node.document) and @suppressheadingnumbers = true
|
48
9
|
end
|
49
|
-
=end
|
50
10
|
|
51
11
|
def foreword(clause, out)
|
52
12
|
@foreword = true
|
@@ -70,8 +70,8 @@ module IsoDoc
|
|
70
70
|
make_body1(body, docxml)
|
71
71
|
make_body2(body, docxml)
|
72
72
|
make_body3(body, docxml)
|
73
|
-
|
74
|
-
|
73
|
+
indexsect_section(docxml, body)
|
74
|
+
colophon_section(docxml, body)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
@@ -80,23 +80,31 @@ module IsoDoc
|
|
80
80
|
"mso-break-type:section-break"
|
81
81
|
end
|
82
82
|
|
83
|
-
|
83
|
+
MAIN_ELEMENTS =
|
84
|
+
"//sections/*[@displayorder] | //annex[@displayorder] | " \
|
85
|
+
"//bibliography/*[@displayorder]".freeze
|
86
|
+
|
87
|
+
def colophon_section(_isoxml, out)
|
84
88
|
stage = @meta.get[:stage_int]
|
85
89
|
return if !stage.nil? && stage < 60
|
86
90
|
|
87
|
-
br(
|
88
|
-
|
91
|
+
br(out, "left")
|
92
|
+
out.div class: "colophon" do |div|
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
92
|
-
def
|
96
|
+
def indexsect_section(isoxml, out)
|
93
97
|
isoxml.xpath(ns("//indexsect")).each do |i|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
98
|
+
indexsect(i, out)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def indexsect(elem, out)
|
103
|
+
indexsect_title(elem, out)
|
104
|
+
br(out, "auto")
|
105
|
+
out.div class: "index" do |div|
|
106
|
+
elem.children.each do |e|
|
107
|
+
parse(e, div) unless e.name == "title"
|
100
108
|
end
|
101
109
|
end
|
102
110
|
end
|
@@ -128,14 +136,14 @@ module IsoDoc
|
|
128
136
|
{ class: "BiblioTitle" }
|
129
137
|
end
|
130
138
|
|
131
|
-
def bibliography(
|
132
|
-
|
139
|
+
def bibliography(node, out)
|
140
|
+
node["hidden"] != "true" or return
|
133
141
|
page_break(out)
|
134
142
|
out.div do |div|
|
135
143
|
div.h1 **bibliography_attrs do |h1|
|
136
|
-
|
144
|
+
node&.at(ns("./title"))&.children&.each { |c2| parse(c2, h1) }
|
137
145
|
end
|
138
|
-
biblio_list(
|
146
|
+
biblio_list(node, div, true)
|
139
147
|
end
|
140
148
|
end
|
141
149
|
|
@@ -197,7 +205,6 @@ module IsoDoc
|
|
197
205
|
end
|
198
206
|
|
199
207
|
def annex_name(_annex, name, div)
|
200
|
-
preceding_floating_titles(name, div)
|
201
208
|
return if name.nil?
|
202
209
|
|
203
210
|
name&.at(ns("./strong"))&.remove # supplied by CSS list numbering
|
@@ -41,6 +41,7 @@ module IsoDoc
|
|
41
41
|
|
42
42
|
def dis_styles1(docxml)
|
43
43
|
amd_style(docxml)
|
44
|
+
middle_title_style(docxml)
|
44
45
|
code_style(docxml)
|
45
46
|
figure_style(docxml)
|
46
47
|
formula_style(docxml)
|
@@ -71,6 +72,14 @@ module IsoDoc
|
|
71
72
|
end
|
72
73
|
end
|
73
74
|
|
75
|
+
def middle_title_style(docxml)
|
76
|
+
docxml.xpath("//p[@class = 'zzSTDTitle2']").each do |p|
|
77
|
+
p1 = p.previous_element && p1.name == p &&
|
78
|
+
p1["class"] = "zzSTDTitle2" or next
|
79
|
+
p1 << " #{p.remove.children.to_xml}"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
74
83
|
def dis_style_interactions(docxml)
|
75
84
|
docxml.xpath("//p[@class = 'Code' or @class = 'Code-' or " \
|
76
85
|
"@class = 'Code--']" \
|