metanorma-ribose 2.5.8 → 2.5.10

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: 4610f907d3022077b5cc2a16f0d05228c3e805bc7dc191b5133a681a1bf8d2d3
4
- data.tar.gz: 63cecb2f77af07422987f3b09591045c243d0207b76f8fdbba752e27fc146c21
3
+ metadata.gz: 7c0913b63262cf54ab97d9df21a8301977c72c61697987cbce07bfcd4bf9ea4d
4
+ data.tar.gz: 459c655d58228535c36415a72e2ca3a8ca72b22675e4f453c1384bfcd5afaf1d
5
5
  SHA512:
6
- metadata.gz: c15a22c66e48ae6ae92525dc682e40c10e7cee5a4a98111e244e5dd3d60dbb7c08c77b95f0d2a1f6b448124f89e8b21a497cc142fcc2b413c6122014d4b08a07
7
- data.tar.gz: ba2a58f12b20d3b513e128b9cf0f82f0ba65516a283d33b31f4ef6c26254e9ec271040c4dcb074365feff3289fbf4bdb2989054cb5edea01b70871ce9a24e9e6
6
+ metadata.gz: 6d5a1b64ddcd0a08b09f54cb9c1cfbcba0d1c900090b26b1c515437fbc9cdf29aff62e6380fb8d74b72249f8c393d17c690066f1a65bd345facdb767aeb94f5f
7
+ data.tar.gz: e08442b6d1356098c4b7a5cf02491ea1824935d375e225449d11a3beb25f4a28be43e106dbcc12b3a93679890bc61959aa28ee44d19a8ccc2ea3a2566907246c
@@ -461,7 +461,7 @@
461
461
 
462
462
  <xsl:for-each select="xalan:nodeset($updated_xml_with_pages)"> <!-- set context to preface -->
463
463
 
464
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][normalize-space() != '' or .//image or .//svg]">
464
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
465
465
 
466
466
  <fo:page-sequence master-reference="document" force-page-count="no-force">
467
467
 
@@ -1324,8 +1324,21 @@
1324
1324
 
1325
1325
  <!-- <xsl:strip-space elements="ribose:xref"/> -->
1326
1326
 
1327
- <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
1328
- <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
1327
+ <xsl:variable name="namespace_full_">
1328
+ <xsl:choose>
1329
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="namespace-uri(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
1330
+ <xsl:otherwise><xsl:value-of select="namespace-uri(/*)"/></xsl:otherwise><!-- example: https://www.metanorma.org/ns/iso -->
1331
+ </xsl:choose>
1332
+ </xsl:variable>
1333
+ <xsl:variable name="namespace_full" select="normalize-space($namespace_full_)"/>
1334
+
1335
+ <xsl:variable name="root_element_">
1336
+ <xsl:choose>
1337
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="local-name(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
1338
+ <xsl:otherwise><xsl:value-of select="local-name(/*)"/></xsl:otherwise><!-- example: iso-standard -->
1339
+ </xsl:choose>
1340
+ </xsl:variable>
1341
+ <xsl:variable name="root_element" select="normalize-space($root_element_)"/>
1329
1342
 
1330
1343
  <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'])"/>
1331
1344
 
@@ -4690,7 +4703,9 @@
4690
4703
  <fo:block role="SKIP">
4691
4704
 
4692
4705
  <xsl:if test="$isGenerateTableIF = 'true'">
4693
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
4706
+
4707
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
4708
+
4694
4709
  </xsl:if>
4695
4710
 
4696
4711
  <xsl:apply-templates/>
@@ -5712,7 +5727,17 @@
5712
5727
  <xsl:call-template name="refine_dt-cell-style"/>
5713
5728
 
5714
5729
  <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
5715
- <xsl:copy-of select="@id"/>
5730
+
5731
+ <xsl:choose>
5732
+ <xsl:when test="$isGenerateTableIF = 'true'">
5733
+
5734
+ <xsl:copy-of select="@id"/>
5735
+
5736
+ </xsl:when>
5737
+ <xsl:otherwise>
5738
+ <xsl:copy-of select="@id"/>
5739
+ </xsl:otherwise>
5740
+ </xsl:choose>
5716
5741
 
5717
5742
  <xsl:if test="normalize-space($key_iso) = 'true'">
5718
5743
  <xsl:attribute name="margin-top">0</xsl:attribute>
@@ -5744,7 +5769,9 @@
5744
5769
  <fo:block role="SKIP">
5745
5770
 
5746
5771
  <xsl:if test="$isGenerateTableIF = 'true'">
5747
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5772
+
5773
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5774
+
5748
5775
  </xsl:if>
5749
5776
 
5750
5777
  <xsl:choose>
@@ -6230,6 +6257,12 @@
6230
6257
  </xsl:if>
6231
6258
  </xsl:template>
6232
6259
 
6260
+ <xsl:template match="*[local-name()='strike']">
6261
+ <fo:inline text-decoration="line-through">
6262
+ <xsl:apply-templates/>
6263
+ </fo:inline>
6264
+ </xsl:template>
6265
+
6233
6266
  <xsl:template match="*[local-name() = 'pagebreak']">
6234
6267
  <fo:block break-after="page"/>
6235
6268
  <fo:block> </fo:block>
@@ -6992,6 +7025,14 @@
6992
7025
  </xsl:for-each>
6993
7026
  </xsl:variable>
6994
7027
 
7028
+ <!-- <xsl:if test="$debug = 'true'">
7029
+ <redirect:write file="{generate-id()}_words_with_width_sorted.xml">
7030
+ <td_text><xsl:copy-of select="$td_text"/></td_text>
7031
+ <words_with_width><xsl:copy-of select="$words_with_width"/></words_with_width>
7032
+ <xsl:copy-of select="$words_with_width_sorted"/>
7033
+ </redirect:write>
7034
+ </xsl:if> -->
7035
+
6995
7036
  <xsl:variable name="words">
6996
7037
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
6997
7038
  <word>
@@ -7117,6 +7158,7 @@
7117
7158
  <xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
7118
7159
  <xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
7119
7160
  <xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
7161
+ <xsl:if test="ancestor::*[local-name() = 'font_en_vertical']"><tag>font_en_vertical</tag></xsl:if>
7120
7162
  </tags>
7121
7163
  </xsl:template>
7122
7164
  <!-- =============================== -->
@@ -7657,7 +7699,16 @@
7657
7699
  </xsl:when>
7658
7700
  <xsl:otherwise>
7659
7701
  <!-- output text from <link>text</link> -->
7660
- <xsl:apply-templates/>
7702
+ <xsl:choose>
7703
+ <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.')">
7704
+ <xsl:call-template name="add-zero-spaces-link-java">
7705
+ <xsl:with-param name="text" select="."/>
7706
+ </xsl:call-template>
7707
+ </xsl:when>
7708
+ <xsl:otherwise>
7709
+ <xsl:apply-templates/>
7710
+ </xsl:otherwise>
7711
+ </xsl:choose>
7661
7712
  </xsl:otherwise>
7662
7713
  </xsl:choose>
7663
7714
  </fo:basic-link>
@@ -8297,16 +8348,29 @@
8297
8348
  <xsl:template name="getImageSrc">
8298
8349
  <xsl:choose>
8299
8350
  <xsl:when test="not(starts-with(@src, 'data:'))">
8351
+ <xsl:call-template name="getImageSrcExternal"/>
8352
+ </xsl:when>
8353
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8354
+ </xsl:choose>
8355
+ </xsl:template>
8356
+
8357
+ <xsl:template name="getImageSrcExternal">
8358
+ <xsl:choose>
8359
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8360
+ <xsl:value-of select="@src"/>
8361
+ </xsl:when>
8362
+ <xsl:otherwise>
8363
+ <xsl:variable name="src_with_basepath" select="concat($basepath, @src)"/>
8364
+ <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($src_with_basepath)))"/>
8300
8365
  <xsl:choose>
8301
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8302
- <xsl:value-of select="@src"/>
8366
+ <xsl:when test="$file_exists = 'true'">
8367
+ <xsl:value-of select="$src_with_basepath"/>
8303
8368
  </xsl:when>
8304
8369
  <xsl:otherwise>
8305
- <xsl:value-of select="concat($basepath, @src)"/>
8370
+ <xsl:value-of select="@src"/>
8306
8371
  </xsl:otherwise>
8307
8372
  </xsl:choose>
8308
- </xsl:when>
8309
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8373
+ </xsl:otherwise>
8310
8374
  </xsl:choose>
8311
8375
  </xsl:template>
8312
8376
 
@@ -8354,14 +8418,8 @@
8354
8418
  <xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
8355
8419
  </xsl:when>
8356
8420
  <xsl:when test="not(starts-with(@src, 'data:'))">
8357
- <xsl:choose>
8358
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8359
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8360
- </xsl:when>
8361
- <xsl:otherwise>
8362
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8363
- </xsl:otherwise>
8364
- </xsl:choose>
8421
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
8422
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
8365
8423
  </xsl:when>
8366
8424
  <xsl:otherwise>
8367
8425
  <xsl:value-of select="@src"/>
@@ -8382,16 +8440,8 @@
8382
8440
  </svg>
8383
8441
  </xsl:when>
8384
8442
  <xsl:when test="not(starts-with(@src, 'data:'))">
8385
- <xsl:variable name="src">
8386
- <xsl:choose>
8387
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8388
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
8389
- </xsl:when>
8390
- <xsl:otherwise>
8391
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
8392
- </xsl:otherwise>
8393
- </xsl:choose>
8394
- </xsl:variable>
8443
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
8444
+ <xsl:variable name="src" select="concat('url(file:///', $src_external, ')')"/>
8395
8445
  <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
8396
8446
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
8397
8447
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
@@ -12509,7 +12559,9 @@
12509
12559
  <xsl:template name="add_id">
12510
12560
  <xsl:if test="not(@id)">
12511
12561
  <!-- add @id - first element with @id plus '_element_name' -->
12512
- <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
12562
+ <xsl:variable name="prefix_id_" select="(.//*[@id])[1]/@id"/>
12563
+ <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>
12564
+ <xsl:attribute name="id"><xsl:value-of select="$prefix_id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
12513
12565
  </xsl:if>
12514
12566
  </xsl:template>
12515
12567
 
@@ -13814,6 +13866,7 @@
13814
13866
  <xsl:param name="formatted">false</xsl:param>
13815
13867
  <xsl:param name="lang"/>
13816
13868
  <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
13869
+ <xsl:param name="bibdata_updated"/>
13817
13870
 
13818
13871
  <xsl:variable name="curr_lang">
13819
13872
  <xsl:choose>
@@ -13827,6 +13880,9 @@
13827
13880
 
13828
13881
  <xsl:variable name="data_value">
13829
13882
  <xsl:choose>
13883
+ <xsl:when test="$formatted = 'true' and string-length($bibdata_updated) != ''">
13884
+ <xsl:apply-templates select="xalan:nodeset($bibdata_updated)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
13885
+ </xsl:when>
13830
13886
  <xsl:when test="$formatted = 'true'">
13831
13887
  <xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
13832
13888
  </xsl:when>
@@ -13998,14 +14054,8 @@
13998
14054
  <xsl:value-of select="$src"/>
13999
14055
  </xsl:when>
14000
14056
  <xsl:otherwise>
14001
- <xsl:choose>
14002
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
14003
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
14004
- </xsl:when>
14005
- <xsl:otherwise>
14006
- <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
14007
- </xsl:otherwise>
14008
- </xsl:choose>
14057
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
14058
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
14009
14059
  </xsl:otherwise>
14010
14060
  </xsl:choose>
14011
14061
  </xsl:template>
@@ -14027,15 +14077,23 @@
14027
14077
  <!-- END: insert cover page image -->
14028
14078
 
14029
14079
  <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
14080
+ <xsl:variable name="regex_ja_spec_half_width_">
14081
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
14082
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
14083
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
14084
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
14085
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
14086
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
14087
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
14088
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
14089
+ </xsl:variable>
14090
+ <xsl:variable name="regex_ja_spec_half_width" select="translate(normalize-space($regex_ja_spec_half_width_), ' ', '')"/>
14030
14091
  <xsl:variable name="regex_ja_spec_">[
14031
14092
  <!-- Rotate 90° clockwise -->
14032
- \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
14093
+ <xsl:value-of select="$regex_ja_spec_half_width"/>
14033
14094
  \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
14034
- \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
14035
14095
  \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
14036
- \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
14037
14096
  \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
14038
- \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
14039
14097
  \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
14040
14098
  \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
14041
14099
  \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
@@ -14043,21 +14101,16 @@
14043
14101
  \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
14044
14102
  \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
14045
14103
  \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
14046
- \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
14047
14104
  \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
14048
- \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
14049
14105
  \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
14050
14106
  \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
14051
14107
  \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
14052
- \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
14053
14108
  \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
14054
- \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
14055
14109
  \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
14056
14110
  \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
14057
14111
  \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
14058
14112
  \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
14059
14113
  \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
14060
-
14061
14114
  \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
14062
14115
  \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
14063
14116
  \u301C <!-- U+301C WAVE DASH (〜) -->
@@ -14089,6 +14142,7 @@
14089
14142
  <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
14090
14143
  <xsl:template name="insertVerticalChar">
14091
14144
  <xsl:param name="str"/>
14145
+ <xsl:param name="char_prev"/>
14092
14146
  <xsl:param name="writing-mode">lr-tb</xsl:param>
14093
14147
  <xsl:param name="reference-orientation">90</xsl:param>
14094
14148
  <xsl:param name="add_zero_width_space">false</xsl:param>
@@ -14098,53 +14152,99 @@
14098
14152
  </xsl:when>
14099
14153
  <xsl:otherwise>
14100
14154
  <xsl:if test="string-length($str) &gt; 0">
14101
- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
14155
+
14156
+ <!-- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/> -->
14102
14157
  <xsl:variable name="char" select="substring($str,1,1)"/>
14103
- <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">
14104
- <xsl:if test="normalize-space($writing-mode) != ''">
14105
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14106
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
14107
- </xsl:if>
14108
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14109
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
14110
- </xsl:if>
14111
- <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
14112
- <!-- Rotate 180°:
14113
- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
14114
- U+3002 IDEOGRAPHIC FULL STOP (。)
14115
- U+FE52 SMALL FULL STOP (﹒)
14116
- U+FF0E FULLWIDTH FULL STOP ()
14117
- -->
14118
- <xsl:attribute name="reference-orientation">-90</xsl:attribute>
14119
- </xsl:if>
14120
- <fo:block-container width="1em">
14121
- <fo:block line-height="1em">
14122
- <xsl:choose>
14123
- <xsl:when test="$horizontal_mode = 'true'">
14124
- <xsl:value-of select="$str"/>
14125
- </xsl:when>
14126
- <xsl:otherwise>
14158
+ <xsl:variable name="char_next" select="substring($str,2,1)"/>
14159
+
14160
+ <xsl:variable name="char_half_width" select="normalize-space(java:matches(java:java.lang.String.new($char), concat('([', $regex_ja_spec_half_width, ']{1,})')))"/>
14161
+
14162
+ <xsl:choose>
14163
+ <xsl:when test="$char_half_width = 'true'">
14164
+ <fo:inline>
14165
+ <xsl:attribute name="baseline-shift">7%</xsl:attribute>
14166
+ <xsl:value-of select="$char"/>
14167
+ </fo:inline>
14168
+ </xsl:when>
14169
+ <xsl:otherwise>
14170
+ <!-- namespace-uri(ancestor::*[local-name() = 'title']) != '' to skip title from $contents -->
14171
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_prev = '' and ../preceding-sibling::node())">
14172
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
14173
+ </xsl:if>
14174
+ <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">
14175
+ <xsl:if test="normalize-space($writing-mode) != ''">
14176
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14177
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
14178
+ </xsl:if>
14179
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14180
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
14181
+ </xsl:if>
14182
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
14183
+ <!-- Rotate 180°:
14184
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
14185
+ U+3002 IDEOGRAPHIC FULL STOP (。)
14186
+ U+FE52 SMALL FULL STOP (﹒)
14187
+ U+FF0E FULLWIDTH FULL STOP (.)
14188
+ -->
14189
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
14190
+ </xsl:if>
14191
+ <fo:block-container width="1em" role="SKIP"><!-- border="0.5pt solid blue" -->
14192
+ <fo:block line-height="1em" role="SKIP">
14193
+ <!-- <xsl:choose>
14194
+ <xsl:when test="$horizontal_mode = 'true'">
14195
+ <xsl:value-of select="$str"/>
14196
+ </xsl:when>
14197
+ <xsl:otherwise>
14198
+ <xsl:value-of select="$char"/>
14199
+ </xsl:otherwise>
14200
+ </xsl:choose> -->
14127
14201
  <xsl:value-of select="$char"/>
14128
- </xsl:otherwise>
14129
- </xsl:choose>
14130
- </fo:block>
14131
- </fo:block-container>
14132
- </fo:inline-container>
14133
- <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>
14134
-
14135
- <xsl:if test="$horizontal_mode = 'false'">
14136
- <xsl:call-template name="insertVerticalChar">
14137
- <xsl:with-param name="str" select="substring($str, 2)"/>
14138
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
14139
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14140
- <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
14141
- </xsl:call-template>
14142
- </xsl:if>
14202
+ </fo:block>
14203
+ </fo:block-container>
14204
+ </fo:inline-container>
14205
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_next != '' or ../following-sibling::node())">
14206
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
14207
+ </xsl:if>
14208
+ </xsl:otherwise>
14209
+ </xsl:choose>
14210
+
14211
+ <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>
14212
+ <!-- <xsl:if test="$horizontal_mode = 'false'"> -->
14213
+ <xsl:call-template name="insertVerticalChar">
14214
+ <xsl:with-param name="str" select="substring($str, 2)"/>
14215
+ <xsl:with-param name="char_prev" select="$char"/>
14216
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
14217
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14218
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
14219
+ </xsl:call-template>
14220
+ <!-- </xsl:if> -->
14143
14221
  </xsl:if>
14144
14222
  </xsl:otherwise>
14145
14223
  </xsl:choose>
14146
14224
  </xsl:template>
14147
14225
 
14226
+ <xsl:template name="insertHorizontalChars">
14227
+ <xsl:param name="str"/>
14228
+ <xsl:param name="writing-mode">lr-tb</xsl:param>
14229
+ <xsl:param name="reference-orientation">90</xsl:param>
14230
+ <xsl:param name="add_zero_width_space">false</xsl:param>
14231
+ <xsl:choose>
14232
+ <xsl:otherwise>
14233
+ <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">
14234
+ <xsl:if test="normalize-space($writing-mode) != ''">
14235
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14236
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
14237
+ </xsl:if>
14238
+ <fo:block-container width="1em" role="SKIP"> <!-- border="0.5pt solid green" -->
14239
+ <fo:block line-height="1em" role="SKIP">
14240
+ <xsl:value-of select="$str"/>
14241
+ </fo:block>
14242
+ </fo:block-container>
14243
+ </fo:inline-container>
14244
+ </xsl:otherwise>
14245
+ </xsl:choose>
14246
+ </xsl:template>
14247
+
14148
14248
  <xsl:template name="number-to-words">
14149
14249
  <xsl:param name="number"/>
14150
14250
  <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 Ribose
3
- VERSION = "2.5.8".freeze
3
+ VERSION = "2.5.10".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ribose
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.8
4
+ version: 2.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
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-generic
@@ -239,7 +239,7 @@ homepage: https://github.com/metanorma/metanorma-ribose
239
239
  licenses:
240
240
  - BSD-2-Clause
241
241
  metadata: {}
242
- post_install_message:
242
+ post_install_message:
243
243
  rdoc_options: []
244
244
  require_paths:
245
245
  - lib
@@ -255,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
255
  version: '0'
256
256
  requirements: []
257
257
  rubygems_version: 3.3.27
258
- signing_key:
258
+ signing_key:
259
259
  specification_version: 4
260
260
  summary: metanorma-ribose lets you write Ribose standards in AsciiDoc.
261
261
  test_files: []