metanorma-plateau 0.1.12 → 0.1.14

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: 571943b73665f89f8c25e412f37d2d5720894b3ec070087e34efbb2fa4bd7a27
4
- data.tar.gz: 466a954b0a2e650813d9ed13b73a1c19804589fa4a7a6044a12611ac4deee683
3
+ metadata.gz: d8dc6198df0a43ce003b8368e52bba495b51cb2b840d435aa2cc3d938004cc1b
4
+ data.tar.gz: a7faa2b5d6729d8e6c04469532cf79dfffc970b5f0e8cd13736992c3921961b4
5
5
  SHA512:
6
- metadata.gz: 38e5481ee524a7efd6c84d310a4be4b47d0d5010d0b8b861b870a7593915a68cad88ba4ef9179d679de50721302d74e91a520d394147eb8e32c6ba084006a985
7
- data.tar.gz: b1dd2d39da5444ae778c17f9396ac48b8c5586034fbb93d22f10a23e6f308e212d34af439e73ac21eb115e9c0730df33876ffc547b9ed11a41a401df93774fc0
6
+ metadata.gz: 5a12da085c319dd59936ca47f85f90f272eceaf7febbe5b6695830033b0af241140768aa52bbccaea39f6dda77ccb628b99b2d06fa325b1ffdc7b3d41bf0470c
7
+ data.tar.gz: 0b62e6cbd2feebdab8db36f787867193e4d848500ceeff5cde41a4ac655db1e946bbd13c85f3b774119eee5a29fc364da60327a784e3a3b05ca7c314767772c0
@@ -13,6 +13,14 @@ module IsoDoc
13
13
  y = load_file("i18n-#{yaml_lang(lang, script)}.yaml")
14
14
  y.empty? ? load_file("i18n-en.yaml").merge(super) : super.deep_merge(y)
15
15
  end
16
+
17
+ # Numeric regnal year
18
+ def japanese_year(time)
19
+ era_yr = time.era_year.to_i
20
+ "#{time.strftime('%JN')}#{era_yr}年"
21
+ rescue StandardError
22
+ time.year.to_s
23
+ end
16
24
  end
17
25
  end
18
26
  end
@@ -237,7 +237,7 @@
237
237
  <!-- ========================== -->
238
238
 
239
239
  <!-- Preface pages -->
240
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface']][normalize-space() != '' or .//image or .//svg]">
240
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface']][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
241
241
 
242
242
  <xsl:choose>
243
243
  <xsl:when test="*[local-name() = 'clause'][@type = 'toc']">
@@ -305,7 +305,7 @@
305
305
  <!-- END Preface and contents pages -->
306
306
  <!-- ========================== -->
307
307
 
308
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface'])][normalize-space() != '' or .//image or .//svg]">
308
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface'])][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
309
309
  <fo:page-sequence master-reference="document" force-page-count="no-force">
310
310
 
311
311
  <xsl:attribute name="master-reference">
@@ -460,9 +460,8 @@
460
460
  </xsl:for-each>
461
461
  </xsl:element>
462
462
 
463
- <xsl:call-template name="insertBibliographyInSeparatePageSequences"/>
464
-
465
463
  <xsl:call-template name="insertAnnexInSeparatePageSequences"/>
464
+ <xsl:call-template name="insertBibliographyInSeparatePageSequences"/>
466
465
  <xsl:call-template name="insertIndexInSeparatePageSequences"/>
467
466
 
468
467
  </xsl:element>
@@ -538,7 +537,7 @@
538
537
  </xsl:when>
539
538
  <xsl:otherwise>
540
539
  <xsl:choose>
541
- <xsl:when test="@type = 'annex' or @type = 'bibliography'">
540
+ <xsl:when test="@type = 'annex' or @type = 'bibliography' or @type = 'index'">
542
541
  <fo:block space-after="5pt">
543
542
  <xsl:call-template name="insertTocItem"/>
544
543
  </fo:block>
@@ -1728,6 +1727,36 @@
1728
1727
  </fo:block-container>
1729
1728
  </xsl:template>
1730
1729
 
1730
+ <!-- =================== -->
1731
+ <!-- Index processing -->
1732
+ <!-- =================== -->
1733
+ <xsl:template match="plateau:indexsect">
1734
+ <fo:block id="{@id}" span="all">
1735
+ <xsl:apply-templates select="plateau:title"/>
1736
+ </fo:block>
1737
+ <fo:block role="Index">
1738
+ <xsl:apply-templates select="*[not(self::plateau:title)]"/>
1739
+ </fo:block>
1740
+ </xsl:template>
1741
+
1742
+ <xsl:template match="plateau:xref[@pagenumber = 'true']" priority="2">
1743
+ <xsl:call-template name="insert_basic_link">
1744
+ <xsl:with-param name="element">
1745
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
1746
+ <fo:inline>
1747
+ <xsl:if test="@id">
1748
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
1749
+ </xsl:if>
1750
+ <fo:page-number-citation ref-id="{@target}"/>
1751
+ </fo:inline>
1752
+ </fo:basic-link>
1753
+ </xsl:with-param>
1754
+ </xsl:call-template>
1755
+ </xsl:template>
1756
+ <!-- =================== -->
1757
+ <!-- End of Index processing -->
1758
+ <!-- =================== -->
1759
+
1731
1760
  <xsl:template name="insertHeaderFooter">
1732
1761
  <xsl:call-template name="insertHeader"/>
1733
1762
  <fo:static-content flow-name="footer">
@@ -1877,8 +1906,21 @@
1877
1906
 
1878
1907
  <!-- <xsl:strip-space elements="plateau:xref"/> -->
1879
1908
 
1880
- <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
1881
- <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
1909
+ <xsl:variable name="namespace_full_">
1910
+ <xsl:choose>
1911
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="namespace-uri(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
1912
+ <xsl:otherwise><xsl:value-of select="namespace-uri(/*)"/></xsl:otherwise><!-- example: https://www.metanorma.org/ns/iso -->
1913
+ </xsl:choose>
1914
+ </xsl:variable>
1915
+ <xsl:variable name="namespace_full" select="normalize-space($namespace_full_)"/>
1916
+
1917
+ <xsl:variable name="root_element_">
1918
+ <xsl:choose>
1919
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="local-name(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
1920
+ <xsl:otherwise><xsl:value-of select="local-name(/*)"/></xsl:otherwise><!-- example: iso-standard -->
1921
+ </xsl:choose>
1922
+ </xsl:variable>
1923
+ <xsl:variable name="root_element" select="normalize-space($root_element_)"/>
1882
1924
 
1883
1925
  <xsl:variable name="document_scheme" select="normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'document-scheme']/*[local-name() = 'value'])"/>
1884
1926
 
@@ -3430,6 +3472,10 @@
3430
3472
  <xsl:attribute-set name="indexsect-title-style">
3431
3473
  <xsl:attribute name="role">H1</xsl:attribute>
3432
3474
 
3475
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3476
+ <xsl:attribute name="span">all</xsl:attribute>
3477
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3478
+
3433
3479
  </xsl:attribute-set>
3434
3480
 
3435
3481
  <xsl:attribute-set name="indexsect-clause-title-style">
@@ -5125,7 +5171,9 @@
5125
5171
  <fo:block role="SKIP">
5126
5172
 
5127
5173
  <xsl:if test="$isGenerateTableIF = 'true'">
5128
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5174
+
5175
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5176
+
5129
5177
  </xsl:if>
5130
5178
 
5131
5179
  <xsl:apply-templates/>
@@ -6150,7 +6198,17 @@
6150
6198
  <xsl:call-template name="refine_dt-cell-style"/>
6151
6199
 
6152
6200
  <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
6153
- <xsl:copy-of select="@id"/>
6201
+
6202
+ <xsl:choose>
6203
+ <xsl:when test="$isGenerateTableIF = 'true'">
6204
+
6205
+ <xsl:copy-of select="@id"/>
6206
+
6207
+ </xsl:when>
6208
+ <xsl:otherwise>
6209
+ <xsl:copy-of select="@id"/>
6210
+ </xsl:otherwise>
6211
+ </xsl:choose>
6154
6212
 
6155
6213
  <xsl:if test="normalize-space($key_iso) = 'true'">
6156
6214
  <xsl:attribute name="margin-top">0</xsl:attribute>
@@ -6182,7 +6240,9 @@
6182
6240
  <fo:block role="SKIP">
6183
6241
 
6184
6242
  <xsl:if test="$isGenerateTableIF = 'true'">
6185
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
6243
+
6244
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
6245
+
6186
6246
  </xsl:if>
6187
6247
 
6188
6248
  <xsl:choose>
@@ -6658,6 +6718,12 @@
6658
6718
  </xsl:if>
6659
6719
  </xsl:template>
6660
6720
 
6721
+ <xsl:template match="*[local-name()='strike']">
6722
+ <fo:inline text-decoration="line-through">
6723
+ <xsl:apply-templates/>
6724
+ </fo:inline>
6725
+ </xsl:template>
6726
+
6661
6727
  <xsl:template match="*[local-name() = 'pagebreak']">
6662
6728
  <fo:block break-after="page"/>
6663
6729
  <fo:block> </fo:block>
@@ -7420,6 +7486,14 @@
7420
7486
  </xsl:for-each>
7421
7487
  </xsl:variable>
7422
7488
 
7489
+ <!-- <xsl:if test="$debug = 'true'">
7490
+ <redirect:write file="{generate-id()}_words_with_width_sorted.xml">
7491
+ <td_text><xsl:copy-of select="$td_text"/></td_text>
7492
+ <words_with_width><xsl:copy-of select="$words_with_width"/></words_with_width>
7493
+ <xsl:copy-of select="$words_with_width_sorted"/>
7494
+ </redirect:write>
7495
+ </xsl:if> -->
7496
+
7423
7497
  <xsl:variable name="words">
7424
7498
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
7425
7499
  <word>
@@ -7545,6 +7619,7 @@
7545
7619
  <xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
7546
7620
  <xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
7547
7621
  <xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
7622
+ <xsl:if test="ancestor::*[local-name() = 'font_en_vertical']"><tag>font_en_vertical</tag></xsl:if>
7548
7623
  </tags>
7549
7624
  </xsl:template>
7550
7625
  <!-- =============================== -->
@@ -8085,7 +8160,16 @@
8085
8160
  </xsl:when>
8086
8161
  <xsl:otherwise>
8087
8162
  <!-- output text from <link>text</link> -->
8088
- <xsl:apply-templates/>
8163
+ <xsl:choose>
8164
+ <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.')">
8165
+ <xsl:call-template name="add-zero-spaces-link-java">
8166
+ <xsl:with-param name="text" select="."/>
8167
+ </xsl:call-template>
8168
+ </xsl:when>
8169
+ <xsl:otherwise>
8170
+ <xsl:apply-templates/>
8171
+ </xsl:otherwise>
8172
+ </xsl:choose>
8089
8173
  </xsl:otherwise>
8090
8174
  </xsl:choose>
8091
8175
  </fo:basic-link>
@@ -8724,16 +8808,29 @@
8724
8808
  <xsl:template name="getImageSrc">
8725
8809
  <xsl:choose>
8726
8810
  <xsl:when test="not(starts-with(@src, 'data:'))">
8811
+ <xsl:call-template name="getImageSrcExternal"/>
8812
+ </xsl:when>
8813
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8814
+ </xsl:choose>
8815
+ </xsl:template>
8816
+
8817
+ <xsl:template name="getImageSrcExternal">
8818
+ <xsl:choose>
8819
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8820
+ <xsl:value-of select="@src"/>
8821
+ </xsl:when>
8822
+ <xsl:otherwise>
8823
+ <xsl:variable name="src_with_basepath" select="concat($basepath, @src)"/>
8824
+ <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($src_with_basepath)))"/>
8727
8825
  <xsl:choose>
8728
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8729
- <xsl:value-of select="@src"/>
8826
+ <xsl:when test="$file_exists = 'true'">
8827
+ <xsl:value-of select="$src_with_basepath"/>
8730
8828
  </xsl:when>
8731
8829
  <xsl:otherwise>
8732
- <xsl:value-of select="concat($basepath, @src)"/>
8830
+ <xsl:value-of select="@src"/>
8733
8831
  </xsl:otherwise>
8734
8832
  </xsl:choose>
8735
- </xsl:when>
8736
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8833
+ </xsl:otherwise>
8737
8834
  </xsl:choose>
8738
8835
  </xsl:template>
8739
8836
 
@@ -8781,14 +8878,8 @@
8781
8878
  <xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
8782
8879
  </xsl:when>
8783
8880
  <xsl:when test="not(starts-with(@src, 'data:'))">
8784
- <xsl:choose>
8785
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8786
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8787
- </xsl:when>
8788
- <xsl:otherwise>
8789
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8790
- </xsl:otherwise>
8791
- </xsl:choose>
8881
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
8882
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
8792
8883
  </xsl:when>
8793
8884
  <xsl:otherwise>
8794
8885
  <xsl:value-of select="@src"/>
@@ -8809,16 +8900,8 @@
8809
8900
  </svg>
8810
8901
  </xsl:when>
8811
8902
  <xsl:when test="not(starts-with(@src, 'data:'))">
8812
- <xsl:variable name="src">
8813
- <xsl:choose>
8814
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8815
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8816
- </xsl:when>
8817
- <xsl:otherwise>
8818
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8819
- </xsl:otherwise>
8820
- </xsl:choose>
8821
- </xsl:variable>
8903
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
8904
+ <xsl:variable name="src" select="concat('url(file:///', $src_external, ')')"/>
8822
8905
  <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
8823
8906
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
8824
8907
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
@@ -12101,6 +12184,8 @@
12101
12184
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
12102
12185
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
12103
12186
 
12187
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
12188
+
12104
12189
  <xsl:apply-templates/>
12105
12190
  </fo:block>
12106
12191
  </xsl:template>
@@ -12935,7 +13020,9 @@
12935
13020
  <xsl:template name="add_id">
12936
13021
  <xsl:if test="not(@id)">
12937
13022
  <!-- add @id - first element with @id plus '_element_name' -->
12938
- <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
13023
+ <xsl:variable name="prefix_id_" select="(.//*[@id])[1]/@id"/>
13024
+ <xsl:variable name="prefix_id"><xsl:value-of select="$prefix_id_"/><xsl:if test="normalize-space($prefix_id_) = ''"><xsl:value-of select="generate-id()"/></xsl:if></xsl:variable>
13025
+ <xsl:attribute name="id"><xsl:value-of select="$prefix_id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
12939
13026
  </xsl:if>
12940
13027
  </xsl:template>
12941
13028
 
@@ -13974,7 +14061,14 @@
13974
14061
  <xsl:variable name="title">
13975
14062
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
13976
14063
 
13977
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
14064
+ <xsl:choose>
14065
+ <xsl:when test="*[local-name() = 'title'][@language = $lang and @type = 'main']">
14066
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
14067
+ </xsl:when>
14068
+ <xsl:otherwise>
14069
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'title-main']"/>
14070
+ </xsl:otherwise>
14071
+ </xsl:choose>
13978
14072
 
13979
14073
  </xsl:for-each>
13980
14074
  </xsl:variable>
@@ -14345,6 +14439,7 @@
14345
14439
  <xsl:param name="formatted">false</xsl:param>
14346
14440
  <xsl:param name="lang"/>
14347
14441
  <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
14442
+ <xsl:param name="bibdata_updated"/>
14348
14443
 
14349
14444
  <xsl:variable name="curr_lang">
14350
14445
  <xsl:choose>
@@ -14358,6 +14453,9 @@
14358
14453
 
14359
14454
  <xsl:variable name="data_value">
14360
14455
  <xsl:choose>
14456
+ <xsl:when test="$formatted = 'true' and string-length($bibdata_updated) != ''">
14457
+ <xsl:apply-templates select="xalan:nodeset($bibdata_updated)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
14458
+ </xsl:when>
14361
14459
  <xsl:when test="$formatted = 'true'">
14362
14460
  <xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
14363
14461
  </xsl:when>
@@ -14529,14 +14627,8 @@
14529
14627
  <xsl:value-of select="$src"/>
14530
14628
  </xsl:when>
14531
14629
  <xsl:otherwise>
14532
- <xsl:choose>
14533
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
14534
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
14535
- </xsl:when>
14536
- <xsl:otherwise>
14537
- <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
14538
- </xsl:otherwise>
14539
- </xsl:choose>
14630
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
14631
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
14540
14632
  </xsl:otherwise>
14541
14633
  </xsl:choose>
14542
14634
  </xsl:template>
@@ -14558,15 +14650,23 @@
14558
14650
  <!-- END: insert cover page image -->
14559
14651
 
14560
14652
  <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
14653
+ <xsl:variable name="regex_ja_spec_half_width_">
14654
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
14655
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
14656
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
14657
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
14658
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
14659
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
14660
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
14661
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
14662
+ </xsl:variable>
14663
+ <xsl:variable name="regex_ja_spec_half_width" select="translate(normalize-space($regex_ja_spec_half_width_), ' ', '')"/>
14561
14664
  <xsl:variable name="regex_ja_spec_">[
14562
14665
  <!-- Rotate 90° clockwise -->
14563
- \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
14666
+ <xsl:value-of select="$regex_ja_spec_half_width"/>
14564
14667
  \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
14565
- \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
14566
14668
  \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
14567
- \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
14568
14669
  \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
14569
- \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
14570
14670
  \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
14571
14671
  \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
14572
14672
  \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
@@ -14574,21 +14674,16 @@
14574
14674
  \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
14575
14675
  \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
14576
14676
  \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
14577
- \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
14578
14677
  \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
14579
- \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
14580
14678
  \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
14581
14679
  \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
14582
14680
  \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
14583
- \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
14584
14681
  \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
14585
- \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
14586
14682
  \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
14587
14683
  \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
14588
14684
  \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
14589
14685
  \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
14590
14686
  \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
14591
-
14592
14687
  \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
14593
14688
  \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
14594
14689
  \u301C <!-- U+301C WAVE DASH (〜) -->
@@ -14620,6 +14715,7 @@
14620
14715
  <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
14621
14716
  <xsl:template name="insertVerticalChar">
14622
14717
  <xsl:param name="str"/>
14718
+ <xsl:param name="char_prev"/>
14623
14719
  <xsl:param name="writing-mode">lr-tb</xsl:param>
14624
14720
  <xsl:param name="reference-orientation">90</xsl:param>
14625
14721
  <xsl:param name="add_zero_width_space">false</xsl:param>
@@ -14629,53 +14725,99 @@
14629
14725
  </xsl:when>
14630
14726
  <xsl:otherwise>
14631
14727
  <xsl:if test="string-length($str) &gt; 0">
14632
- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
14728
+
14729
+ <!-- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/> -->
14633
14730
  <xsl:variable name="char" select="substring($str,1,1)"/>
14634
- <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
14635
- <xsl:if test="normalize-space($writing-mode) != ''">
14636
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14637
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
14638
- </xsl:if>
14639
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14640
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
14641
- </xsl:if>
14642
- <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
14643
- <!-- Rotate 180°:
14644
- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
14645
- U+3002 IDEOGRAPHIC FULL STOP (。)
14646
- U+FE52 SMALL FULL STOP (﹒)
14647
- U+FF0E FULLWIDTH FULL STOP ()
14648
- -->
14649
- <xsl:attribute name="reference-orientation">-90</xsl:attribute>
14650
- </xsl:if>
14651
- <fo:block-container width="1em">
14652
- <fo:block line-height="1em">
14653
- <xsl:choose>
14654
- <xsl:when test="$horizontal_mode = 'true'">
14655
- <xsl:value-of select="$str"/>
14656
- </xsl:when>
14657
- <xsl:otherwise>
14731
+ <xsl:variable name="char_next" select="substring($str,2,1)"/>
14732
+
14733
+ <xsl:variable name="char_half_width" select="normalize-space(java:matches(java:java.lang.String.new($char), concat('([', $regex_ja_spec_half_width, ']{1,})')))"/>
14734
+
14735
+ <xsl:choose>
14736
+ <xsl:when test="$char_half_width = 'true'">
14737
+ <fo:inline>
14738
+ <xsl:attribute name="baseline-shift">7%</xsl:attribute>
14739
+ <xsl:value-of select="$char"/>
14740
+ </fo:inline>
14741
+ </xsl:when>
14742
+ <xsl:otherwise>
14743
+ <!-- namespace-uri(ancestor::*[local-name() = 'title']) != '' to skip title from $contents -->
14744
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_prev = '' and ../preceding-sibling::node())">
14745
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
14746
+ </xsl:if>
14747
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP" text-align-last="center">
14748
+ <xsl:if test="normalize-space($writing-mode) != ''">
14749
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14750
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
14751
+ </xsl:if>
14752
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14753
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
14754
+ </xsl:if>
14755
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
14756
+ <!-- Rotate 180°:
14757
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
14758
+ U+3002 IDEOGRAPHIC FULL STOP (。)
14759
+ U+FE52 SMALL FULL STOP (﹒)
14760
+ U+FF0E FULLWIDTH FULL STOP (.)
14761
+ -->
14762
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
14763
+ </xsl:if>
14764
+ <fo:block-container width="1em" role="SKIP"><!-- border="0.5pt solid blue" -->
14765
+ <fo:block line-height="1em" role="SKIP">
14766
+ <!-- <xsl:choose>
14767
+ <xsl:when test="$horizontal_mode = 'true'">
14768
+ <xsl:value-of select="$str"/>
14769
+ </xsl:when>
14770
+ <xsl:otherwise>
14771
+ <xsl:value-of select="$char"/>
14772
+ </xsl:otherwise>
14773
+ </xsl:choose> -->
14658
14774
  <xsl:value-of select="$char"/>
14659
- </xsl:otherwise>
14660
- </xsl:choose>
14661
- </fo:block>
14662
- </fo:block-container>
14663
- </fo:inline-container>
14664
- <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}')"><xsl:value-of select="$zero_width_space"/></xsl:if>
14665
-
14666
- <xsl:if test="$horizontal_mode = 'false'">
14667
- <xsl:call-template name="insertVerticalChar">
14668
- <xsl:with-param name="str" select="substring($str, 2)"/>
14669
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
14670
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14671
- <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
14672
- </xsl:call-template>
14673
- </xsl:if>
14775
+ </fo:block>
14776
+ </fo:block-container>
14777
+ </fo:inline-container>
14778
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_next != '' or ../following-sibling::node())">
14779
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
14780
+ </xsl:if>
14781
+ </xsl:otherwise>
14782
+ </xsl:choose>
14783
+
14784
+ <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}' or $char = '/')"><xsl:value-of select="$zero_width_space"/></xsl:if>
14785
+ <!-- <xsl:if test="$horizontal_mode = 'false'"> -->
14786
+ <xsl:call-template name="insertVerticalChar">
14787
+ <xsl:with-param name="str" select="substring($str, 2)"/>
14788
+ <xsl:with-param name="char_prev" select="$char"/>
14789
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
14790
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14791
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
14792
+ </xsl:call-template>
14793
+ <!-- </xsl:if> -->
14674
14794
  </xsl:if>
14675
14795
  </xsl:otherwise>
14676
14796
  </xsl:choose>
14677
14797
  </xsl:template>
14678
14798
 
14799
+ <xsl:template name="insertHorizontalChars">
14800
+ <xsl:param name="str"/>
14801
+ <xsl:param name="writing-mode">lr-tb</xsl:param>
14802
+ <xsl:param name="reference-orientation">90</xsl:param>
14803
+ <xsl:param name="add_zero_width_space">false</xsl:param>
14804
+ <xsl:choose>
14805
+ <xsl:otherwise>
14806
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP">
14807
+ <xsl:if test="normalize-space($writing-mode) != ''">
14808
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14809
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
14810
+ </xsl:if>
14811
+ <fo:block-container width="1em" role="SKIP"> <!-- border="0.5pt solid green" -->
14812
+ <fo:block line-height="1em" role="SKIP">
14813
+ <xsl:value-of select="$str"/>
14814
+ </fo:block>
14815
+ </fo:block-container>
14816
+ </fo:inline-container>
14817
+ </xsl:otherwise>
14818
+ </xsl:choose>
14819
+ </xsl:template>
14820
+
14679
14821
  <xsl:template name="number-to-words">
14680
14822
  <xsl:param name="number"/>
14681
14823
  <xsl:param name="first"/>
@@ -267,11 +267,11 @@ Detailed in https://www.relaton.org/model/creator/</a:documentation>
267
267
  <a:documentation>An identifier of the person according to an international identifier scheme</a:documentation>
268
268
  </ref>
269
269
  </zeroOrMore>
270
- <zeroOrMore>
270
+ <optional>
271
271
  <ref name="contact">
272
272
  <a:documentation>Contact information for the person, including URI, address, phone number, and email</a:documentation>
273
273
  </ref>
274
- </zeroOrMore>
274
+ </optional>
275
275
  </element>
276
276
  </define>
277
277
  <define name="fullname">
@@ -454,11 +454,11 @@ real names (if the person is named with a pseudonym or user name); previous lega
454
454
  <a:documentation>An identifier of the organization according to an international identifier scheme</a:documentation>
455
455
  </ref>
456
456
  </zeroOrMore>
457
- <zeroOrMore>
457
+ <optional>
458
458
  <ref name="contact">
459
459
  <a:documentation>Contact information for the organization, including address, phone number, and email</a:documentation>
460
460
  </ref>
461
- </zeroOrMore>
461
+ </optional>
462
462
  <optional>
463
463
  <ref name="logo">
464
464
  <a:documentation>A logo for the organization</a:documentation>
@@ -540,12 +540,18 @@ real names (if the person is named with a pseudonym or user name); previous lega
540
540
  <!-- TODO may change -->
541
541
  <define name="contact">
542
542
  <a:documentation>Contact information for a person or organization</a:documentation>
543
- <choice>
543
+ <zeroOrMore>
544
544
  <ref name="address"/>
545
+ </zeroOrMore>
546
+ <zeroOrMore>
545
547
  <ref name="phone"/>
548
+ </zeroOrMore>
549
+ <zeroOrMore>
546
550
  <ref name="email"/>
551
+ </zeroOrMore>
552
+ <zeroOrMore>
547
553
  <ref name="uri"/>
548
- </choice>
554
+ </zeroOrMore>
549
555
  </define>
550
556
  <define name="phone">
551
557
  <a:documentation>The phone number associated with a person or organization</a:documentation>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Plateau
3
- VERSION = "0.1.12".freeze
3
+ VERSION = "0.1.14".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-plateau
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-10 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-jis
@@ -281,7 +281,7 @@ homepage: https://github.com/metanorma/metanorma-plateau
281
281
  licenses:
282
282
  - LicenseRef-Ribose-Commercial
283
283
  metadata: {}
284
- post_install_message:
284
+ post_install_message:
285
285
  rdoc_options: []
286
286
  require_paths:
287
287
  - lib
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
297
  version: '0'
298
298
  requirements: []
299
299
  rubygems_version: 3.3.27
300
- signing_key:
300
+ signing_key:
301
301
  specification_version: 4
302
302
  summary: Metanorma for MLIT Project PLATEAU (private)
303
303
  test_files: []