metanorma-iso 1.10.4 → 1.10.5

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.
@@ -5,32 +5,36 @@ module IsoDoc
5
5
  %(id="_#{UUIDTools::UUID.random_create}")
6
6
  end
7
7
 
8
- def index(docxml)
9
- unless docxml.at(ns("//index"))
10
- docxml.xpath(ns("//indexsect")).each(&:remove)
11
- return
8
+ def index(xml)
9
+ if xml.at(ns("//index"))
10
+ i = xml.at(ns("//indexsect")) ||
11
+ xml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}"\
12
+ "</title></indexsect>").first
13
+ index = sort_indexterms(xml.xpath(ns("//index")),
14
+ xml.xpath(ns("//index-xref[@also = 'false']")),
15
+ xml.xpath(ns("//index-xref[@also = 'true']")))
16
+ index1(xml, i, index)
17
+ else xml.xpath(ns("//indexsect")).each(&:remove)
12
18
  end
13
- i = docxml.at(ns("//indexsect")) ||
14
- docxml.root.add_child("<indexsect #{add_id}><title>#{@i18n.index}</title></indexsect>").first
15
- index = sort_indexterms(docxml.xpath(ns("//index")),
16
- docxml.xpath(ns("//index-xref[@also = 'false']")),
17
- docxml.xpath(ns("//index-xref[@also = 'true']")))
18
- index1(docxml, i, index)
19
19
  end
20
20
 
21
- def index1(docxml, i, index)
22
- c = i.add_child("<ul></ul>").first
21
+ def index1(docxml, indexsect, index)
22
+ c = indexsect.add_child("<ul></ul>").first
23
23
  index.keys.sort.each do |k|
24
- # c = i.add_child "<clause #{add_id}><title>#{k}</title><ul></ul></clause>"
25
24
  words = index[k].keys.each_with_object({}) do |w, v|
26
25
  v[sortable(w).downcase] = w
27
26
  end
28
27
  words.keys.localize(@lang.to_sym).sort.to_a.each do |w|
29
- # c.first.at(ns("./ul")).add_child index_entries(words, index[k], w)
30
28
  c.add_child index_entries(words, index[k], w)
31
29
  end
32
30
  end
33
- docxml.xpath(ns("//indexsect//xref")).each { |x| x.children.remove }
31
+ index1_cleanup(docxml)
32
+ end
33
+
34
+ def index1_cleanup(docxml)
35
+ docxml.xpath(ns("//indexsect//xref")).each do |x|
36
+ x.children.remove
37
+ end
34
38
  @xrefs.bookmark_anchor_names(docxml)
35
39
  end
36
40
 
@@ -56,7 +60,7 @@ module IsoDoc
56
60
  end
57
61
  ret += "</ul>"
58
62
  end
59
- ret + "</li>"
63
+ "#{ret}</li>"
60
64
  end
61
65
 
62
66
  def index_entries2(words, index, secondary)
@@ -75,30 +79,29 @@ module IsoDoc
75
79
  end
76
80
  ret += "</ul>"
77
81
  end
78
- ret + "</li>"
82
+ "#{ret}</li>"
79
83
  end
80
84
 
81
85
  def index_entries_head(head, entries, opt)
82
86
  ret = "<li>#{head}"
83
87
  xref = entries&.dig(:xref)&.join(", ")
84
- see_sort = entries&.dig(:see)&.each_with_object({}) do |w, v|
85
- v[sortable(w).downcase] = w
86
- end
87
- see = see_sort&.keys&.localize(@lang.to_sym)&.sort&.to_a&.map do |k|
88
- see_sort[k]
89
- end&.join(", ")
90
- also_sort = entries&.dig(:also)&.each_with_object({}) do |w, v|
91
- v[sortable(w).downcase] = w
92
- end
93
- also = also_sort&.keys&.localize(@lang.to_sym)&.sort&.to_a&.map do |k|
94
- also_sort[k]
95
- end&.join(", ")
88
+ see = index_entries_see(entries, :see)
89
+ also = index_entries_see(entries, :also)
96
90
  ret += "#{opt[:xref_lbl]} #{xref}" if xref
97
91
  ret += "#{opt[:see_lbl]} #{see}" if see
98
92
  ret += "#{opt[:also_lbl]} #{also}" if also
99
93
  ret
100
94
  end
101
95
 
96
+ def index_entries_see(entries, label)
97
+ see_sort = entries&.dig(label)&.each_with_object({}) do |w, v|
98
+ v[sortable(w).downcase] = w
99
+ end
100
+ see_sort&.keys&.localize(@lang.to_sym)&.sort&.to_a&.map do |k|
101
+ see_sort[k]
102
+ end&.join(", ")
103
+ end
104
+
102
105
  def see_lbl
103
106
  @lang == "en" ? @i18n.see : "<em>#{@i18n.see}</em>"
104
107
  end
@@ -119,13 +122,8 @@ module IsoDoc
119
122
 
120
123
  def extract_indexsee(val, terms, label)
121
124
  terms.each_with_object(val) do |t, v|
122
- term = t&.at(ns("./primary"))&.children&.to_xml
123
- term2 = t&.at(ns("./secondary"))&.children&.to_xml
124
- term3 = t&.at(ns("./tertiary"))&.children&.to_xml
125
- v[term] ||= {}
126
- v[term][term2] ||= {}
127
- v[term][term2][term3] ||= {}
128
- v[term][term2][term3][label] ||= []
125
+ term, term2, term3 = extract_indexterms_init(t)
126
+ term_hash_init(v, term, term2, term3, label)
129
127
  v[term][term2][term3][label] << t&.at(ns("./target"))&.children&.to_xml
130
128
  t.remove
131
129
  end
@@ -138,22 +136,32 @@ module IsoDoc
138
136
  end
139
137
  end
140
138
 
141
- # attributes are decoded into UTF-8, elements in extract_indexsee are still in entities
139
+ # attributes are decoded into UTF-8,
140
+ # elements in extract_indexsee are still in entities
142
141
  def extract_indexterms(terms)
143
142
  terms.each_with_object({}) do |t, v|
144
- term = t&.at(ns("./primary"))&.children&.to_xml
145
- term2 = t&.at(ns("./secondary"))&.children&.to_xml
146
- term3 = t&.at(ns("./tertiary"))&.children&.to_xml
143
+ term, term2, term3 = extract_indexterms_init(t)
147
144
  index2bookmark(t)
148
- v[term] ||= {}
149
- v[term][term2] ||= {}
150
- v[term][term2][term3] ||= {}
151
- v[term][term2][term3][:xref] ||= []
145
+ term_hash_init(v, term, term2, term3, :xref)
152
146
  to = t["to"] ? "to='#{t['to']}' " : ""
153
- v[term][term2][term3][:xref] << "<xref target='#{t['id']}' #{to}pagenumber='true'/>"
147
+ v[term][term2][term3][:xref] << "<xref target='#{t['id']}' "\
148
+ "#{to}pagenumber='true'/>"
149
+ end
150
+ end
151
+
152
+ def extract_indexterms_init(term)
153
+ %w(primary secondary tertiary).each_with_object([]) do |x, m|
154
+ m << term&.at(ns("./#{x}"))&.children&.to_xml
154
155
  end
155
156
  end
156
157
 
158
+ def term_hash_init(hash, term, term2, term3, label)
159
+ hash[term] ||= {}
160
+ hash[term][term2] ||= {}
161
+ hash[term][term2][term3] ||= {}
162
+ hash[term][term2][term3][label] ||= []
163
+ end
164
+
157
165
  def index2bookmark(node)
158
166
  node.name = "bookmark"
159
167
  node.children.each(&:remove)
@@ -1423,7 +1423,9 @@
1423
1423
 
1424
1424
  <xsl:template name="getListItemFormat">
1425
1425
  <xsl:choose>
1426
- <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- dash -->
1426
+ <xsl:when test="local-name(..) = 'ul'">
1427
+ <xsl:call-template name="setULLabel"/>
1428
+ </xsl:when>
1427
1429
  <xsl:otherwise> <!-- for ordered lists -->
1428
1430
  <xsl:choose>
1429
1431
  <xsl:when test="../@type = 'arabic'">
@@ -1545,7 +1547,7 @@
1545
1547
  </xsl:choose>
1546
1548
  </xsl:template>
1547
1549
 
1548
- <xsl:template match="iso:title">
1550
+ <xsl:template match="iso:title" name="title">
1549
1551
 
1550
1552
  <xsl:variable name="level">
1551
1553
  <xsl:call-template name="getLevel"/>
@@ -4482,6 +4484,7 @@
4482
4484
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4483
4485
  <xsl:apply-templates/>
4484
4486
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4487
+ <xsl:apply-templates select="@language"/>
4485
4488
  <xsl:apply-templates/>
4486
4489
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4487
4490
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
@@ -6689,6 +6692,51 @@
6689
6692
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6690
6693
  <!-- 0xA0 to space replacement -->
6691
6694
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
6695
+ </xsl:template><xsl:variable name="ul_labels_">
6696
+
6697
+
6698
+
6699
+
6700
+
6701
+
6702
+
6703
+ <label>—</label> <!-- em dash -->
6704
+
6705
+
6706
+
6707
+
6708
+
6709
+
6710
+
6711
+
6712
+
6713
+
6714
+
6715
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
6716
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6717
+ <xsl:variable name="list_level">
6718
+ <xsl:choose>
6719
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
6720
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
6721
+ </xsl:choose>
6722
+ </xsl:variable>
6723
+ <xsl:choose>
6724
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
6725
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
6726
+ </xsl:when>
6727
+ <xsl:when test="$list_level mod 3 = 0">
6728
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
6729
+ </xsl:when>
6730
+ <xsl:when test="$list_level mod 2 = 0">
6731
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
6732
+ </xsl:when>
6733
+ <xsl:otherwise>
6734
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
6735
+ </xsl:otherwise>
6736
+ </xsl:choose>
6737
+ </xsl:template><xsl:template match="label" mode="ul_labels">
6738
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
6739
+ <xsl:value-of select="."/>
6692
6740
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6693
6741
  <xsl:choose>
6694
6742
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -7168,6 +7216,10 @@
7168
7216
  </svg>
7169
7217
  </fo:instream-foreign-object>
7170
7218
  </fo:inline>
7219
+ </xsl:template><xsl:template match="@language">
7220
+ <xsl:copy-of select="."/>
7221
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
7222
+ <xsl:call-template name="title"/>
7171
7223
  </xsl:template><xsl:template name="convertDate">
7172
7224
  <xsl:param name="date"/>
7173
7225
  <xsl:param name="format" select="'short'"/>
@@ -1423,7 +1423,9 @@
1423
1423
 
1424
1424
  <xsl:template name="getListItemFormat">
1425
1425
  <xsl:choose>
1426
- <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- dash -->
1426
+ <xsl:when test="local-name(..) = 'ul'">
1427
+ <xsl:call-template name="setULLabel"/>
1428
+ </xsl:when>
1427
1429
  <xsl:otherwise> <!-- for ordered lists -->
1428
1430
  <xsl:choose>
1429
1431
  <xsl:when test="../@type = 'arabic'">
@@ -1545,7 +1547,7 @@
1545
1547
  </xsl:choose>
1546
1548
  </xsl:template>
1547
1549
 
1548
- <xsl:template match="iso:title">
1550
+ <xsl:template match="iso:title" name="title">
1549
1551
 
1550
1552
  <xsl:variable name="level">
1551
1553
  <xsl:call-template name="getLevel"/>
@@ -4482,6 +4484,7 @@
4482
4484
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4483
4485
  <xsl:apply-templates/>
4484
4486
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4487
+ <xsl:apply-templates select="@language"/>
4485
4488
  <xsl:apply-templates/>
4486
4489
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4487
4490
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
@@ -6689,6 +6692,51 @@
6689
6692
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6690
6693
  <!-- 0xA0 to space replacement -->
6691
6694
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
6695
+ </xsl:template><xsl:variable name="ul_labels_">
6696
+
6697
+
6698
+
6699
+
6700
+
6701
+
6702
+
6703
+ <label>—</label> <!-- em dash -->
6704
+
6705
+
6706
+
6707
+
6708
+
6709
+
6710
+
6711
+
6712
+
6713
+
6714
+
6715
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
6716
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6717
+ <xsl:variable name="list_level">
6718
+ <xsl:choose>
6719
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
6720
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
6721
+ </xsl:choose>
6722
+ </xsl:variable>
6723
+ <xsl:choose>
6724
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
6725
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
6726
+ </xsl:when>
6727
+ <xsl:when test="$list_level mod 3 = 0">
6728
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
6729
+ </xsl:when>
6730
+ <xsl:when test="$list_level mod 2 = 0">
6731
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
6732
+ </xsl:when>
6733
+ <xsl:otherwise>
6734
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
6735
+ </xsl:otherwise>
6736
+ </xsl:choose>
6737
+ </xsl:template><xsl:template match="label" mode="ul_labels">
6738
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
6739
+ <xsl:value-of select="."/>
6692
6740
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6693
6741
  <xsl:choose>
6694
6742
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -7168,6 +7216,10 @@
7168
7216
  </svg>
7169
7217
  </fo:instream-foreign-object>
7170
7218
  </fo:inline>
7219
+ </xsl:template><xsl:template match="@language">
7220
+ <xsl:copy-of select="."/>
7221
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
7222
+ <xsl:call-template name="title"/>
7171
7223
  </xsl:template><xsl:template name="convertDate">
7172
7224
  <xsl:param name="date"/>
7173
7225
  <xsl:param name="format" select="'short'"/>
@@ -21,9 +21,8 @@ module IsoDoc
21
21
  stage = "DTS" if stage == "DIS"
22
22
  stage = "FDTS" if stage == "FDIS"
23
23
  end
24
- if %w(PWI NWIP WD CD).include?(stage) && iter
24
+ %w(PWI NWIP WD CD).include?(stage) && iter and
25
25
  stage += iter
26
- end
27
26
  stage = "Pre#{stage}" if /^0\./.match?(draft)
28
27
  stage
29
28
  end
@@ -31,20 +30,25 @@ module IsoDoc
31
30
  def docstatus(isoxml, _out)
32
31
  docstatus = isoxml.at(ns("//bibdata/status/stage"))
33
32
  set(:unpublished, false)
34
- if docstatus
35
- set(:stage, docstatus.text)
36
- set(:stage_int, docstatus.text.to_i)
37
- set(:unpublished, unpublished(docstatus.text))
38
- set(:statusabbr, status_abbrev(docstatus["abbreviation"] || "??",
39
- isoxml&.at(ns("//bibdata/status/substage"))&.text,
40
- isoxml&.at(ns("//bibdata/status/iteration"))&.text,
41
- isoxml&.at(ns("//bibdata/version/draft"))&.text,
42
- isoxml&.at(ns("//bibdata/ext/doctype"))&.text))
43
- unpublished(docstatus.text) and
44
- set(:stageabbr, docstatus["abbreviation"])
45
- end
46
33
  revdate = isoxml.at(ns("//bibdata/version/revision-date"))
47
34
  set(:revdate, revdate&.text)
35
+ if docstatus
36
+ docstatus1(isoxml, docstatus)
37
+ end
38
+ end
39
+
40
+ def docstatus1(isoxml, docstatus)
41
+ set(:stage, docstatus.text)
42
+ set(:stage_int, docstatus.text.to_i)
43
+ set(:unpublished, unpublished(docstatus.text))
44
+ set(:statusabbr,
45
+ status_abbrev(docstatus["abbreviation"] || "??",
46
+ isoxml&.at(ns("//bibdata/status/substage"))&.text,
47
+ isoxml&.at(ns("//bibdata/status/iteration"))&.text,
48
+ isoxml&.at(ns("//bibdata/version/draft"))&.text,
49
+ isoxml&.at(ns("//bibdata/ext/doctype"))&.text))
50
+ unpublished(docstatus.text) and
51
+ set(:stageabbr, docstatus["abbreviation"])
48
52
  end
49
53
 
50
54
  def unpublished(status)
@@ -73,8 +77,7 @@ module IsoDoc
73
77
 
74
78
  def amd_label(lang)
75
79
  case lang
76
- when "en" then "AMENDMENT"
77
- when "fr" then "AMENDMENT"
80
+ when "en", "fr" then "AMENDMENT"
78
81
  end
79
82
  end
80
83
 
@@ -183,10 +186,10 @@ module IsoDoc
183
186
  end
184
187
 
185
188
  def tc(xml)
186
- tc_num = xml.at(ns("//bibdata/ext/editorialgroup/technical-committee/@number"))
187
- tc_type = xml.at(ns("//bibdata/ext/editorialgroup/technical-committee/@type"))
188
- &.text || "TC"
189
- if tc_num
189
+ tc_type = xml.at(ns("//bibdata/ext/editorialgroup/technical-committee/"\
190
+ "@type"))&.text || "TC"
191
+ if tc_num = xml.at(ns("//bibdata/ext/editorialgroup/"\
192
+ "technical-committee/@number"))
190
193
  tcid = "#{tc_type} #{tc_num.text}"
191
194
  set(:tc, tcid)
192
195
  set(:editorialgroup, get[:editorialgroup] << tcid)
@@ -195,7 +198,8 @@ module IsoDoc
195
198
 
196
199
  def sc(xml)
197
200
  sc_num = xml.at(ns("//bibdata/ext/editorialgroup/subcommittee/@number"))
198
- sc_type = xml.at(ns("//bibdata/ext/editorialgroup/subcommittee/@type"))&.text || "SC"
201
+ sc_type = xml.at(ns("//bibdata/ext/editorialgroup/subcommittee/"\
202
+ "@type"))&.text || "SC"
199
203
  if sc_num
200
204
  scid = "#{sc_type} #{sc_num.text}"
201
205
  set(:sc, scid)
@@ -205,7 +209,8 @@ module IsoDoc
205
209
 
206
210
  def wg(xml)
207
211
  wg_num = xml.at(ns("//bibdata/ext/editorialgroup/workgroup/@number"))
208
- wg_type = xml.at(ns("//bibdata/ext/editorialgroup/workgroup/@type"))&.text || "WG"
212
+ wg_type = xml.at(ns("//bibdata/ext/editorialgroup/workgroup/"\
213
+ "@type"))&.text || "WG"
209
214
  if wg_num
210
215
  wgid = "#{wg_type} #{wg_num.text}"
211
216
  set(:wg, wgid)
@@ -113,28 +113,29 @@ module IsoDoc
113
113
  end
114
114
 
115
115
  def concept(docxml)
116
- docxml.xpath(ns("//term//concept")).each_with_object({}) do |f, m|
117
- concept_term(f, m)
118
- end
116
+ concept_term(docxml)
119
117
  docxml.xpath(ns("//concept")).each do |node|
120
- concept_render(node, ital: node["ital"] || "false",
121
- ref: node["ref"] || "false",
122
- linkref: node["linkref"] || "true",
123
- linkmention: node["linkmention"] || "false")
118
+ concept_render(node, ital: "false", ref: "false",
119
+ linkref: "true", linkmention: "false")
120
+ end
121
+ end
122
+
123
+ def concept_term(docxml)
124
+ docxml.xpath(ns("//term")).each do |f|
125
+ m = {}
126
+ f.xpath(ns(".//concept")).each do |c|
127
+ concept_term1(c, m)
128
+ end
124
129
  end
125
130
  end
126
131
 
127
- def concept_term(node, seen)
132
+ def concept_term1(node, seen)
128
133
  term = node&.at(ns("./refterm"))&.to_xml
129
134
  if term && seen[term]
130
- concept_render(node, ital: node["ital"] || "false",
131
- ref: node["ref"] || "false",
132
- linkref: node["linkref"] || "true",
133
- linkmention: node["linkmention"] || "false")
134
- else concept_render(node, ital: node["ital"] || "true",
135
- ref: node["ref"] || "true",
136
- linkref: node["linkref"] || "true",
137
- linkmention: node["linkmention"] || "false")
135
+ concept_render(node, ital: "false", ref: "false",
136
+ linkref: "true", linkmention: "false")
137
+ else concept_render(node, ital: "true", ref: "true",
138
+ linkref: "true", linkmention: "false")
138
139
  end
139
140
  seen[term] = true if term
140
141
  seen
@@ -184,6 +185,30 @@ module IsoDoc
184
185
  "&#x3c;#{d.remove.children.to_xml}&#x3e; "
185
186
  end
186
187
 
188
+ def insertall_after_here(node, insert, name)
189
+ node.children.each do |n|
190
+ next unless n.name == name
191
+
192
+ insert.next = n.remove
193
+ insert = n
194
+ end
195
+ insert
196
+ end
197
+
198
+ def termexamples_before_termnotes(node)
199
+ return unless insert = node.at(ns("./definition"))
200
+
201
+ insert = insertall_after_here(node, insert, "termexample")
202
+ insertall_after_here(node, insert, "termnote")
203
+ end
204
+
205
+ def terms(docxml)
206
+ docxml.xpath(ns("//term[termnote][termexample]")).each do |node|
207
+ termexamples_before_termnotes(node)
208
+ end
209
+ super
210
+ end
211
+
187
212
  include Init
188
213
  end
189
214
  end
@@ -20,10 +20,8 @@ module IsoDoc
20
20
  end
21
21
  FileUtils.rm_rf dir
22
22
  MnConvert.convert(in_fname,
23
- {
24
- input_format: MnConvert::InputFormat::MN,
25
- output_file: out_fname || "#{filename}.#{@suffix}",
26
- })
23
+ { input_format: MnConvert::InputFormat::MN,
24
+ output_file: out_fname || "#{filename}.#{@suffix}" })
27
25
  end
28
26
  end
29
27
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.10.4".freeze
3
+ VERSION = "1.10.5".freeze
4
4
  end
5
5
  end