metanorma-un 0.9.8.1 → 0.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/isodoc/un/init.rb +5 -4
- data/lib/isodoc/un/metadata.rb +17 -18
- data/lib/isodoc/un/un.plenary-attachment.xsl +59 -12
- data/lib/isodoc/un/un.plenary.xsl +59 -12
- data/lib/isodoc/un/un.recommendation.xsl +59 -12
- data/lib/isodoc/un/xref.rb +9 -0
- data/lib/metanorma/un/biblio.rng +32 -1
- data/lib/metanorma/un/converter.rb +4 -4
- data/lib/metanorma/un/isodoc.rng +9 -0
- data/lib/metanorma/un/version.rb +1 -1
- data/metanorma-un.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b7eed9a4ee7a8a2f881a16841acb2d6d9310618d61b27994d70eebb9e0c2cc1
|
4
|
+
data.tar.gz: '00018c02bdbbec199661eb6e5aa43b09240a22948528a9fde135142445c82d5b'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63e67ef5e0bf08d8823bad86046701935fa38bec6e21fbdac22033903a49290dd0b854d564f8468625d9c28a3bfc217ce74b8582dfde386a689ea4c1c2dccc40
|
7
|
+
data.tar.gz: 377c2a773f8c9d230506070943113c01009a49673607c92e93a4946b9ca060cc087f1ee8909fe8e6999a19c6a46b5e31df74359899a0a0eae5d614acd96162ec
|
data/lib/isodoc/un/init.rb
CHANGED
@@ -6,8 +6,8 @@ require_relative "i18n"
|
|
6
6
|
module IsoDoc
|
7
7
|
module UN
|
8
8
|
module Init
|
9
|
-
def metadata_init(lang, script, labels)
|
10
|
-
@meta = Metadata.new(lang, script, labels)
|
9
|
+
def metadata_init(lang, script, locale, labels)
|
10
|
+
@meta = Metadata.new(lang, script, locale, labels)
|
11
11
|
@meta.set(:toc, @toc)
|
12
12
|
end
|
13
13
|
|
@@ -16,8 +16,9 @@ module IsoDoc
|
|
16
16
|
@xrefs = Xref.new(lang, script, html, labels, options)
|
17
17
|
end
|
18
18
|
|
19
|
-
def i18n_init(lang, script, i18nyaml = nil)
|
20
|
-
@i18n = I18n.new(lang, script,
|
19
|
+
def i18n_init(lang, script, locale, i18nyaml = nil)
|
20
|
+
@i18n = I18n.new(lang, script, locale: locale,
|
21
|
+
i18nyaml: i18nyaml || @i18nyaml)
|
21
22
|
end
|
22
23
|
|
23
24
|
def fileloc(loc)
|
data/lib/isodoc/un/metadata.rb
CHANGED
@@ -4,9 +4,8 @@ require "iso-639"
|
|
4
4
|
|
5
5
|
module IsoDoc
|
6
6
|
module UN
|
7
|
-
|
8
7
|
class Metadata < IsoDoc::Metadata
|
9
|
-
def initialize(lang, script, labels)
|
8
|
+
def initialize(lang, script, locale, labels)
|
10
9
|
super
|
11
10
|
here = File.dirname(__FILE__)
|
12
11
|
set(:logo, File.expand_path(File.join(here, "html", "logo.jpg")))
|
@@ -27,8 +26,8 @@ module IsoDoc
|
|
27
26
|
def extract_languages(nodeset)
|
28
27
|
lgs = []
|
29
28
|
nodeset.each do |l|
|
30
|
-
l && ISO_639
|
31
|
-
lgs << ISO_639.find(l.text).english_name
|
29
|
+
l && ISO_639.find(l.text)&.english_name and
|
30
|
+
lgs << ISO_639.find(l.text).english_name
|
32
31
|
end
|
33
32
|
lgs.map { |l| l == "Spanish; Castilian" ? "Spanish" : l }
|
34
33
|
end
|
@@ -36,7 +35,7 @@ module IsoDoc
|
|
36
35
|
def author(isoxml, _out)
|
37
36
|
tc = isoxml.at(ns("//bibdata/ext/editorialgroup/committee"))
|
38
37
|
set(:tc, tc.text) if tc
|
39
|
-
set(:distribution, isoxml
|
38
|
+
set(:distribution, isoxml.at(ns("//bibdata/ext/distribution"))&.text)
|
40
39
|
lgs = extract_languages(isoxml.xpath(ns("//bibdata/language")))
|
41
40
|
lgs.sort == %w(English French Arabic Chinese Russian Spanish).sort and
|
42
41
|
lgs = []
|
@@ -56,23 +55,23 @@ module IsoDoc
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def session(isoxml, _out)
|
59
|
-
set(:session_number, isoxml
|
60
|
-
text&.to_i&.localize
|
61
|
-
to_rbnf_s("SpelloutRules", "spellout-ordinal")&.capitalize)
|
62
|
-
set(:session_date, isoxml
|
58
|
+
set(:session_number, isoxml.at(ns("//bibdata/ext/session/number"))
|
59
|
+
&.text&.to_i&.localize
|
60
|
+
&.to_rbnf_s("SpelloutRules", "spellout-ordinal")&.capitalize)
|
61
|
+
set(:session_date, isoxml.at(ns("//bibdata/ext/session/date"))&.text)
|
63
62
|
set(:session_collaborator,
|
64
|
-
isoxml
|
65
|
-
sid = isoxml
|
63
|
+
isoxml.at(ns("//bibdata/ext/session/collaborator"))&.text)
|
64
|
+
sid = isoxml.at(ns("//bibdata/ext/session/id"))&.text
|
66
65
|
set(:session_id, sid)
|
67
66
|
set(:session_id_head, sid&.sub(%r{/.*$}, ""))
|
68
67
|
set(:session_id_tail, sid&.sub(%r{^[^/]+}, ""))
|
69
|
-
set(:item_footnote,
|
70
|
-
isoxml
|
71
|
-
set(:session_itemnumber,
|
68
|
+
set(:item_footnote,
|
69
|
+
isoxml.at(ns("//bibdata/ext/session/item-footnote"))&.text)
|
70
|
+
set(:session_itemnumber,
|
72
71
|
multival(isoxml, "//bibdata/ext/session/item-number"))
|
73
|
-
set(:session_itemname,
|
72
|
+
set(:session_itemname,
|
74
73
|
multival(isoxml, "//bibdata/ext/session/item-name"))
|
75
|
-
set(:session_subitemname,
|
74
|
+
set(:session_subitemname,
|
76
75
|
multival(isoxml, "//bibdata/ext/session/subitem-name"))
|
77
76
|
end
|
78
77
|
|
@@ -80,8 +79,8 @@ module IsoDoc
|
|
80
79
|
dn = isoxml.at(ns("//bibdata/docidentifier"))&.text
|
81
80
|
set(:docnumber, dn)
|
82
81
|
type = isoxml&.at(ns("//bibdata/ext/doctype"))&.text
|
83
|
-
set(:formatted_docnumber,
|
84
|
-
"UN/CEFACT Recommendation #{dn}" : dn)
|
82
|
+
set(:formatted_docnumber,
|
83
|
+
type == "recommendation" ? "UN/CEFACT Recommendation #{dn}" : dn)
|
85
84
|
end
|
86
85
|
|
87
86
|
def stage_abbr(status)
|
@@ -6542,6 +6542,18 @@
|
|
6542
6542
|
</xsl:copy>
|
6543
6543
|
</xsl:template>
|
6544
6544
|
|
6545
|
+
<xsl:template match="*[local-name() = 'sub']" mode="contents_item">
|
6546
|
+
<xsl:copy>
|
6547
|
+
<xsl:apply-templates mode="contents_item"/>
|
6548
|
+
</xsl:copy>
|
6549
|
+
</xsl:template>
|
6550
|
+
|
6551
|
+
<xsl:template match="*[local-name() = 'sup']" mode="contents_item">
|
6552
|
+
<xsl:copy>
|
6553
|
+
<xsl:apply-templates mode="contents_item"/>
|
6554
|
+
</xsl:copy>
|
6555
|
+
</xsl:template>
|
6556
|
+
|
6545
6557
|
<xsl:template match="*[local-name() = 'stem']" mode="contents_item">
|
6546
6558
|
<xsl:copy-of select="."/>
|
6547
6559
|
</xsl:template>
|
@@ -7491,7 +7503,7 @@
|
|
7491
7503
|
<!-- ====== -->
|
7492
7504
|
<!-- eref -->
|
7493
7505
|
<!-- ====== -->
|
7494
|
-
<xsl:template match="*[local-name() = 'eref']">
|
7506
|
+
<xsl:template match="*[local-name() = 'eref']" name="eref">
|
7495
7507
|
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
7496
7508
|
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
7497
7509
|
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
@@ -7992,21 +8004,29 @@
|
|
7992
8004
|
</xsl:variable>
|
7993
8005
|
|
7994
8006
|
<xsl:template match="@*|node()" mode="index_add_id">
|
8007
|
+
<xsl:param name="docid"/>
|
7995
8008
|
<xsl:copy>
|
7996
|
-
|
8009
|
+
<xsl:apply-templates select="@*|node()" mode="index_add_id">
|
8010
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8011
|
+
</xsl:apply-templates>
|
7997
8012
|
</xsl:copy>
|
7998
8013
|
</xsl:template>
|
7999
8014
|
|
8000
8015
|
<xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
|
8016
|
+
<xsl:param name="docid"/>
|
8001
8017
|
<xsl:variable name="id">
|
8002
|
-
<xsl:call-template name="generateIndexXrefId"
|
8018
|
+
<xsl:call-template name="generateIndexXrefId">
|
8019
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8020
|
+
</xsl:call-template>
|
8003
8021
|
</xsl:variable>
|
8004
8022
|
<xsl:copy> <!-- add id to xref -->
|
8005
8023
|
<xsl:apply-templates select="@*" mode="index_add_id"/>
|
8006
8024
|
<xsl:attribute name="id">
|
8007
8025
|
<xsl:value-of select="$id"/>
|
8008
8026
|
</xsl:attribute>
|
8009
|
-
<xsl:apply-templates mode="index_add_id"
|
8027
|
+
<xsl:apply-templates mode="index_add_id">
|
8028
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8029
|
+
</xsl:apply-templates>
|
8010
8030
|
</xsl:copy>
|
8011
8031
|
<!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
|
8012
8032
|
<xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
|
@@ -8018,7 +8038,9 @@
|
|
8018
8038
|
<xsl:attribute name="id">
|
8019
8039
|
<xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
|
8020
8040
|
</xsl:attribute>
|
8021
|
-
<xsl:apply-templates mode="index_add_id"
|
8041
|
+
<xsl:apply-templates mode="index_add_id">
|
8042
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8043
|
+
</xsl:apply-templates>
|
8022
8044
|
</xsl:copy>
|
8023
8045
|
</xsl:if>
|
8024
8046
|
</xsl:template>
|
@@ -8055,12 +8077,33 @@
|
|
8055
8077
|
</xsl:when>
|
8056
8078
|
<xsl:when test="self::* and local-name(.) = 'xref'">
|
8057
8079
|
<xsl:variable name="id" select="@id"/>
|
8058
|
-
<xsl:variable name="page" select="$index//item[@id = $id]"/>
|
8059
|
-
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8060
|
-
<xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
|
8061
8080
|
|
8081
|
+
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8062
8082
|
<xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8063
|
-
|
8083
|
+
|
8084
|
+
<xsl:variable name="pages_">
|
8085
|
+
<xsl:for-each select="$index/index/item[@id = $id or @id = $id_next or @id = $id_prev]">
|
8086
|
+
<xsl:choose>
|
8087
|
+
<xsl:when test="@id = $id">
|
8088
|
+
<page><xsl:value-of select="."/></page>
|
8089
|
+
</xsl:when>
|
8090
|
+
<xsl:when test="@id = $id_next">
|
8091
|
+
<page_next><xsl:value-of select="."/></page_next>
|
8092
|
+
</xsl:when>
|
8093
|
+
<xsl:when test="@id = $id_prev">
|
8094
|
+
<page_prev><xsl:value-of select="."/></page_prev>
|
8095
|
+
</xsl:when>
|
8096
|
+
</xsl:choose>
|
8097
|
+
</xsl:for-each>
|
8098
|
+
</xsl:variable>
|
8099
|
+
<xsl:variable name="pages" select="xalan:nodeset($pages_)"/>
|
8100
|
+
|
8101
|
+
<!-- <xsl:variable name="page" select="$index/index/item[@id = $id]"/> -->
|
8102
|
+
<xsl:variable name="page" select="$pages/page"/>
|
8103
|
+
<!-- <xsl:variable name="page_next" select="$index/index/item[@id = $id_next]"/> -->
|
8104
|
+
<xsl:variable name="page_next" select="$pages/page_next"/>
|
8105
|
+
<!-- <xsl:variable name="page_prev" select="$index/index/item[@id = $id_prev]"/> -->
|
8106
|
+
<xsl:variable name="page_prev" select="$pages/page_prev"/>
|
8064
8107
|
|
8065
8108
|
<xsl:choose>
|
8066
8109
|
<!-- 2nd pass -->
|
@@ -8120,16 +8163,20 @@
|
|
8120
8163
|
</xsl:template>
|
8121
8164
|
|
8122
8165
|
<xsl:template name="generateIndexXrefId">
|
8166
|
+
<xsl:param name="docid"/>
|
8167
|
+
|
8123
8168
|
<xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
|
8124
8169
|
|
8125
|
-
<xsl:variable name="
|
8126
|
-
<xsl:
|
8170
|
+
<xsl:variable name="docid_curr">
|
8171
|
+
<xsl:value-of select="$docid"/>
|
8172
|
+
<xsl:if test="normalize-space($docid) = ''"><xsl:call-template name="getDocumentId"/></xsl:if>
|
8127
8173
|
</xsl:variable>
|
8174
|
+
|
8128
8175
|
<xsl:variable name="item_number">
|
8129
8176
|
<xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
|
8130
8177
|
</xsl:variable>
|
8131
8178
|
<xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
|
8132
|
-
<xsl:value-of select="concat($
|
8179
|
+
<xsl:value-of select="concat($docid_curr, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
|
8133
8180
|
</xsl:template>
|
8134
8181
|
|
8135
8182
|
<xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
|
@@ -6542,6 +6542,18 @@
|
|
6542
6542
|
</xsl:copy>
|
6543
6543
|
</xsl:template>
|
6544
6544
|
|
6545
|
+
<xsl:template match="*[local-name() = 'sub']" mode="contents_item">
|
6546
|
+
<xsl:copy>
|
6547
|
+
<xsl:apply-templates mode="contents_item"/>
|
6548
|
+
</xsl:copy>
|
6549
|
+
</xsl:template>
|
6550
|
+
|
6551
|
+
<xsl:template match="*[local-name() = 'sup']" mode="contents_item">
|
6552
|
+
<xsl:copy>
|
6553
|
+
<xsl:apply-templates mode="contents_item"/>
|
6554
|
+
</xsl:copy>
|
6555
|
+
</xsl:template>
|
6556
|
+
|
6545
6557
|
<xsl:template match="*[local-name() = 'stem']" mode="contents_item">
|
6546
6558
|
<xsl:copy-of select="."/>
|
6547
6559
|
</xsl:template>
|
@@ -7491,7 +7503,7 @@
|
|
7491
7503
|
<!-- ====== -->
|
7492
7504
|
<!-- eref -->
|
7493
7505
|
<!-- ====== -->
|
7494
|
-
<xsl:template match="*[local-name() = 'eref']">
|
7506
|
+
<xsl:template match="*[local-name() = 'eref']" name="eref">
|
7495
7507
|
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
7496
7508
|
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
7497
7509
|
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
@@ -7992,21 +8004,29 @@
|
|
7992
8004
|
</xsl:variable>
|
7993
8005
|
|
7994
8006
|
<xsl:template match="@*|node()" mode="index_add_id">
|
8007
|
+
<xsl:param name="docid"/>
|
7995
8008
|
<xsl:copy>
|
7996
|
-
|
8009
|
+
<xsl:apply-templates select="@*|node()" mode="index_add_id">
|
8010
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8011
|
+
</xsl:apply-templates>
|
7997
8012
|
</xsl:copy>
|
7998
8013
|
</xsl:template>
|
7999
8014
|
|
8000
8015
|
<xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
|
8016
|
+
<xsl:param name="docid"/>
|
8001
8017
|
<xsl:variable name="id">
|
8002
|
-
<xsl:call-template name="generateIndexXrefId"
|
8018
|
+
<xsl:call-template name="generateIndexXrefId">
|
8019
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8020
|
+
</xsl:call-template>
|
8003
8021
|
</xsl:variable>
|
8004
8022
|
<xsl:copy> <!-- add id to xref -->
|
8005
8023
|
<xsl:apply-templates select="@*" mode="index_add_id"/>
|
8006
8024
|
<xsl:attribute name="id">
|
8007
8025
|
<xsl:value-of select="$id"/>
|
8008
8026
|
</xsl:attribute>
|
8009
|
-
<xsl:apply-templates mode="index_add_id"
|
8027
|
+
<xsl:apply-templates mode="index_add_id">
|
8028
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8029
|
+
</xsl:apply-templates>
|
8010
8030
|
</xsl:copy>
|
8011
8031
|
<!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
|
8012
8032
|
<xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
|
@@ -8018,7 +8038,9 @@
|
|
8018
8038
|
<xsl:attribute name="id">
|
8019
8039
|
<xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
|
8020
8040
|
</xsl:attribute>
|
8021
|
-
<xsl:apply-templates mode="index_add_id"
|
8041
|
+
<xsl:apply-templates mode="index_add_id">
|
8042
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8043
|
+
</xsl:apply-templates>
|
8022
8044
|
</xsl:copy>
|
8023
8045
|
</xsl:if>
|
8024
8046
|
</xsl:template>
|
@@ -8055,12 +8077,33 @@
|
|
8055
8077
|
</xsl:when>
|
8056
8078
|
<xsl:when test="self::* and local-name(.) = 'xref'">
|
8057
8079
|
<xsl:variable name="id" select="@id"/>
|
8058
|
-
<xsl:variable name="page" select="$index//item[@id = $id]"/>
|
8059
|
-
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8060
|
-
<xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
|
8061
8080
|
|
8081
|
+
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8062
8082
|
<xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8063
|
-
|
8083
|
+
|
8084
|
+
<xsl:variable name="pages_">
|
8085
|
+
<xsl:for-each select="$index/index/item[@id = $id or @id = $id_next or @id = $id_prev]">
|
8086
|
+
<xsl:choose>
|
8087
|
+
<xsl:when test="@id = $id">
|
8088
|
+
<page><xsl:value-of select="."/></page>
|
8089
|
+
</xsl:when>
|
8090
|
+
<xsl:when test="@id = $id_next">
|
8091
|
+
<page_next><xsl:value-of select="."/></page_next>
|
8092
|
+
</xsl:when>
|
8093
|
+
<xsl:when test="@id = $id_prev">
|
8094
|
+
<page_prev><xsl:value-of select="."/></page_prev>
|
8095
|
+
</xsl:when>
|
8096
|
+
</xsl:choose>
|
8097
|
+
</xsl:for-each>
|
8098
|
+
</xsl:variable>
|
8099
|
+
<xsl:variable name="pages" select="xalan:nodeset($pages_)"/>
|
8100
|
+
|
8101
|
+
<!-- <xsl:variable name="page" select="$index/index/item[@id = $id]"/> -->
|
8102
|
+
<xsl:variable name="page" select="$pages/page"/>
|
8103
|
+
<!-- <xsl:variable name="page_next" select="$index/index/item[@id = $id_next]"/> -->
|
8104
|
+
<xsl:variable name="page_next" select="$pages/page_next"/>
|
8105
|
+
<!-- <xsl:variable name="page_prev" select="$index/index/item[@id = $id_prev]"/> -->
|
8106
|
+
<xsl:variable name="page_prev" select="$pages/page_prev"/>
|
8064
8107
|
|
8065
8108
|
<xsl:choose>
|
8066
8109
|
<!-- 2nd pass -->
|
@@ -8120,16 +8163,20 @@
|
|
8120
8163
|
</xsl:template>
|
8121
8164
|
|
8122
8165
|
<xsl:template name="generateIndexXrefId">
|
8166
|
+
<xsl:param name="docid"/>
|
8167
|
+
|
8123
8168
|
<xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
|
8124
8169
|
|
8125
|
-
<xsl:variable name="
|
8126
|
-
<xsl:
|
8170
|
+
<xsl:variable name="docid_curr">
|
8171
|
+
<xsl:value-of select="$docid"/>
|
8172
|
+
<xsl:if test="normalize-space($docid) = ''"><xsl:call-template name="getDocumentId"/></xsl:if>
|
8127
8173
|
</xsl:variable>
|
8174
|
+
|
8128
8175
|
<xsl:variable name="item_number">
|
8129
8176
|
<xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
|
8130
8177
|
</xsl:variable>
|
8131
8178
|
<xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
|
8132
|
-
<xsl:value-of select="concat($
|
8179
|
+
<xsl:value-of select="concat($docid_curr, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
|
8133
8180
|
</xsl:template>
|
8134
8181
|
|
8135
8182
|
<xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
|
@@ -6622,6 +6622,18 @@
|
|
6622
6622
|
</xsl:copy>
|
6623
6623
|
</xsl:template>
|
6624
6624
|
|
6625
|
+
<xsl:template match="*[local-name() = 'sub']" mode="contents_item">
|
6626
|
+
<xsl:copy>
|
6627
|
+
<xsl:apply-templates mode="contents_item"/>
|
6628
|
+
</xsl:copy>
|
6629
|
+
</xsl:template>
|
6630
|
+
|
6631
|
+
<xsl:template match="*[local-name() = 'sup']" mode="contents_item">
|
6632
|
+
<xsl:copy>
|
6633
|
+
<xsl:apply-templates mode="contents_item"/>
|
6634
|
+
</xsl:copy>
|
6635
|
+
</xsl:template>
|
6636
|
+
|
6625
6637
|
<xsl:template match="*[local-name() = 'stem']" mode="contents_item">
|
6626
6638
|
<xsl:copy-of select="."/>
|
6627
6639
|
</xsl:template>
|
@@ -7571,7 +7583,7 @@
|
|
7571
7583
|
<!-- ====== -->
|
7572
7584
|
<!-- eref -->
|
7573
7585
|
<!-- ====== -->
|
7574
|
-
<xsl:template match="*[local-name() = 'eref']">
|
7586
|
+
<xsl:template match="*[local-name() = 'eref']" name="eref">
|
7575
7587
|
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
7576
7588
|
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
7577
7589
|
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
@@ -8072,21 +8084,29 @@
|
|
8072
8084
|
</xsl:variable>
|
8073
8085
|
|
8074
8086
|
<xsl:template match="@*|node()" mode="index_add_id">
|
8087
|
+
<xsl:param name="docid"/>
|
8075
8088
|
<xsl:copy>
|
8076
|
-
|
8089
|
+
<xsl:apply-templates select="@*|node()" mode="index_add_id">
|
8090
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8091
|
+
</xsl:apply-templates>
|
8077
8092
|
</xsl:copy>
|
8078
8093
|
</xsl:template>
|
8079
8094
|
|
8080
8095
|
<xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
|
8096
|
+
<xsl:param name="docid"/>
|
8081
8097
|
<xsl:variable name="id">
|
8082
|
-
<xsl:call-template name="generateIndexXrefId"
|
8098
|
+
<xsl:call-template name="generateIndexXrefId">
|
8099
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8100
|
+
</xsl:call-template>
|
8083
8101
|
</xsl:variable>
|
8084
8102
|
<xsl:copy> <!-- add id to xref -->
|
8085
8103
|
<xsl:apply-templates select="@*" mode="index_add_id"/>
|
8086
8104
|
<xsl:attribute name="id">
|
8087
8105
|
<xsl:value-of select="$id"/>
|
8088
8106
|
</xsl:attribute>
|
8089
|
-
<xsl:apply-templates mode="index_add_id"
|
8107
|
+
<xsl:apply-templates mode="index_add_id">
|
8108
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8109
|
+
</xsl:apply-templates>
|
8090
8110
|
</xsl:copy>
|
8091
8111
|
<!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
|
8092
8112
|
<xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
|
@@ -8098,7 +8118,9 @@
|
|
8098
8118
|
<xsl:attribute name="id">
|
8099
8119
|
<xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
|
8100
8120
|
</xsl:attribute>
|
8101
|
-
<xsl:apply-templates mode="index_add_id"
|
8121
|
+
<xsl:apply-templates mode="index_add_id">
|
8122
|
+
<xsl:with-param name="docid" select="$docid"/>
|
8123
|
+
</xsl:apply-templates>
|
8102
8124
|
</xsl:copy>
|
8103
8125
|
</xsl:if>
|
8104
8126
|
</xsl:template>
|
@@ -8135,12 +8157,33 @@
|
|
8135
8157
|
</xsl:when>
|
8136
8158
|
<xsl:when test="self::* and local-name(.) = 'xref'">
|
8137
8159
|
<xsl:variable name="id" select="@id"/>
|
8138
|
-
<xsl:variable name="page" select="$index//item[@id = $id]"/>
|
8139
|
-
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8140
|
-
<xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
|
8141
8160
|
|
8161
|
+
<xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8142
8162
|
<xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
|
8143
|
-
|
8163
|
+
|
8164
|
+
<xsl:variable name="pages_">
|
8165
|
+
<xsl:for-each select="$index/index/item[@id = $id or @id = $id_next or @id = $id_prev]">
|
8166
|
+
<xsl:choose>
|
8167
|
+
<xsl:when test="@id = $id">
|
8168
|
+
<page><xsl:value-of select="."/></page>
|
8169
|
+
</xsl:when>
|
8170
|
+
<xsl:when test="@id = $id_next">
|
8171
|
+
<page_next><xsl:value-of select="."/></page_next>
|
8172
|
+
</xsl:when>
|
8173
|
+
<xsl:when test="@id = $id_prev">
|
8174
|
+
<page_prev><xsl:value-of select="."/></page_prev>
|
8175
|
+
</xsl:when>
|
8176
|
+
</xsl:choose>
|
8177
|
+
</xsl:for-each>
|
8178
|
+
</xsl:variable>
|
8179
|
+
<xsl:variable name="pages" select="xalan:nodeset($pages_)"/>
|
8180
|
+
|
8181
|
+
<!-- <xsl:variable name="page" select="$index/index/item[@id = $id]"/> -->
|
8182
|
+
<xsl:variable name="page" select="$pages/page"/>
|
8183
|
+
<!-- <xsl:variable name="page_next" select="$index/index/item[@id = $id_next]"/> -->
|
8184
|
+
<xsl:variable name="page_next" select="$pages/page_next"/>
|
8185
|
+
<!-- <xsl:variable name="page_prev" select="$index/index/item[@id = $id_prev]"/> -->
|
8186
|
+
<xsl:variable name="page_prev" select="$pages/page_prev"/>
|
8144
8187
|
|
8145
8188
|
<xsl:choose>
|
8146
8189
|
<!-- 2nd pass -->
|
@@ -8200,16 +8243,20 @@
|
|
8200
8243
|
</xsl:template>
|
8201
8244
|
|
8202
8245
|
<xsl:template name="generateIndexXrefId">
|
8246
|
+
<xsl:param name="docid"/>
|
8247
|
+
|
8203
8248
|
<xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
|
8204
8249
|
|
8205
|
-
<xsl:variable name="
|
8206
|
-
<xsl:
|
8250
|
+
<xsl:variable name="docid_curr">
|
8251
|
+
<xsl:value-of select="$docid"/>
|
8252
|
+
<xsl:if test="normalize-space($docid) = ''"><xsl:call-template name="getDocumentId"/></xsl:if>
|
8207
8253
|
</xsl:variable>
|
8254
|
+
|
8208
8255
|
<xsl:variable name="item_number">
|
8209
8256
|
<xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
|
8210
8257
|
</xsl:variable>
|
8211
8258
|
<xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
|
8212
|
-
<xsl:value-of select="concat($
|
8259
|
+
<xsl:value-of select="concat($docid_curr, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
|
8213
8260
|
</xsl:template>
|
8214
8261
|
|
8215
8262
|
<xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
|
data/lib/isodoc/un/xref.rb
CHANGED
@@ -25,6 +25,15 @@ module IsoDoc
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
def asset_anchor_names(doc)
|
29
|
+
super
|
30
|
+
@parse_settings.empty? or return
|
31
|
+
sequential_asset_names(
|
32
|
+
doc.xpath(ns("//preface/abstract | //foreword | //introduction | "\
|
33
|
+
"//preface/clause | //acknowledgements")),
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
28
37
|
def clause_names(docxml, _sect_num)
|
29
38
|
q = "//clause[parent::sections]"
|
30
39
|
@paranumber = 0
|
data/lib/metanorma/un/biblio.rng
CHANGED
@@ -73,8 +73,14 @@
|
|
73
73
|
<text/>
|
74
74
|
</element>
|
75
75
|
</define>
|
76
|
-
<define name="
|
76
|
+
<define name="locale">
|
77
77
|
<a:documentation>ISO-639</a:documentation>
|
78
|
+
<element name="locale">
|
79
|
+
<text/>
|
80
|
+
</element>
|
81
|
+
</define>
|
82
|
+
<define name="script">
|
83
|
+
<a:documentation>ISO-3166</a:documentation>
|
78
84
|
<element name="script">
|
79
85
|
<text/>
|
80
86
|
</element>
|
@@ -93,6 +99,9 @@
|
|
93
99
|
<!-- multiple languages and scripts possible: comma delimit them if so -->
|
94
100
|
<attribute name="language"/>
|
95
101
|
</optional>
|
102
|
+
<optional>
|
103
|
+
<attribute name="locale"/>
|
104
|
+
</optional>
|
96
105
|
<optional>
|
97
106
|
<attribute name="script"/>
|
98
107
|
</optional>
|
@@ -136,6 +145,9 @@
|
|
136
145
|
<!-- multiple languages and scripts possible: comma delimit them if so -->
|
137
146
|
<attribute name="language"/>
|
138
147
|
</optional>
|
148
|
+
<optional>
|
149
|
+
<attribute name="locale"/>
|
150
|
+
</optional>
|
139
151
|
<optional>
|
140
152
|
<attribute name="script"/>
|
141
153
|
</optional>
|
@@ -650,6 +662,9 @@
|
|
650
662
|
<zeroOrMore>
|
651
663
|
<ref name="language"/>
|
652
664
|
</zeroOrMore>
|
665
|
+
<zeroOrMore>
|
666
|
+
<ref name="locale"/>
|
667
|
+
</zeroOrMore>
|
653
668
|
<zeroOrMore>
|
654
669
|
<ref name="script"/>
|
655
670
|
</zeroOrMore>
|
@@ -741,6 +756,9 @@
|
|
741
756
|
<zeroOrMore>
|
742
757
|
<ref name="language"/>
|
743
758
|
</zeroOrMore>
|
759
|
+
<zeroOrMore>
|
760
|
+
<ref name="locale"/>
|
761
|
+
</zeroOrMore>
|
744
762
|
<zeroOrMore>
|
745
763
|
<ref name="script"/>
|
746
764
|
</zeroOrMore>
|
@@ -854,6 +872,15 @@
|
|
854
872
|
<optional>
|
855
873
|
<attribute name="type"/>
|
856
874
|
</optional>
|
875
|
+
<optional>
|
876
|
+
<attribute name="language"/>
|
877
|
+
</optional>
|
878
|
+
<optional>
|
879
|
+
<attribute name="locale"/>
|
880
|
+
</optional>
|
881
|
+
<optional>
|
882
|
+
<attribute name="script"/>
|
883
|
+
</optional>
|
857
884
|
<data type="anyURI"/>
|
858
885
|
</define>
|
859
886
|
<define name="DateType">
|
@@ -882,6 +909,7 @@
|
|
882
909
|
<value>vote-started</value>
|
883
910
|
<value>vote-ended</value>
|
884
911
|
<value>announced</value>
|
912
|
+
<value>stable-until</value>
|
885
913
|
</choice>
|
886
914
|
</define>
|
887
915
|
<define name="bdate">
|
@@ -930,6 +958,9 @@
|
|
930
958
|
<optional>
|
931
959
|
<attribute name="language"/>
|
932
960
|
</optional>
|
961
|
+
<optional>
|
962
|
+
<attribute name="locale"/>
|
963
|
+
</optional>
|
933
964
|
<optional>
|
934
965
|
<attribute name="script"/>
|
935
966
|
</optional>
|
@@ -51,7 +51,7 @@ module Metanorma
|
|
51
51
|
def metadata_id(node, xml)
|
52
52
|
dn = node.attr("docnumber")
|
53
53
|
if docstatus = node.attr("status")
|
54
|
-
abbr = IsoDoc::UN::Metadata.new("en", "Latn", @i18n)
|
54
|
+
abbr = IsoDoc::UN::Metadata.new("en", "Latn", "", @i18n)
|
55
55
|
.stage_abbr(docstatus)
|
56
56
|
dn = "#{dn}(#{abbr})" unless abbr.empty?
|
57
57
|
end
|
@@ -67,13 +67,13 @@ module Metanorma
|
|
67
67
|
xml.session do |session|
|
68
68
|
session.number node.attr("session") if node.attr("session")
|
69
69
|
session.date node.attr("session-date") if node.attr("session-date")
|
70
|
-
node
|
70
|
+
node.attr("item-number")&.split(/, */)&.each do |i|
|
71
71
|
session.item_number i
|
72
72
|
end
|
73
|
-
node
|
73
|
+
node.attr("item-name")&.split(/, */)&.each do |i|
|
74
74
|
session.item_name i
|
75
75
|
end
|
76
|
-
node
|
76
|
+
node.attr("subitem-name")&.split(/, */)&.each do |i|
|
77
77
|
session.subitem_name i
|
78
78
|
end
|
79
79
|
node.attr("collaborator") and
|
data/lib/metanorma/un/isodoc.rng
CHANGED
@@ -205,6 +205,15 @@
|
|
205
205
|
<data type="boolean"/>
|
206
206
|
</attribute>
|
207
207
|
</optional>
|
208
|
+
<optional>
|
209
|
+
<attribute name="style">
|
210
|
+
<choice>
|
211
|
+
<value>basic</value>
|
212
|
+
<value>full</value>
|
213
|
+
<value>short</value>
|
214
|
+
</choice>
|
215
|
+
</attribute>
|
216
|
+
</optional>
|
208
217
|
<ref name="XrefBody"/>
|
209
218
|
</element>
|
210
219
|
</define>
|
data/lib/metanorma/un/version.rb
CHANGED
data/metanorma-un.gemspec
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "roman-numerals"
|
31
31
|
spec.add_dependency "twitter_cldr"
|
32
32
|
|
33
|
-
spec.add_dependency "metanorma-standoc", "~> 2.2.
|
33
|
+
spec.add_dependency "metanorma-standoc", "~> 2.2.4"
|
34
34
|
|
35
35
|
spec.add_development_dependency "debug"
|
36
36
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-un
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: iso-639
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.2.
|
61
|
+
version: 2.2.4
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.2.
|
68
|
+
version: 2.2.4
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: debug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|