metanorma-un 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/un/un.plenary-attachment.xsl +242 -59
- data/lib/isodoc/un/un.plenary.xsl +242 -59
- data/lib/isodoc/un/un.recommendation.xsl +242 -59
- data/lib/isodoc/un/xref.rb +39 -25
- data/lib/metanorma/un/isodoc.rng +73 -3
- data/lib/metanorma/un/version.rb +1 -1
- metadata +2 -2
@@ -876,6 +876,10 @@
|
|
876
876
|
<xsl:text>Édition </xsl:text>
|
877
877
|
</title-edition>
|
878
878
|
|
879
|
+
<title-edition lang="ru">
|
880
|
+
<xsl:text>Издание </xsl:text>
|
881
|
+
</title-edition>
|
882
|
+
|
879
883
|
<!-- These titles of Table of contents renders different than determined in localized-strings -->
|
880
884
|
<title-toc lang="en">
|
881
885
|
|
@@ -904,7 +908,11 @@
|
|
904
908
|
|
905
909
|
|
906
910
|
|
907
|
-
</title-part>
|
911
|
+
</title-part>
|
912
|
+
<title-part lang="ru">
|
913
|
+
|
914
|
+
|
915
|
+
</title-part>
|
908
916
|
<title-part lang="zh">第 # 部分:</title-part>
|
909
917
|
|
910
918
|
<title-subpart lang="en">Sub-part #</title-subpart>
|
@@ -920,6 +928,7 @@
|
|
920
928
|
|
921
929
|
<title-summary lang="en">Summary</title-summary>
|
922
930
|
|
931
|
+
<title-continued lang="ru">(продолжение)</title-continued>
|
923
932
|
<title-continued lang="en">(continued)</title-continued>
|
924
933
|
<title-continued lang="fr">(continué)</title-continued>
|
925
934
|
|
@@ -1631,13 +1640,19 @@
|
|
1631
1640
|
</xsl:attribute-set><xsl:variable name="color-added-text">
|
1632
1641
|
<xsl:text>rgb(0, 255, 0)</xsl:text>
|
1633
1642
|
</xsl:variable><xsl:attribute-set name="add-style">
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1643
|
+
|
1644
|
+
<xsl:attribute name="color">red</xsl:attribute>
|
1645
|
+
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
1646
|
+
<!-- <xsl:attribute name="color">black</xsl:attribute>
|
1647
|
+
<xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
|
1648
|
+
<xsl:attribute name="padding-top">1mm</xsl:attribute>
|
1649
|
+
<xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
|
1650
|
+
|
1651
|
+
</xsl:attribute-set><xsl:variable name="add-style">
|
1652
|
+
<add-style xsl:use-attribute-sets="add-style"/>
|
1653
|
+
</xsl:variable><xsl:template name="append_add-style">
|
1654
|
+
<xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
|
1655
|
+
</xsl:template><xsl:variable name="color-deleted-text">
|
1641
1656
|
<xsl:text>red</xsl:text>
|
1642
1657
|
</xsl:variable><xsl:attribute-set name="del-style">
|
1643
1658
|
<xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
|
@@ -2069,14 +2084,42 @@
|
|
2069
2084
|
|
2070
2085
|
|
2071
2086
|
</xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
|
2087
|
+
<xsl:variable name="nodes_preface_">
|
2088
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2089
|
+
<node id="{@id}"/>
|
2090
|
+
</xsl:for-each>
|
2091
|
+
</xsl:variable>
|
2092
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
2093
|
+
|
2072
2094
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2073
2095
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2096
|
+
|
2097
|
+
<!-- process Section's title -->
|
2098
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2099
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2100
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2101
|
+
</xsl:if>
|
2102
|
+
|
2074
2103
|
<xsl:apply-templates select="." mode="contents"/>
|
2075
2104
|
</xsl:for-each>
|
2076
2105
|
</xsl:template><xsl:template name="processMainSectionsDefault_Contents">
|
2077
2106
|
|
2107
|
+
<xsl:variable name="nodes_sections_">
|
2108
|
+
<xsl:for-each select="/*/*[local-name()='sections']/*">
|
2109
|
+
<node id="{@id}"/>
|
2110
|
+
</xsl:for-each>
|
2111
|
+
</xsl:variable>
|
2112
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
2113
|
+
|
2078
2114
|
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
|
2079
2115
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2116
|
+
|
2117
|
+
<!-- process Section's title -->
|
2118
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2119
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2120
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2121
|
+
</xsl:if>
|
2122
|
+
|
2080
2123
|
<xsl:apply-templates select="." mode="contents"/>
|
2081
2124
|
</xsl:for-each>
|
2082
2125
|
|
@@ -2215,7 +2258,7 @@
|
|
2215
2258
|
</xsl:call-template>
|
2216
2259
|
</xsl:if>
|
2217
2260
|
</xsl:variable>
|
2218
|
-
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2261
|
+
<!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2219
2262
|
|
2220
2263
|
|
2221
2264
|
<xsl:variable name="margin-side">
|
@@ -2492,7 +2535,7 @@
|
|
2492
2535
|
<!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
|
2493
2536
|
<!-- 2009 thinspace -->
|
2494
2537
|
<!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
|
2495
|
-
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '
|
2538
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2496
2539
|
</xsl:call-template>
|
2497
2540
|
</xsl:variable>
|
2498
2541
|
<xsl:variable name="max_length">
|
@@ -4140,6 +4183,9 @@
|
|
4140
4183
|
</fo:inline>
|
4141
4184
|
</xsl:template><xsl:template match="*[local-name() = 'xref']">
|
4142
4185
|
<fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
|
4186
|
+
<xsl:if test="parent::*[local-name() = 'add']">
|
4187
|
+
<xsl:call-template name="append_add-style"/>
|
4188
|
+
</xsl:if>
|
4143
4189
|
<xsl:apply-templates/>
|
4144
4190
|
</fo:basic-link>
|
4145
4191
|
</xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
|
@@ -4255,6 +4301,13 @@
|
|
4255
4301
|
|
4256
4302
|
|
4257
4303
|
|
4304
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4305
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4306
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4307
|
+
<xsl:call-template name="append_add-style"/>
|
4308
|
+
</xsl:if>
|
4309
|
+
|
4310
|
+
|
4258
4311
|
<!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
|
4259
4312
|
<xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
4260
4313
|
<xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
@@ -4293,6 +4346,12 @@
|
|
4293
4346
|
|
4294
4347
|
|
4295
4348
|
|
4349
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4350
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4351
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4352
|
+
<xsl:call-template name="append_add-style"/>
|
4353
|
+
</xsl:if>
|
4354
|
+
|
4296
4355
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
4297
4356
|
|
4298
4357
|
</fo:inline>
|
@@ -4346,6 +4405,7 @@
|
|
4346
4405
|
</fo:block>
|
4347
4406
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
4348
4407
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
4408
|
+
|
4349
4409
|
|
4350
4410
|
|
4351
4411
|
|
@@ -4787,7 +4847,11 @@
|
|
4787
4847
|
<xsl:value-of select="."/>
|
4788
4848
|
</xsl:template><xsl:template match="node()" mode="contents">
|
4789
4849
|
<xsl:apply-templates mode="contents"/>
|
4790
|
-
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = '
|
4850
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface' or local-name() = 'sections']/*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" mode="contents_no_displayorder">
|
4851
|
+
<xsl:call-template name="contents_section-title"/>
|
4852
|
+
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
|
4853
|
+
<xsl:call-template name="contents_section-title"/>
|
4854
|
+
</xsl:template><xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
|
4791
4855
|
<xsl:variable name="level">
|
4792
4856
|
<xsl:call-template name="getLevel">
|
4793
4857
|
<xsl:with-param name="depth" select="@depth"/>
|
@@ -6104,7 +6168,7 @@
|
|
6104
6168
|
|
6105
6169
|
|
6106
6170
|
|
6107
|
-
|
6171
|
+
|
6108
6172
|
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
6109
6173
|
</fo:list-block>
|
6110
6174
|
<!-- <xsl:for-each select="./iho:note">
|
@@ -6122,6 +6186,11 @@
|
|
6122
6186
|
|
6123
6187
|
|
6124
6188
|
|
6189
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
6190
|
+
<xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
6191
|
+
<xsl:call-template name="append_add-style"/>
|
6192
|
+
</xsl:if>
|
6193
|
+
|
6125
6194
|
<xsl:call-template name="getListItemFormat"/>
|
6126
6195
|
</fo:block>
|
6127
6196
|
</fo:list-item-label>
|
@@ -7178,53 +7247,153 @@
|
|
7178
7247
|
<xsl:param name="first"/>
|
7179
7248
|
<xsl:if test="$number != ''">
|
7180
7249
|
<xsl:variable name="words">
|
7181
|
-
|
7182
|
-
<
|
7183
|
-
|
7184
|
-
|
7185
|
-
|
7186
|
-
|
7187
|
-
|
7188
|
-
|
7189
|
-
|
7190
|
-
|
7191
|
-
|
7192
|
-
|
7193
|
-
|
7194
|
-
|
7195
|
-
|
7196
|
-
|
7197
|
-
|
7198
|
-
|
7199
|
-
|
7200
|
-
|
7201
|
-
|
7202
|
-
|
7203
|
-
|
7204
|
-
|
7205
|
-
|
7206
|
-
|
7207
|
-
|
7208
|
-
|
7209
|
-
|
7210
|
-
|
7211
|
-
|
7212
|
-
|
7213
|
-
|
7214
|
-
|
7215
|
-
|
7216
|
-
|
7217
|
-
|
7218
|
-
|
7219
|
-
|
7220
|
-
|
7221
|
-
|
7222
|
-
|
7223
|
-
|
7224
|
-
|
7225
|
-
|
7226
|
-
|
7227
|
-
|
7250
|
+
<words>
|
7251
|
+
<xsl:choose>
|
7252
|
+
<xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
|
7253
|
+
<word cardinal="1">Une-</word>
|
7254
|
+
<word ordinal="1">Première </word>
|
7255
|
+
<word cardinal="2">Deux-</word>
|
7256
|
+
<word ordinal="2">Seconde </word>
|
7257
|
+
<word cardinal="3">Trois-</word>
|
7258
|
+
<word ordinal="3">Tierce </word>
|
7259
|
+
<word cardinal="4">Quatre-</word>
|
7260
|
+
<word ordinal="4">Quatrième </word>
|
7261
|
+
<word cardinal="5">Cinq-</word>
|
7262
|
+
<word ordinal="5">Cinquième </word>
|
7263
|
+
<word cardinal="6">Six-</word>
|
7264
|
+
<word ordinal="6">Sixième </word>
|
7265
|
+
<word cardinal="7">Sept-</word>
|
7266
|
+
<word ordinal="7">Septième </word>
|
7267
|
+
<word cardinal="8">Huit-</word>
|
7268
|
+
<word ordinal="8">Huitième </word>
|
7269
|
+
<word cardinal="9">Neuf-</word>
|
7270
|
+
<word ordinal="9">Neuvième </word>
|
7271
|
+
<word ordinal="10">Dixième </word>
|
7272
|
+
<word ordinal="11">Onzième </word>
|
7273
|
+
<word ordinal="12">Douzième </word>
|
7274
|
+
<word ordinal="13">Treizième </word>
|
7275
|
+
<word ordinal="14">Quatorzième </word>
|
7276
|
+
<word ordinal="15">Quinzième </word>
|
7277
|
+
<word ordinal="16">Seizième </word>
|
7278
|
+
<word ordinal="17">Dix-septième </word>
|
7279
|
+
<word ordinal="18">Dix-huitième </word>
|
7280
|
+
<word ordinal="19">Dix-neuvième </word>
|
7281
|
+
<word cardinal="20">Vingt-</word>
|
7282
|
+
<word ordinal="20">Vingtième </word>
|
7283
|
+
<word cardinal="30">Trente-</word>
|
7284
|
+
<word ordinal="30">Trentième </word>
|
7285
|
+
<word cardinal="40">Quarante-</word>
|
7286
|
+
<word ordinal="40">Quarantième </word>
|
7287
|
+
<word cardinal="50">Cinquante-</word>
|
7288
|
+
<word ordinal="50">Cinquantième </word>
|
7289
|
+
<word cardinal="60">Soixante-</word>
|
7290
|
+
<word ordinal="60">Soixantième </word>
|
7291
|
+
<word cardinal="70">Septante-</word>
|
7292
|
+
<word ordinal="70">Septantième </word>
|
7293
|
+
<word cardinal="80">Huitante-</word>
|
7294
|
+
<word ordinal="80">Huitantième </word>
|
7295
|
+
<word cardinal="90">Nonante-</word>
|
7296
|
+
<word ordinal="90">Nonantième </word>
|
7297
|
+
<word cardinal="100">Cent-</word>
|
7298
|
+
<word ordinal="100">Centième </word>
|
7299
|
+
</xsl:when>
|
7300
|
+
<xsl:when test="$lang = 'ru'">
|
7301
|
+
<word cardinal="1">Одна-</word>
|
7302
|
+
<word ordinal="1">Первое </word>
|
7303
|
+
<word cardinal="2">Две-</word>
|
7304
|
+
<word ordinal="2">Второе </word>
|
7305
|
+
<word cardinal="3">Три-</word>
|
7306
|
+
<word ordinal="3">Третье </word>
|
7307
|
+
<word cardinal="4">Четыре-</word>
|
7308
|
+
<word ordinal="4">Четвертое </word>
|
7309
|
+
<word cardinal="5">Пять-</word>
|
7310
|
+
<word ordinal="5">Пятое </word>
|
7311
|
+
<word cardinal="6">Шесть-</word>
|
7312
|
+
<word ordinal="6">Шестое </word>
|
7313
|
+
<word cardinal="7">Семь-</word>
|
7314
|
+
<word ordinal="7">Седьмое </word>
|
7315
|
+
<word cardinal="8">Восемь-</word>
|
7316
|
+
<word ordinal="8">Восьмое </word>
|
7317
|
+
<word cardinal="9">Девять-</word>
|
7318
|
+
<word ordinal="9">Девятое </word>
|
7319
|
+
<word ordinal="10">Десятое </word>
|
7320
|
+
<word ordinal="11">Одиннадцатое </word>
|
7321
|
+
<word ordinal="12">Двенадцатое </word>
|
7322
|
+
<word ordinal="13">Тринадцатое </word>
|
7323
|
+
<word ordinal="14">Четырнадцатое </word>
|
7324
|
+
<word ordinal="15">Пятнадцатое </word>
|
7325
|
+
<word ordinal="16">Шестнадцатое </word>
|
7326
|
+
<word ordinal="17">Семнадцатое </word>
|
7327
|
+
<word ordinal="18">Восемнадцатое </word>
|
7328
|
+
<word ordinal="19">Девятнадцатое </word>
|
7329
|
+
<word cardinal="20">Двадцать-</word>
|
7330
|
+
<word ordinal="20">Двадцатое </word>
|
7331
|
+
<word cardinal="30">Тридцать-</word>
|
7332
|
+
<word ordinal="30">Тридцатое </word>
|
7333
|
+
<word cardinal="40">Сорок-</word>
|
7334
|
+
<word ordinal="40">Сороковое </word>
|
7335
|
+
<word cardinal="50">Пятьдесят-</word>
|
7336
|
+
<word ordinal="50">Пятидесятое </word>
|
7337
|
+
<word cardinal="60">Шестьдесят-</word>
|
7338
|
+
<word ordinal="60">Шестидесятое </word>
|
7339
|
+
<word cardinal="70">Семьдесят-</word>
|
7340
|
+
<word ordinal="70">Семидесятое </word>
|
7341
|
+
<word cardinal="80">Восемьдесят-</word>
|
7342
|
+
<word ordinal="80">Восьмидесятое </word>
|
7343
|
+
<word cardinal="90">Девяносто-</word>
|
7344
|
+
<word ordinal="90">Девяностое </word>
|
7345
|
+
<word cardinal="100">Сто-</word>
|
7346
|
+
<word ordinal="100">Сотое </word>
|
7347
|
+
</xsl:when>
|
7348
|
+
<xsl:otherwise> <!-- default english -->
|
7349
|
+
<word cardinal="1">One-</word>
|
7350
|
+
<word ordinal="1">First </word>
|
7351
|
+
<word cardinal="2">Two-</word>
|
7352
|
+
<word ordinal="2">Second </word>
|
7353
|
+
<word cardinal="3">Three-</word>
|
7354
|
+
<word ordinal="3">Third </word>
|
7355
|
+
<word cardinal="4">Four-</word>
|
7356
|
+
<word ordinal="4">Fourth </word>
|
7357
|
+
<word cardinal="5">Five-</word>
|
7358
|
+
<word ordinal="5">Fifth </word>
|
7359
|
+
<word cardinal="6">Six-</word>
|
7360
|
+
<word ordinal="6">Sixth </word>
|
7361
|
+
<word cardinal="7">Seven-</word>
|
7362
|
+
<word ordinal="7">Seventh </word>
|
7363
|
+
<word cardinal="8">Eight-</word>
|
7364
|
+
<word ordinal="8">Eighth </word>
|
7365
|
+
<word cardinal="9">Nine-</word>
|
7366
|
+
<word ordinal="9">Ninth </word>
|
7367
|
+
<word ordinal="10">Tenth </word>
|
7368
|
+
<word ordinal="11">Eleventh </word>
|
7369
|
+
<word ordinal="12">Twelfth </word>
|
7370
|
+
<word ordinal="13">Thirteenth </word>
|
7371
|
+
<word ordinal="14">Fourteenth </word>
|
7372
|
+
<word ordinal="15">Fifteenth </word>
|
7373
|
+
<word ordinal="16">Sixteenth </word>
|
7374
|
+
<word ordinal="17">Seventeenth </word>
|
7375
|
+
<word ordinal="18">Eighteenth </word>
|
7376
|
+
<word ordinal="19">Nineteenth </word>
|
7377
|
+
<word cardinal="20">Twenty-</word>
|
7378
|
+
<word ordinal="20">Twentieth </word>
|
7379
|
+
<word cardinal="30">Thirty-</word>
|
7380
|
+
<word ordinal="30">Thirtieth </word>
|
7381
|
+
<word cardinal="40">Forty-</word>
|
7382
|
+
<word ordinal="40">Fortieth </word>
|
7383
|
+
<word cardinal="50">Fifty-</word>
|
7384
|
+
<word ordinal="50">Fiftieth </word>
|
7385
|
+
<word cardinal="60">Sixty-</word>
|
7386
|
+
<word ordinal="60">Sixtieth </word>
|
7387
|
+
<word cardinal="70">Seventy-</word>
|
7388
|
+
<word ordinal="70">Seventieth </word>
|
7389
|
+
<word cardinal="80">Eighty-</word>
|
7390
|
+
<word ordinal="80">Eightieth </word>
|
7391
|
+
<word cardinal="90">Ninety-</word>
|
7392
|
+
<word ordinal="90">Ninetieth </word>
|
7393
|
+
<word cardinal="100">Hundred-</word>
|
7394
|
+
<word ordinal="100">Hundredth </word>
|
7395
|
+
</xsl:otherwise>
|
7396
|
+
</xsl:choose>
|
7228
7397
|
</words>
|
7229
7398
|
</xsl:variable>
|
7230
7399
|
|
@@ -7298,4 +7467,18 @@
|
|
7298
7467
|
<xsl:otherwise>_</xsl:otherwise>
|
7299
7468
|
</xsl:choose>
|
7300
7469
|
</xsl:attribute>
|
7470
|
+
</xsl:template><xsl:template name="substring-after-last">
|
7471
|
+
<xsl:param name="value"/>
|
7472
|
+
<xsl:param name="delimiter"/>
|
7473
|
+
<xsl:choose>
|
7474
|
+
<xsl:when test="contains($value, $delimiter)">
|
7475
|
+
<xsl:call-template name="substring-after-last">
|
7476
|
+
<xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
|
7477
|
+
<xsl:with-param name="delimiter" select="$delimiter"/>
|
7478
|
+
</xsl:call-template>
|
7479
|
+
</xsl:when>
|
7480
|
+
<xsl:otherwise>
|
7481
|
+
<xsl:value-of select="$value"/>
|
7482
|
+
</xsl:otherwise>
|
7483
|
+
</xsl:choose>
|
7301
7484
|
</xsl:template></xsl:stylesheet>
|
data/lib/isodoc/un/xref.rb
CHANGED
@@ -3,24 +3,25 @@ require "roman-numerals"
|
|
3
3
|
module IsoDoc
|
4
4
|
module UN
|
5
5
|
class Xref < IsoDoc::Xref
|
6
|
-
def initial_anchor_names(
|
7
|
-
preface_names(
|
8
|
-
preface_names(
|
9
|
-
preface_names(
|
10
|
-
|
6
|
+
def initial_anchor_names(doc)
|
7
|
+
preface_names(doc.at(ns("//preface/abstract")))
|
8
|
+
preface_names(doc.at(ns("//foreword")))
|
9
|
+
preface_names(doc.at(ns("//introduction")))
|
10
|
+
doc.xpath(ns("//preface/clause")).each do |c|
|
11
11
|
preface_names(c)
|
12
12
|
end
|
13
|
-
preface_names(
|
13
|
+
preface_names(doc.at(ns("//acknowledgements")))
|
14
14
|
sequential_asset_names(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
doc.xpath(ns("//preface/abstract | //foreword | //introduction | "\
|
16
|
+
"//preface/clause | //acknowledgements")),
|
17
|
+
)
|
18
|
+
middle_section_asset_names(doc)
|
19
|
+
clause_names(doc, 0)
|
20
|
+
termnote_anchor_names(doc)
|
21
|
+
termexample_anchor_names(doc)
|
21
22
|
end
|
22
23
|
|
23
|
-
def clause_names(docxml,
|
24
|
+
def clause_names(docxml, _sect_num)
|
24
25
|
q = "//clause[parent::sections]"
|
25
26
|
@paranumber = 0
|
26
27
|
i = 0
|
@@ -57,24 +58,28 @@ module IsoDoc
|
|
57
58
|
|
58
59
|
def label_leaf_section(clause, lvl)
|
59
60
|
@paranumber += 1
|
60
|
-
@anchors[clause["id"]] =
|
61
|
-
|
62
|
-
|
61
|
+
@anchors[clause["id"]] =
|
62
|
+
{ label: @paranumber.to_s, elem: @labels["paragraph"],
|
63
|
+
xref: l10n("#{@labels['paragraph']} #{@paranumber}"),
|
64
|
+
level: lvl, type: "paragraph" }
|
63
65
|
end
|
64
66
|
|
65
67
|
def label_annex_leaf_section(clause, num, lvl)
|
66
68
|
@paranumber += 1
|
67
|
-
@anchors[clause["id"]] =
|
68
|
-
|
69
|
-
|
69
|
+
@anchors[clause["id"]] =
|
70
|
+
{ label: @paranumber.to_s, elem: @labels["paragraph"],
|
71
|
+
xref: l10n("#{@labels['paragraph']} #{num}.#{@paranumber}"),
|
72
|
+
level: lvl, type: "paragraph" }
|
70
73
|
end
|
71
74
|
|
72
75
|
def section_names(clause, num, lvl)
|
73
76
|
return num if clause.nil?
|
77
|
+
|
74
78
|
leaf_section?(clause) and label_leaf_section(clause, lvl) and return
|
75
79
|
num = num + 1
|
76
80
|
lbl = levelnumber(num, 1)
|
77
81
|
@anchors[clause["id"]] = { label: lbl, level: lvl, type: "clause",
|
82
|
+
elem: @labels["clause"],
|
78
83
|
xref: l10n("#{@labels['clause']} #{lbl}") }
|
79
84
|
i = 1
|
80
85
|
clause.xpath(ns(NONTERMINAL)).each do |c|
|
@@ -89,6 +94,7 @@ module IsoDoc
|
|
89
94
|
/\.(?<leafnum>[^.]+$)/ =~ num
|
90
95
|
clause["unnumbered"] == "true" or
|
91
96
|
@anchors[clause["id"]] = { label: leafnum, level: level, type: "clause",
|
97
|
+
elem: @labels["clause"],
|
92
98
|
xref: l10n("#{@labels['clause']} #{num}") }
|
93
99
|
i = 1
|
94
100
|
clause.xpath(ns(NONTERMINAL)).each do |c|
|
@@ -97,27 +103,32 @@ module IsoDoc
|
|
97
103
|
end
|
98
104
|
end
|
99
105
|
|
100
|
-
def annex_name_lbl(
|
106
|
+
def annex_name_lbl(_clause, num)
|
101
107
|
l10n("<strong>#{@labels['annex']} #{num}</strong>")
|
102
108
|
end
|
103
109
|
|
104
110
|
SUBCLAUSES =
|
105
111
|
"./clause | ./references | ./term | ./terms | ./definitions".freeze
|
106
112
|
|
113
|
+
def annex_name_anchors(clause, num)
|
114
|
+
{ label: annex_name_lbl(clause, num),
|
115
|
+
elem: @labels["annex"],
|
116
|
+
type: "clause", value: num.to_s, level: 1,
|
117
|
+
xref: "#{@labels['annex']} #{num}" }
|
118
|
+
end
|
107
119
|
|
108
120
|
def annex_names(clause, num)
|
109
121
|
hierarchical_asset_names(clause, num)
|
110
122
|
leaf_section?(clause) and
|
111
123
|
label_annex_leaf_section(clause, num, 1) and return
|
112
|
-
@anchors[clause["id"]] =
|
113
|
-
type: "clause", value: num,
|
114
|
-
xref: l10n("#{@labels['annex']} #{num}"), level: 1 }
|
124
|
+
@anchors[clause["id"]] = annex_name_anchors(clause, num)
|
115
125
|
if a = single_annex_special_section(clause)
|
116
|
-
annex_names1(a,
|
126
|
+
annex_names1(a, num.to_s, 1)
|
117
127
|
else
|
118
128
|
i = 1
|
119
129
|
clause.xpath(ns(SUBCLAUSES)).each do |c|
|
120
130
|
next if c["unnumbered"] == "true"
|
131
|
+
|
121
132
|
annex_names1(c, "#{num}.#{annex_levelnum(i, 2)}", 2)
|
122
133
|
i += 1 if !leaf_section?(c)
|
123
134
|
end
|
@@ -129,10 +140,11 @@ module IsoDoc
|
|
129
140
|
label_annex_leaf_section(clause, num, level) and return
|
130
141
|
/\.(?<leafnum>[^.]+$)/ =~ num
|
131
142
|
@anchors[clause["id"]] = { label: leafnum, xref: l10n("#{@labels['annex']} #{num}"),
|
132
|
-
level: level, type: "clause" }
|
143
|
+
level: level, type: "clause", elem: @labels["annex"] }
|
133
144
|
i = 1
|
134
145
|
clause.xpath(ns("./clause | ./references")).each do |c|
|
135
146
|
next if c["unnumbered"] == "true"
|
147
|
+
|
136
148
|
annex_names1(c, "#{num}.#{annex_levelnum(i, level + 1)}", level + 1)
|
137
149
|
i += 1 if !leaf_section?(c)
|
138
150
|
end
|
@@ -156,6 +168,7 @@ module IsoDoc
|
|
156
168
|
i = 0
|
157
169
|
clause.xpath(ns(".//admonition")).each do |t|
|
158
170
|
next if t["id"].nil? || t["id"].empty?
|
171
|
+
|
159
172
|
i += 1 unless t["unnumbered"] == "true"
|
160
173
|
@anchors[t["id"]] = anchor_struct(i.to_s, nil, @labels["admonition"],
|
161
174
|
"box", t["unnumbered"])
|
@@ -166,6 +179,7 @@ module IsoDoc
|
|
166
179
|
i = 0
|
167
180
|
clause.xpath(ns(".//admonition")).each do |t|
|
168
181
|
next if t["id"].nil? || t["id"].empty?
|
182
|
+
|
169
183
|
i += 1 unless t["unnumbered"] == "true"
|
170
184
|
@anchors[t["id"]] =
|
171
185
|
anchor_struct("#{num}.#{i}", nil, @labels["admonition"], "box",
|