metanorma-iso 2.3.1 → 2.3.3

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: d83fb927cb8bc71790dd2b644f00ef5e55605fc0a4c12865b406f3107c29e365
4
- data.tar.gz: 19ee55451fd8f24e839fd23a0aea32d0927fb20ebccaa75b045f82113eac3b57
3
+ metadata.gz: d0647a3daea24684073cb1e71bfbf231e56357153263b8722aad8bae15198743
4
+ data.tar.gz: 5ba4f09cba4bfe26b99f001b001cda9884df2bea21d8f81a8807df8528dcd2b2
5
5
  SHA512:
6
- metadata.gz: 86e861221a56a29ab07d1d47516fb39d13626f2c6cb844783c2030b38a5be4f3f04a4a1ca6d55855eb9f1fc2dc4f772b10f089bd96ae91b741b85f865d4bdba9
7
- data.tar.gz: b987964c53cee70a3fa4fffa4487fa9e89e3e1bc4d3358928f661c72dd59f462d0148a1a45ef401fa4bad29b8141b55fe38c1f0589685c0699e4f1eedcec9fc9
6
+ metadata.gz: 45a6c71aafc32fdb25ea35bfa95d5381a81ae5e21d2888d9ba65fb5c2789d7e770bb20cdf35765755251d725d6d84ffa7a85563d58acf216d0530f700b19f0ba
7
+ data.tar.gz: a77b5942e043bce247b7911746f7a7dd2ffc949761c22d696686ca4a9d8872835030b1cab3c833d277814cee24cb8e0d4c019f6f99d3f1bd960ab7ad7705d43b
data/Gemfile.devel ADDED
@@ -0,0 +1,2 @@
1
+ #gem "isodoc", git: "https://github.com/metanorma/isodoc", branch: "main"
2
+
@@ -131,6 +131,35 @@ a.FootnoteRef + a.FootnoteRef:before {
131
131
  color: red;
132
132
  text-decoration: line-through; }
133
133
 
134
+ /* code highlighting with line numbers */
135
+ table.rouge-line-table td.rouge-gutter {
136
+ -moz-user-select: none;
137
+ -ms-user-select: none;
138
+ -webkit-user-select: none;
139
+ user-select: none;
140
+ padding-right: 1em; }
141
+
142
+ table.rouge-line-table td.rouge-code {
143
+ -moz-user-select: all;
144
+ -ms-user-select: all;
145
+ -webkit-user-select: all;
146
+ user-select: all; }
147
+
148
+ table.rouge-line-table,
149
+ table.rouge-line-table th,
150
+ table.rouge-line-table td {
151
+ width: auto;
152
+ border: none;
153
+ margin: 0;
154
+ padding: 0;
155
+ font-size: 100%; }
156
+
157
+ table.rouge-line-table pre {
158
+ margin: 0;
159
+ padding: 0;
160
+ overflow-x: visible;
161
+ font-size: 100%; }
162
+
134
163
  #standard-band {
135
164
  background-color: #0AC442; }
136
165
 
@@ -894,7 +923,7 @@ table {
894
923
  table th, table td {
895
924
  padding: 1em; }
896
925
  table td.header {
897
- font-weigth: 400; }
926
+ font-weight: 400; }
898
927
 
899
928
  td > p:first-child, th > p:first-child {
900
929
  margin-top: 0em; }
@@ -906,6 +935,9 @@ td,
906
935
  th {
907
936
  padding: 1em !important; }
908
937
 
938
+ table.rouge-line-table td, table.rouge-line-table th {
939
+ padding: 0em !important; }
940
+
909
941
  p.TableTitle {
910
942
  text-align: center;
911
943
  margin-top: 2.5em;
@@ -591,6 +591,10 @@ th {
591
591
  padding: 1em !important;
592
592
  }
593
593
 
594
+ table.rouge-line-table td, table.rouge-line-table th {
595
+ padding: 0em !important;
596
+ }
597
+
594
598
  p.TableTitle {
595
599
  text-align: center;
596
600
  margin-top: 2.5em;
@@ -131,6 +131,35 @@ a.FootnoteRef + a.FootnoteRef:before {
131
131
  color: red;
132
132
  text-decoration: line-through; }
133
133
 
134
+ /* code highlighting with line numbers */
135
+ table.rouge-line-table td.rouge-gutter {
136
+ -moz-user-select: none;
137
+ -ms-user-select: none;
138
+ -webkit-user-select: none;
139
+ user-select: none;
140
+ padding-right: 1em; }
141
+
142
+ table.rouge-line-table td.rouge-code {
143
+ -moz-user-select: all;
144
+ -ms-user-select: all;
145
+ -webkit-user-select: all;
146
+ user-select: all; }
147
+
148
+ table.rouge-line-table,
149
+ table.rouge-line-table th,
150
+ table.rouge-line-table td {
151
+ width: auto;
152
+ border: none;
153
+ margin: 0;
154
+ padding: 0;
155
+ font-size: 100%; }
156
+
157
+ table.rouge-line-table pre {
158
+ margin: 0;
159
+ padding: 0;
160
+ overflow-x: visible;
161
+ font-size: 100%; }
162
+
134
163
  #standard-band {
135
164
  background-color: #0AC442; }
136
165
 
@@ -936,12 +965,15 @@ table {
936
965
  table th, table td {
937
966
  padding: 1em; }
938
967
  table td.header {
939
- font-weigth: 400; }
968
+ font-weight: 400; }
940
969
 
941
970
  td,
942
971
  th {
943
972
  padding: 1em !important; }
944
973
 
974
+ table.rouge-line-table td, table.rouge-line-table th {
975
+ padding: 0em !important; }
976
+
945
977
  td > p:first-child, th > p:first-child {
946
978
  margin-top: 0em; }
947
979
 
@@ -617,6 +617,10 @@ th {
617
617
  padding: 1em !important;
618
618
  }
619
619
 
620
+ table.rouge-line-table td, table.rouge-line-table th {
621
+ padding: 0em !important;
622
+ }
623
+
620
624
  td > p:first-child, th > p:first-child {
621
625
  margin-top: 0em;
622
626
  }
@@ -1910,10 +1910,10 @@ p.TOCTitle, li.TOCTitle, div.TOCTitle {
1910
1910
  margin: 39.7pt 53.85pt 1.0cm 53.85pt;
1911
1911
  mso-header-margin: 35.45pt;
1912
1912
  mso-footer-margin: 14.2pt;
1913
- mso-even-header: url("file:///C:/Doc/FILENAME_files/header.html") eh1;
1914
- mso-header: url("file:///C:/Doc/FILENAME_files/header.html") h1;
1915
- mso-even-footer: url("file:///C:/Doc/FILENAME_files/header.html") ef1;
1916
- mso-footer: url("file:///C:/Doc/FILENAME_files/header.html") f1;
1913
+ mso-even-header: url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1914
+ mso-header: url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1915
+ mso-even-footer: url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1916
+ mso-footer: url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1917
1917
  mso-first-header: url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1918
1918
  mso-first-footer: url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1919
1919
  mso-paper-source: 0; }
@@ -1809,10 +1809,10 @@ p.TOCTitle, li.TOCTitle, div.TOCTitle
1809
1809
  margin:39.7pt 53.85pt 1.0cm 53.85pt;
1810
1810
  mso-header-margin:35.45pt;
1811
1811
  mso-footer-margin:14.2pt;
1812
- mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html") eh1;
1813
- mso-header:url("file:///C:/Doc/FILENAME_files/header.html") h1;
1814
- mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html") ef1;
1815
- mso-footer:url("file:///C:/Doc/FILENAME_files/header.html") f1;
1812
+ mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1813
+ mso-header:url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1814
+ mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1815
+ mso-footer:url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1816
1816
  mso-first-header:url("file:///C:/Doc/FILENAME_files/header.html") fh1;
1817
1817
  mso-first-footer:url("file:///C:/Doc/FILENAME_files/header.html") ff1;
1818
1818
  mso-paper-source:0;}
@@ -2,7 +2,7 @@
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
5
+ <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure' or local-name() = 'localized-strings')] and not(ancestor::*[local-name() = 'name']))]" use="@reference"/>
6
6
 
7
7
  <xsl:key name="attachments" match="iso:eref[java:endsWith(java:java.lang.String.new(@bibitemid),'.exp')]" use="@bibitemid"/>
8
8
  <xsl:key name="attachments2" match="iso:eref[contains(@bibitemid,'.exp_')]" use="@bibitemid"/>
@@ -1974,12 +1974,16 @@
1974
1974
  <xsl:attribute name="text-align">
1975
1975
  <xsl:choose>
1976
1976
  <!-- <xsl:when test="ancestor::iso:preface">justify</xsl:when> -->
1977
- <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
1977
+ <xsl:when test="@align = 'justified'">justify</xsl:when>
1978
+ <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
1978
1979
  <xsl:when test="ancestor::iso:td/@align"><xsl:value-of select="ancestor::iso:td/@align"/></xsl:when>
1979
1980
  <xsl:when test="ancestor::iso:th/@align"><xsl:value-of select="ancestor::iso:th/@align"/></xsl:when>
1980
1981
  <xsl:otherwise>justify</xsl:otherwise><!-- left -->
1981
1982
  </xsl:choose>
1982
1983
  </xsl:attribute>
1984
+ <xsl:if test="@align = 'indent'">
1985
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1986
+ </xsl:if>
1983
1987
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1984
1988
  <xsl:if test="count(ancestor::iso:li) = 1 and not(ancestor::iso:li[1]/following-sibling::iso:li) and not(following-sibling::iso:p)">
1985
1989
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
@@ -2326,14 +2330,14 @@
2326
2330
  BUT DON'T put any another conditions together with $namespace = '...' (such conditions will be ignored). For another conditions, please use nested xsl:if or xsl:choose -->
2327
2331
 
2328
2332
  <!--
2329
- <misc-container>
2333
+ <metanorma-extension>
2330
2334
  <presentation-metadata>
2331
2335
  <papersize>letter</papersize>
2332
2336
  </presentation-metadata>
2333
- </misc-container>
2337
+ </metanorma-extension>
2334
2338
  -->
2335
2339
 
2336
- <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
2340
+ <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
2337
2341
  <xsl:variable name="papersize_width_">
2338
2342
  <xsl:choose>
2339
2343
  <xsl:when test="$papersize = 'letter'">215.9</xsl:when>
@@ -2454,7 +2458,7 @@
2454
2458
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
2455
2459
 
2456
2460
  <xsl:variable name="title-list-tables">
2457
- <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
2461
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
2458
2462
  <xsl:value-of select="$toc_table_title"/>
2459
2463
  <xsl:if test="normalize-space($toc_table_title) = ''">
2460
2464
  <xsl:call-template name="getTitle">
@@ -2464,7 +2468,7 @@
2464
2468
  </xsl:variable>
2465
2469
 
2466
2470
  <xsl:variable name="title-list-figures">
2467
- <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
2471
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
2468
2472
  <xsl:value-of select="$toc_figure_title"/>
2469
2473
  <xsl:if test="normalize-space($toc_figure_title) = ''">
2470
2474
  <xsl:call-template name="getTitle">
@@ -2474,7 +2478,7 @@
2474
2478
  </xsl:variable>
2475
2479
 
2476
2480
  <xsl:variable name="title-list-recommendations">
2477
- <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
2481
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
2478
2482
  <xsl:value-of select="$toc_requirement_title"/>
2479
2483
  <xsl:if test="normalize-space($toc_requirement_title) = ''">
2480
2484
  <xsl:call-template name="getTitle">
@@ -2546,7 +2550,7 @@
2546
2550
  <xsl:variable name="root-style_" select="xalan:nodeset($root-style)"/>
2547
2551
 
2548
2552
  <xsl:variable name="additional_fonts_">
2549
- <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
2553
+ <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
2550
2554
  <xsl:value-of select="."/><xsl:if test="position() != last()">, </xsl:if>
2551
2555
  </xsl:for-each>
2552
2556
  </xsl:variable>
@@ -3655,10 +3659,10 @@
3655
3659
 
3656
3660
  <xsl:template name="processTablesFigures_Contents">
3657
3661
  <xsl:param name="always"/>
3658
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3662
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3659
3663
  <xsl:call-template name="processTables_Contents"/>
3660
3664
  </xsl:if>
3661
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3665
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3662
3666
  <xsl:call-template name="processFigures_Contents"/>
3663
3667
  </xsl:if>
3664
3668
  </xsl:template>
@@ -3966,6 +3970,9 @@
3966
3970
  <xsl:if test="not(*[local-name() = 'name'])">
3967
3971
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
3968
3972
  </xsl:if>
3973
+ <xsl:if test="starts-with(@id, 'array_')">
3974
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
3975
+ </xsl:if>
3969
3976
 
3970
3977
  <!-- end table block-container attributes -->
3971
3978
 
@@ -3996,6 +4003,8 @@
3996
4003
  <xsl:attribute name="border"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
3997
4004
  </xsl:if>
3998
4005
 
4006
+ <xsl:call-template name="setBordersTableArray"/>
4007
+
3999
4008
  </xsl:element>
4000
4009
  </xsl:variable>
4001
4010
 
@@ -4140,6 +4149,15 @@
4140
4149
 
4141
4150
  </xsl:template>
4142
4151
 
4152
+ <xsl:template name="setBordersTableArray">
4153
+
4154
+ <xsl:if test="starts-with(@id, 'array_') or starts-with(ancestor::*[local-name() = 'table'][1]/@id, 'array_')">
4155
+ <!-- array - table without borders -->
4156
+ <xsl:attribute name="border">none</xsl:attribute>
4157
+ </xsl:if>
4158
+
4159
+ </xsl:template>
4160
+
4143
4161
  <xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
4144
4162
  <xsl:param name="continued"/>
4145
4163
  <xsl:if test="normalize-space() != ''">
@@ -4642,6 +4660,8 @@
4642
4660
  <fo:table-row>
4643
4661
  <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
4644
4662
 
4663
+ <xsl:call-template name="setBordersTableArray"/>
4664
+
4645
4665
  <!-- fn will be processed inside 'note' processing -->
4646
4666
 
4647
4667
  <!-- for BSI (not PAS) display Notes before footnotes -->
@@ -4818,6 +4838,8 @@
4818
4838
  </xsl:when>
4819
4839
  </xsl:choose>
4820
4840
 
4841
+ <xsl:call-template name="setBordersTableArray"/>
4842
+
4821
4843
  <xsl:call-template name="setTableRowAttributes"/>
4822
4844
 
4823
4845
  <xsl:apply-templates/>
@@ -4845,6 +4867,8 @@
4845
4867
  <xsl:attribute name="border-top"><xsl:value-of select="$table-border"/></xsl:attribute>
4846
4868
  </xsl:if>
4847
4869
 
4870
+ <xsl:call-template name="setBordersTableArray"/>
4871
+
4848
4872
  <xsl:call-template name="setTableRowAttributes"/>
4849
4873
  <xsl:apply-templates/>
4850
4874
  </fo:table-row>
@@ -4869,6 +4893,8 @@
4869
4893
  <xsl:attribute name="border-bottom"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
4870
4894
  </xsl:if>
4871
4895
 
4896
+ <xsl:call-template name="setBordersTableArray"/>
4897
+
4872
4898
  <xsl:if test="$lang = 'ar'">
4873
4899
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4874
4900
  </xsl:if>
@@ -4932,6 +4958,8 @@
4932
4958
  </xsl:if>
4933
4959
  <!-- <xsl:attribute name="page-break-inside">avoid</xsl:attribute> -->
4934
4960
 
4961
+ <xsl:call-template name="setBordersTableArray"/>
4962
+
4935
4963
  <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
4936
4964
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4937
4965
  </xsl:if>
@@ -4986,7 +5014,7 @@
4986
5014
  </fn>
4987
5015
  -->
4988
5016
  <!-- footnotes in text (title, bibliography, main body, table's, figure's names), not for tables, figures -->
4989
- <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
5017
+ <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" priority="2" name="fn">
4990
5018
 
4991
5019
  <!-- list of footnotes to calculate actual footnotes number -->
4992
5020
  <xsl:variable name="p_fn_">
@@ -5045,8 +5073,7 @@
5045
5073
  </fo:basic-link>
5046
5074
  </fo:inline>
5047
5075
  </xsl:variable>
5048
- <!-- DEBUG: p_fn=<xsl:copy-of select="$p_fn"/>
5049
- gen_id=<xsl:value-of select="$gen_id"/> -->
5076
+
5050
5077
  <xsl:choose>
5051
5078
  <xsl:when test="normalize-space(@skip_footnote_body) = 'true'">
5052
5079
  <xsl:copy-of select="$footnote_inline"/>
@@ -5101,7 +5128,7 @@
5101
5128
  <!-- commented:
5102
5129
  .//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] |
5103
5130
  because 'fn' there is in biblio-tag -->
5104
- <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
5131
+ <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
5105
5132
  <!-- copy unique fn -->
5106
5133
  <fn gen_id="{generate-id(.)}">
5107
5134
  <xsl:copy-of select="@*"/>
@@ -7748,7 +7775,9 @@
7748
7775
 
7749
7776
  <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
7750
7777
  <xsl:if test="number($scale) &lt; 100">
7751
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7778
+
7779
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7780
+
7752
7781
  </xsl:if>
7753
7782
 
7754
7783
  </xsl:if>
@@ -8674,7 +8703,7 @@
8674
8703
  <!-- sourcecode -->
8675
8704
  <!-- =============== -->
8676
8705
 
8677
- <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'source-highlighter-css']"/>
8706
+ <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'source-highlighter-css']"/>
8678
8707
  <xsl:variable name="sourcecode_css_" select="java:org.metanorma.fop.Util.parseCSS($source-highlighter-css_)"/>
8679
8708
  <xsl:variable name="sourcecode_css" select="xalan:nodeset($sourcecode_css_)"/>
8680
8709
 
@@ -8761,6 +8790,12 @@
8761
8790
  </xsl:attribute>
8762
8791
  </xsl:for-each>
8763
8792
 
8793
+ <!-- remove margin between rows in the table with sourcecode line numbers -->
8794
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']">
8795
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
8796
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
8797
+ </xsl:if>
8798
+
8764
8799
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
8765
8800
  </fo:block>
8766
8801
 
@@ -8809,7 +8844,7 @@
8809
8844
  </xsl:template>
8810
8845
 
8811
8846
  <!-- outer table with line numbers for sourcecode -->
8812
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']" priority="2">
8847
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] | -->
8813
8848
  <fo:block>
8814
8849
  <fo:table width="100%" table-layout="fixed">
8815
8850
  <xsl:copy-of select="@id"/>
@@ -8821,16 +8856,16 @@
8821
8856
  </fo:table>
8822
8857
  </fo:block>
8823
8858
  </xsl:template>
8824
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody']" priority="2">
8859
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']/*[local-name() = 'tbody']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody'] | -->
8825
8860
  <xsl:apply-templates/>
8826
8861
  </xsl:template>
8827
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']" priority="2">
8862
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr'] | -->
8828
8863
  <fo:table-row>
8829
8864
  <xsl:apply-templates/>
8830
8865
  </fo:table-row>
8831
8866
  </xsl:template>
8832
8867
  <!-- first td with line numbers -->
8833
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2">
8868
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
8834
8869
  <fo:table-cell>
8835
8870
  <fo:block>
8836
8871
 
@@ -8850,8 +8885,9 @@
8850
8885
  </fo:block>
8851
8886
  </fo:table-cell>
8852
8887
  </xsl:template>
8888
+
8853
8889
  <!-- second td with sourcecode -->
8854
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2">
8890
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
8855
8891
  <fo:table-cell>
8856
8892
  <fo:block>
8857
8893
  <xsl:apply-templates/>
@@ -9089,7 +9125,25 @@
9089
9125
  <xsl:template match="*[local-name()='pre']" name="pre">
9090
9126
  <fo:block xsl:use-attribute-sets="pre-style">
9091
9127
  <xsl:copy-of select="@id"/>
9092
- <xsl:apply-templates/>
9128
+ <xsl:choose>
9129
+
9130
+ <xsl:when test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name()='td'][1][not(preceding-sibling::*)]"> <!-- pre in the first td in the table with @linenums = 'true' -->
9131
+ <xsl:if test="ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']"> <!-- is current tr isn't last -->
9132
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
9133
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
9134
+ </xsl:if>
9135
+ <fo:instream-foreign-object fox:alt-text="{.}" content-width="95%">
9136
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
9137
+ <mtext><xsl:value-of select="."/></mtext>
9138
+ </math>
9139
+ </fo:instream-foreign-object>
9140
+ </xsl:when>
9141
+
9142
+ <xsl:otherwise>
9143
+ <xsl:apply-templates/>
9144
+ </xsl:otherwise>
9145
+
9146
+ </xsl:choose>
9093
9147
  </fo:block>
9094
9148
  </xsl:template>
9095
9149
  <!-- =============== -->
@@ -10715,8 +10769,8 @@
10715
10769
 
10716
10770
  <xsl:variable name="toc_level">
10717
10771
  <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
10718
- <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
10719
- <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
10772
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
10773
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
10720
10774
  <xsl:choose>
10721
10775
  <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
10722
10776
  <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
@@ -11820,6 +11874,7 @@
11820
11874
  <xsl:choose>
11821
11875
  <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
11822
11876
  <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
11877
+ <xsl:when test="$align = 'justified'">justify</xsl:when>
11823
11878
  <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
11824
11879
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
11825
11880
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
5
+ <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure' or local-name() = 'localized-strings')] and not(ancestor::*[local-name() = 'name']))]" use="@reference"/>
6
6
 
7
7
  <xsl:key name="attachments" match="iso:eref[java:endsWith(java:java.lang.String.new(@bibitemid),'.exp')]" use="@bibitemid"/>
8
8
  <xsl:key name="attachments2" match="iso:eref[contains(@bibitemid,'.exp_')]" use="@bibitemid"/>
@@ -1974,12 +1974,16 @@
1974
1974
  <xsl:attribute name="text-align">
1975
1975
  <xsl:choose>
1976
1976
  <!-- <xsl:when test="ancestor::iso:preface">justify</xsl:when> -->
1977
- <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
1977
+ <xsl:when test="@align = 'justified'">justify</xsl:when>
1978
+ <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
1978
1979
  <xsl:when test="ancestor::iso:td/@align"><xsl:value-of select="ancestor::iso:td/@align"/></xsl:when>
1979
1980
  <xsl:when test="ancestor::iso:th/@align"><xsl:value-of select="ancestor::iso:th/@align"/></xsl:when>
1980
1981
  <xsl:otherwise>justify</xsl:otherwise><!-- left -->
1981
1982
  </xsl:choose>
1982
1983
  </xsl:attribute>
1984
+ <xsl:if test="@align = 'indent'">
1985
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1986
+ </xsl:if>
1983
1987
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1984
1988
  <xsl:if test="count(ancestor::iso:li) = 1 and not(ancestor::iso:li[1]/following-sibling::iso:li) and not(following-sibling::iso:p)">
1985
1989
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
@@ -2326,14 +2330,14 @@
2326
2330
  BUT DON'T put any another conditions together with $namespace = '...' (such conditions will be ignored). For another conditions, please use nested xsl:if or xsl:choose -->
2327
2331
 
2328
2332
  <!--
2329
- <misc-container>
2333
+ <metanorma-extension>
2330
2334
  <presentation-metadata>
2331
2335
  <papersize>letter</papersize>
2332
2336
  </presentation-metadata>
2333
- </misc-container>
2337
+ </metanorma-extension>
2334
2338
  -->
2335
2339
 
2336
- <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
2340
+ <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
2337
2341
  <xsl:variable name="papersize_width_">
2338
2342
  <xsl:choose>
2339
2343
  <xsl:when test="$papersize = 'letter'">215.9</xsl:when>
@@ -2454,7 +2458,7 @@
2454
2458
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
2455
2459
 
2456
2460
  <xsl:variable name="title-list-tables">
2457
- <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
2461
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
2458
2462
  <xsl:value-of select="$toc_table_title"/>
2459
2463
  <xsl:if test="normalize-space($toc_table_title) = ''">
2460
2464
  <xsl:call-template name="getTitle">
@@ -2464,7 +2468,7 @@
2464
2468
  </xsl:variable>
2465
2469
 
2466
2470
  <xsl:variable name="title-list-figures">
2467
- <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
2471
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
2468
2472
  <xsl:value-of select="$toc_figure_title"/>
2469
2473
  <xsl:if test="normalize-space($toc_figure_title) = ''">
2470
2474
  <xsl:call-template name="getTitle">
@@ -2474,7 +2478,7 @@
2474
2478
  </xsl:variable>
2475
2479
 
2476
2480
  <xsl:variable name="title-list-recommendations">
2477
- <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
2481
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
2478
2482
  <xsl:value-of select="$toc_requirement_title"/>
2479
2483
  <xsl:if test="normalize-space($toc_requirement_title) = ''">
2480
2484
  <xsl:call-template name="getTitle">
@@ -2546,7 +2550,7 @@
2546
2550
  <xsl:variable name="root-style_" select="xalan:nodeset($root-style)"/>
2547
2551
 
2548
2552
  <xsl:variable name="additional_fonts_">
2549
- <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
2553
+ <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
2550
2554
  <xsl:value-of select="."/><xsl:if test="position() != last()">, </xsl:if>
2551
2555
  </xsl:for-each>
2552
2556
  </xsl:variable>
@@ -3655,10 +3659,10 @@
3655
3659
 
3656
3660
  <xsl:template name="processTablesFigures_Contents">
3657
3661
  <xsl:param name="always"/>
3658
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3662
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3659
3663
  <xsl:call-template name="processTables_Contents"/>
3660
3664
  </xsl:if>
3661
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3665
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3662
3666
  <xsl:call-template name="processFigures_Contents"/>
3663
3667
  </xsl:if>
3664
3668
  </xsl:template>
@@ -3966,6 +3970,9 @@
3966
3970
  <xsl:if test="not(*[local-name() = 'name'])">
3967
3971
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
3968
3972
  </xsl:if>
3973
+ <xsl:if test="starts-with(@id, 'array_')">
3974
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
3975
+ </xsl:if>
3969
3976
 
3970
3977
  <!-- end table block-container attributes -->
3971
3978
 
@@ -3996,6 +4003,8 @@
3996
4003
  <xsl:attribute name="border"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
3997
4004
  </xsl:if>
3998
4005
 
4006
+ <xsl:call-template name="setBordersTableArray"/>
4007
+
3999
4008
  </xsl:element>
4000
4009
  </xsl:variable>
4001
4010
 
@@ -4140,6 +4149,15 @@
4140
4149
 
4141
4150
  </xsl:template>
4142
4151
 
4152
+ <xsl:template name="setBordersTableArray">
4153
+
4154
+ <xsl:if test="starts-with(@id, 'array_') or starts-with(ancestor::*[local-name() = 'table'][1]/@id, 'array_')">
4155
+ <!-- array - table without borders -->
4156
+ <xsl:attribute name="border">none</xsl:attribute>
4157
+ </xsl:if>
4158
+
4159
+ </xsl:template>
4160
+
4143
4161
  <xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
4144
4162
  <xsl:param name="continued"/>
4145
4163
  <xsl:if test="normalize-space() != ''">
@@ -4642,6 +4660,8 @@
4642
4660
  <fo:table-row>
4643
4661
  <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
4644
4662
 
4663
+ <xsl:call-template name="setBordersTableArray"/>
4664
+
4645
4665
  <!-- fn will be processed inside 'note' processing -->
4646
4666
 
4647
4667
  <!-- for BSI (not PAS) display Notes before footnotes -->
@@ -4818,6 +4838,8 @@
4818
4838
  </xsl:when>
4819
4839
  </xsl:choose>
4820
4840
 
4841
+ <xsl:call-template name="setBordersTableArray"/>
4842
+
4821
4843
  <xsl:call-template name="setTableRowAttributes"/>
4822
4844
 
4823
4845
  <xsl:apply-templates/>
@@ -4845,6 +4867,8 @@
4845
4867
  <xsl:attribute name="border-top"><xsl:value-of select="$table-border"/></xsl:attribute>
4846
4868
  </xsl:if>
4847
4869
 
4870
+ <xsl:call-template name="setBordersTableArray"/>
4871
+
4848
4872
  <xsl:call-template name="setTableRowAttributes"/>
4849
4873
  <xsl:apply-templates/>
4850
4874
  </fo:table-row>
@@ -4869,6 +4893,8 @@
4869
4893
  <xsl:attribute name="border-bottom"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
4870
4894
  </xsl:if>
4871
4895
 
4896
+ <xsl:call-template name="setBordersTableArray"/>
4897
+
4872
4898
  <xsl:if test="$lang = 'ar'">
4873
4899
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4874
4900
  </xsl:if>
@@ -4932,6 +4958,8 @@
4932
4958
  </xsl:if>
4933
4959
  <!-- <xsl:attribute name="page-break-inside">avoid</xsl:attribute> -->
4934
4960
 
4961
+ <xsl:call-template name="setBordersTableArray"/>
4962
+
4935
4963
  <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
4936
4964
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4937
4965
  </xsl:if>
@@ -4986,7 +5014,7 @@
4986
5014
  </fn>
4987
5015
  -->
4988
5016
  <!-- footnotes in text (title, bibliography, main body, table's, figure's names), not for tables, figures -->
4989
- <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
5017
+ <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" priority="2" name="fn">
4990
5018
 
4991
5019
  <!-- list of footnotes to calculate actual footnotes number -->
4992
5020
  <xsl:variable name="p_fn_">
@@ -5045,8 +5073,7 @@
5045
5073
  </fo:basic-link>
5046
5074
  </fo:inline>
5047
5075
  </xsl:variable>
5048
- <!-- DEBUG: p_fn=<xsl:copy-of select="$p_fn"/>
5049
- gen_id=<xsl:value-of select="$gen_id"/> -->
5076
+
5050
5077
  <xsl:choose>
5051
5078
  <xsl:when test="normalize-space(@skip_footnote_body) = 'true'">
5052
5079
  <xsl:copy-of select="$footnote_inline"/>
@@ -5101,7 +5128,7 @@
5101
5128
  <!-- commented:
5102
5129
  .//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] |
5103
5130
  because 'fn' there is in biblio-tag -->
5104
- <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
5131
+ <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
5105
5132
  <!-- copy unique fn -->
5106
5133
  <fn gen_id="{generate-id(.)}">
5107
5134
  <xsl:copy-of select="@*"/>
@@ -7748,7 +7775,9 @@
7748
7775
 
7749
7776
  <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
7750
7777
  <xsl:if test="number($scale) &lt; 100">
7751
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7778
+
7779
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7780
+
7752
7781
  </xsl:if>
7753
7782
 
7754
7783
  </xsl:if>
@@ -8674,7 +8703,7 @@
8674
8703
  <!-- sourcecode -->
8675
8704
  <!-- =============== -->
8676
8705
 
8677
- <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'source-highlighter-css']"/>
8706
+ <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'source-highlighter-css']"/>
8678
8707
  <xsl:variable name="sourcecode_css_" select="java:org.metanorma.fop.Util.parseCSS($source-highlighter-css_)"/>
8679
8708
  <xsl:variable name="sourcecode_css" select="xalan:nodeset($sourcecode_css_)"/>
8680
8709
 
@@ -8761,6 +8790,12 @@
8761
8790
  </xsl:attribute>
8762
8791
  </xsl:for-each>
8763
8792
 
8793
+ <!-- remove margin between rows in the table with sourcecode line numbers -->
8794
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']">
8795
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
8796
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
8797
+ </xsl:if>
8798
+
8764
8799
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
8765
8800
  </fo:block>
8766
8801
 
@@ -8809,7 +8844,7 @@
8809
8844
  </xsl:template>
8810
8845
 
8811
8846
  <!-- outer table with line numbers for sourcecode -->
8812
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']" priority="2">
8847
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] | -->
8813
8848
  <fo:block>
8814
8849
  <fo:table width="100%" table-layout="fixed">
8815
8850
  <xsl:copy-of select="@id"/>
@@ -8821,16 +8856,16 @@
8821
8856
  </fo:table>
8822
8857
  </fo:block>
8823
8858
  </xsl:template>
8824
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody']" priority="2">
8859
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']/*[local-name() = 'tbody']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody'] | -->
8825
8860
  <xsl:apply-templates/>
8826
8861
  </xsl:template>
8827
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']" priority="2">
8862
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr'] | -->
8828
8863
  <fo:table-row>
8829
8864
  <xsl:apply-templates/>
8830
8865
  </fo:table-row>
8831
8866
  </xsl:template>
8832
8867
  <!-- first td with line numbers -->
8833
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2">
8868
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
8834
8869
  <fo:table-cell>
8835
8870
  <fo:block>
8836
8871
 
@@ -8850,8 +8885,9 @@
8850
8885
  </fo:block>
8851
8886
  </fo:table-cell>
8852
8887
  </xsl:template>
8888
+
8853
8889
  <!-- second td with sourcecode -->
8854
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2">
8890
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
8855
8891
  <fo:table-cell>
8856
8892
  <fo:block>
8857
8893
  <xsl:apply-templates/>
@@ -9089,7 +9125,25 @@
9089
9125
  <xsl:template match="*[local-name()='pre']" name="pre">
9090
9126
  <fo:block xsl:use-attribute-sets="pre-style">
9091
9127
  <xsl:copy-of select="@id"/>
9092
- <xsl:apply-templates/>
9128
+ <xsl:choose>
9129
+
9130
+ <xsl:when test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name()='td'][1][not(preceding-sibling::*)]"> <!-- pre in the first td in the table with @linenums = 'true' -->
9131
+ <xsl:if test="ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']"> <!-- is current tr isn't last -->
9132
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
9133
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
9134
+ </xsl:if>
9135
+ <fo:instream-foreign-object fox:alt-text="{.}" content-width="95%">
9136
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
9137
+ <mtext><xsl:value-of select="."/></mtext>
9138
+ </math>
9139
+ </fo:instream-foreign-object>
9140
+ </xsl:when>
9141
+
9142
+ <xsl:otherwise>
9143
+ <xsl:apply-templates/>
9144
+ </xsl:otherwise>
9145
+
9146
+ </xsl:choose>
9093
9147
  </fo:block>
9094
9148
  </xsl:template>
9095
9149
  <!-- =============== -->
@@ -10715,8 +10769,8 @@
10715
10769
 
10716
10770
  <xsl:variable name="toc_level">
10717
10771
  <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
10718
- <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
10719
- <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
10772
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
10773
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
10720
10774
  <xsl:choose>
10721
10775
  <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
10722
10776
  <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
@@ -11820,6 +11874,7 @@
11820
11874
  <xsl:choose>
11821
11875
  <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
11822
11876
  <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
11877
+ <xsl:when test="$align = 'justified'">justify</xsl:when>
11823
11878
  <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
11824
11879
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
11825
11880
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
@@ -62,7 +62,7 @@ module IsoDoc
62
62
  def example_span_label(_node, div, name)
63
63
  return if name.nil?
64
64
 
65
- div.span **{ class: "example_label" } do |_p|
65
+ div.span class: "example_label" do |_p|
66
66
  name.children.each { |n| parse(n, div) }
67
67
  end
68
68
  end
@@ -113,11 +113,11 @@ module IsoDoc
113
113
  delim = " "
114
114
  @xrefs.anchor(container, :label)
115
115
  # 7 a) : Clause 7 a), but Clause 7 List 1 a)
116
- else
117
- anchor_xref(node, container)
116
+ else anchor_xref(node, container)
118
117
  end
119
118
 
120
- l10n(ref + delim + linkend)
119
+ ref and linkend = ref + delim + linkend
120
+ l10n(linkend)
121
121
  end
122
122
 
123
123
  def expand_citeas(text)
@@ -43,6 +43,7 @@ module IsoDoc
43
43
  amd_style(docxml)
44
44
  code_style(docxml)
45
45
  figure_style(docxml)
46
+ formula_style(docxml)
46
47
  note_style(docxml)
47
48
  example_style(docxml)
48
49
  dis_style_interactions(docxml)
@@ -162,6 +163,14 @@ module IsoDoc
162
163
  end
163
164
  end
164
165
 
166
+ def formula_style(docxml)
167
+ docxml.xpath("//div[@class = 'Formula']").each do |f|
168
+ f.xpath(".//p[not(@class)]").each do |p|
169
+ p["class"] = "Formula"
170
+ end
171
+ end
172
+ end
173
+
165
174
  def code_style(doc)
166
175
  span_style((doc.xpath("//tt//b") - doc.xpath("//tt//i//b")),
167
176
  "ISOCodebold")
@@ -195,46 +204,13 @@ module IsoDoc
195
204
  docxml
196
205
  end
197
206
 
198
- def authority_cleanup(docxml)
199
- super
200
- if @meta.get[:stage_int].to_s[0] == "9" ||
201
- @meta.get[:stage_int].to_s[0] == "6"
202
- copyright_prf(docxml)
203
- else
204
- copyright_dis(docxml)
205
- end
206
- end
207
-
208
- def copyright_prf(docxml)
209
- docxml.xpath("//p[@id = 'boilerplate-address']")&.each do |p|
210
- p["class"] = "zzCopyright"
211
- p["style"] = "text-indent:20.15pt;"
212
- p.replace(to_xml(p).gsub(%r{<br/>}, "</p>\n<p class='zzCopyright' " \
213
- "style='text-indent:20.15pt;'>"))
214
- end
215
- docxml.xpath("//p[@class = 'zzCopyrightHdr']")&.each do |p|
216
- # p["class"] = "zzCopyright"
217
- p.remove
218
- end
219
- end
220
-
221
- def copyright_dis(docxml)
222
- docxml.xpath("//p[@id = 'boilerplate-address']")&.each do |p|
223
- p["class"] = "zzCopyright"
224
- p.replace(to_xml(p).gsub(%r{<br/>}, "</p>\n<p class='zzCopyright'>"))
225
- end
226
- docxml.xpath("//p[@class = 'zzCopyrightHdr']")&.each do |p|
227
- p.remove
228
- end
229
- end
230
-
231
207
  def word_section_end_empty_para(docxml)
232
208
  docxml.at("//div[@class='WordSection1']/p[last()]").remove
233
209
  end
234
210
 
235
211
  def word_table_cell_para(docxml)
236
212
  docxml.xpath("//td | //th").each do |t|
237
- s = t["header"] == "true" ? "Tableheader" : "Tablebody"
213
+ s = word_table_cell_para_style(t)
238
214
  t.delete("header")
239
215
  if t.at("./p |./div")
240
216
  t.xpath("./p | ./div").each { |p| p["class"] = s }
@@ -244,6 +220,12 @@ module IsoDoc
244
220
  end
245
221
  end
246
222
 
223
+ def word_table_cell_para_style(cell)
224
+ ret = cell["header"] == "true" ? "Tableheader" : "Tablebody"
225
+ cell["class"] == "rouge-code" and ret = "Code"
226
+ ret
227
+ end
228
+
247
229
  def table_toc_class
248
230
  ["Table title", "Tabletitle", "Annex Table Title", "AnnexTableTitle"] +
249
231
  super
@@ -3,7 +3,7 @@ require_relative "word_dis_cleanup"
3
3
  module IsoDoc
4
4
  module Iso
5
5
  class WordDISConvert < WordConvert
6
- attr_accessor :bgstripcolor
6
+ attr_accessor :bgstripcolor
7
7
 
8
8
  def default_file_locations(_options)
9
9
  { wordstylesheet: html_doc_path("wordstyle-dis.scss"),
@@ -21,8 +21,7 @@ module IsoDoc
21
21
  super
22
22
  end
23
23
 
24
- def init_dis(opt)
25
- end
24
+ def init_dis(opt); end
26
25
 
27
26
  def convert1(docxml, filename, dir)
28
27
  update_coverpage(docxml)
@@ -48,7 +47,7 @@ module IsoDoc
48
47
  end
49
48
 
50
49
  def span_parse(node, out)
51
- out.span **{ class: node["class"] } do |x|
50
+ out.span class: node["class"] do |x|
52
51
  node.children.each { |n| parse(n, x) }
53
52
  end
54
53
  end
@@ -88,7 +87,7 @@ module IsoDoc
88
87
  end
89
88
 
90
89
  def middle_title_dis(out)
91
- out.p(**{ class: "zzSTDTitle" }) do |p|
90
+ out.p(class: "zzSTDTitle") do |p|
92
91
  p << @meta.get[:doctitleintro]
93
92
  @meta.get[:doctitleintro] && @meta.get[:doctitlemain] and p << " &#x2014; "
94
93
  p << @meta.get[:doctitlemain]
@@ -104,7 +103,7 @@ module IsoDoc
104
103
  end
105
104
 
106
105
  def middle_title_dis_amd(para)
107
- para.span(**{ style: "font-weight:normal" }) do |p|
106
+ para.span(style: "font-weight:normal") do |p|
108
107
  if a = @meta.get[:doctitleamdlabel]
109
108
  p << " #{a}"
110
109
  a = @meta.get[:doctitleamd] and p << ": #{a}"
@@ -114,6 +113,34 @@ module IsoDoc
114
113
  end
115
114
  end
116
115
  end
116
+
117
+ def authority_cleanup(docxml)
118
+ super
119
+ if @meta.get[:stage_int].to_s[0] == "9" ||
120
+ @meta.get[:stage_int].to_s[0] == "6"
121
+ copyright_prf(docxml)
122
+ else
123
+ copyright_dis(docxml)
124
+ end
125
+ end
126
+
127
+ def copyright_prf(docxml)
128
+ docxml.xpath("//p[@id = 'boilerplate-address']")&.each do |p|
129
+ p["class"] = "zzCopyright"
130
+ p["style"] = "text-indent:20.15pt;"
131
+ p.replace(to_xml(p).gsub(%r{<br/>}, "</p>\n<p class='zzCopyright' " \
132
+ "style='text-indent:20.15pt;'>"))
133
+ end
134
+ docxml.xpath("//p[@class = 'zzCopyrightHdr']")&.each(&:remove)
135
+ end
136
+
137
+ def copyright_dis(docxml)
138
+ docxml.xpath("//p[@id = 'boilerplate-address']")&.each do |p|
139
+ p["class"] = "zzCopyright"
140
+ p.replace(to_xml(p).gsub(%r{<br/>}, "</p>\n<p class='zzCopyright'>"))
141
+ end
142
+ docxml.xpath("//p[@class = 'zzCopyrightHdr']")&.each(&:remove)
143
+ end
117
144
  end
118
145
  end
119
146
  end
@@ -1316,7 +1316,7 @@
1316
1316
  <value>commentaryOf</value>
1317
1317
  <value>hasCommentary</value>
1318
1318
  <value>related</value>
1319
- <value>complements</value>
1319
+ <value>hasComplement</value>
1320
1320
  <value>complementOf</value>
1321
1321
  <value>obsoletes</value>
1322
1322
  <value>obsoletedBy</value>
@@ -4,14 +4,14 @@ require "htmlentities"
4
4
  module Metanorma
5
5
  module ISO
6
6
  class Converter < Standoc::Converter
7
- PRE_NORMREF_FOOTNOTES = "//preface//fn | "\
7
+ PRE_NORMREF_FOOTNOTES = "//preface//fn | " \
8
8
  "//clause[@type = 'scope']//fn".freeze
9
9
 
10
10
  NORMREF_FOOTNOTES =
11
11
  "//references[@normative = 'true']//fn".freeze
12
12
 
13
13
  POST_NORMREF_FOOTNOTES =
14
- "//sections//clause[not(@type = 'scope')]//fn | "\
14
+ "//sections//clause[not(@type = 'scope')]//fn | " \
15
15
  "//annex//fn | //references[@normative = 'false']//fn".freeze
16
16
 
17
17
  def other_footnote_renumber(xmldoc)
@@ -33,7 +33,7 @@ module Metanorma
33
33
  end
34
34
 
35
35
  def get_id_prefix(xmldoc)
36
- xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']"\
36
+ xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']" \
37
37
  "/organization").each_with_object([]) do |x, prefix|
38
38
  x1 = x.at("abbreviation")&.text || x.at("name")&.text
39
39
  # (x1 == "ISO" and prefix.unshift("ISO")) or prefix << x1
@@ -60,23 +60,21 @@ module Metanorma
60
60
  end
61
61
 
62
62
  TERM_CLAUSE =
63
- "//sections//terms | "\
63
+ "//sections//terms | " \
64
64
  "//sections//clause[descendant::terms][not(descendant::definitions)]"
65
65
  .freeze
66
66
 
67
67
  PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
68
68
 
69
- OTHERIDS = "@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or "\
70
- "@type = 'ISBN'".freeze
71
-
72
69
  def pub_class(bib)
73
70
  return 1 if bib.at("#{PUBLISHER}[abbreviation = 'ISO']")
74
- return 1 if bib.at("#{PUBLISHER}[name = 'International Organization "\
71
+ return 1 if bib.at("#{PUBLISHER}[name = 'International Organization " \
75
72
  "for Standardization']")
76
73
  return 2 if bib.at("#{PUBLISHER}[abbreviation = 'IEC']")
77
- return 2 if bib.at("#{PUBLISHER}[name = 'International "\
74
+ return 2 if bib.at("#{PUBLISHER}[name = 'International " \
78
75
  "Electrotechnical Commission']")
79
- return 3 if bib.at("./docidentifier[@type][not(#{OTHERIDS})]") ||
76
+ return 3 if bib.at("./docidentifier[@type]" \
77
+ "[not(#{skip_docid} or @type = 'metanorma')]") ||
80
78
  bib.at("./docidentifier[not(@type)]")
81
79
 
82
80
  4
@@ -99,15 +97,15 @@ module Metanorma
99
97
  pubclass = pub_class(bib)
100
98
  num = bib&.at("./docnumber")&.text
101
99
  id = bib&.at("./docidentifier[@primary]") ||
102
- bib&.at("./docidentifier[not(#{OTHERIDS})]")
100
+ bib&.at("./docidentifier[not(#{skip_docid} or @type = 'metanorma')]")
103
101
  metaid = bib&.at("./docidentifier[@type = 'metanorma']")&.text
104
102
  abbrid = metaid unless /^\[\d+\]$/.match?(metaid)
105
103
  /\d-(?<partid>\d+)/ =~ id&.text
106
104
  type = id["type"] if id
107
105
  title = bib&.at("./title[@type = 'main']")&.text ||
108
106
  bib&.at("./title")&.text || bib&.at("./formattedref")&.text
109
- "#{pubclass} :: #{type} :: "\
110
- "#{num.nil? ? abbrid : sprintf('%09d', num.to_i)} :: "\
107
+ "#{pubclass} :: #{type} :: " \
108
+ "#{num.nil? ? abbrid : sprintf('%09d', num.to_i)} :: " \
111
109
  "#{sprintf('%09d', partid.to_i)} :: #{id&.text} :: #{title}"
112
110
  end
113
111
 
@@ -148,7 +146,7 @@ module Metanorma
148
146
  end
149
147
 
150
148
  def unpublished_note(xmldoc)
151
- xmldoc.xpath("//bibitem[not(./ancestor::bibitem)]"\
149
+ xmldoc.xpath("//bibitem[not(./ancestor::bibitem)]" \
152
150
  "[not(note[@type = 'Unpublished-Status'])]").each do |b|
153
151
  next if pub_class(b) > 2
154
152
  next unless (s = b.at("./status/stage")) && (s.text.to_i < 60)
@@ -179,7 +177,7 @@ module Metanorma
179
177
 
180
178
  def replacement_standard(biblio)
181
179
  r = biblio.at("./relation[@type = 'updates']/bibitem") or return nil
182
- id = r.at("./formattedref | ./docidentifier[@primary = 'true'] | "\
180
+ id = r.at("./formattedref | ./docidentifier[@primary = 'true'] | " \
183
181
  "./docidentifier | ./formattedref") or return nil
184
182
  id.text
185
183
  end
@@ -234,7 +232,7 @@ module Metanorma
234
232
  end
235
233
 
236
234
  def extract_publishers(xmldoc)
237
- xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']/"\
235
+ xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']/" \
238
236
  "organization").each_with_object([]) do |p, m|
239
237
  x = p.at("./abbreviation") || p.at("./name") or next
240
238
  m << x.text
@@ -1580,7 +1580,7 @@
1580
1580
  </element>
1581
1581
  </define>
1582
1582
  <define name="misccontainer">
1583
- <element name="misc-container">
1583
+ <element name="metanorma-extension">
1584
1584
  <oneOrMore>
1585
1585
  <ref name="AnyElement"/>
1586
1586
  </oneOrMore>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.3.1".freeze
3
+ VERSION = "2.3.3".freeze
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@ seriestemplate: "{% if series_formatted %}{{ series_formatted }}{%else%}{% if se
18
18
  journaltemplate: "<em>{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %}</em> ({{series_run}}) {{ labels['volume'] }}_{{series_num}} {{ labels['part'] }}_{{series_partnumber}}"
19
19
  template:
20
20
  # skip standardidentifier, it is inserted in front of formattedref within metanorma
21
- standard: "<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}."
21
+ standard: "{% if home_standard %}<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}{% else %}<smallcap>{{ creatornames }}</smallcap>. <em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{labels['updated'] | capitalize }}_{{date_updated}}. {{status | capitalize}}. {{ authorizer }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>.{% endif %}"
22
22
  website: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em><span_class='stddocTitle'>{{ title }}</span></em> [website]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{place}}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
23
23
  book: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . <em>{{ title }}</em> . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
24
24
  booklet: book
@@ -1,4 +1,5 @@
1
1
  require "relaton-render"
2
+ require_relative "parse"
2
3
 
3
4
  module Relaton
4
5
  module Render
@@ -7,6 +8,11 @@ module Relaton
7
8
  def config_loc
8
9
  YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
9
10
  end
11
+
12
+ def klass_initialize(_options)
13
+ super
14
+ @parseklass = Relaton::Render::ISO::Parse
15
+ end
10
16
  end
11
17
  end
12
18
  end
@@ -0,0 +1,20 @@
1
+ module Relaton
2
+ module Render
3
+ module ISO
4
+ class Parse < ::Relaton::Render::Parse
5
+ def simple_or_host_xml2hash(doc, host)
6
+ ret = super
7
+ ret.merge(home_standard: home_standard(doc, ret[:publisher_raw]))
8
+ end
9
+
10
+ def home_standard(_doc, pubs)
11
+ pubs&.any? do |r|
12
+ ["International Organization for Standardization", "ISO",
13
+ "International Electrotechnical Commission", "IEC"]
14
+ .include?(r[:nonpersonal])
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-19 00:00:00.000000000 Z
11
+ date: 2023-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -296,6 +296,7 @@ files:
296
296
  - ".rubocop.yml"
297
297
  - CODE_OF_CONDUCT.md
298
298
  - Gemfile
299
+ - Gemfile.devel
299
300
  - LICENSE
300
301
  - Makefile
301
302
  - README.adoc
@@ -395,6 +396,7 @@ files:
395
396
  - lib/metanorma/requirements/requirements.rb
396
397
  - lib/relaton/render/config.yml
397
398
  - lib/relaton/render/general.rb
399
+ - lib/relaton/render/parse.rb
398
400
  - metanorma-iso.gemspec
399
401
  homepage: https://github.com/metanorma/metanorma-iso
400
402
  licenses: