isodoc 2.12.0 → 2.12.1

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.
@@ -55,9 +55,10 @@ module IsoDoc
55
55
  # feeds middle_title
56
56
  # triggers xrefs reparse, so put references before all other sections,
57
57
  # which alter titles and thus can alter xrefs
58
- rearrange_clauses docxml # feeds toc, display_order, clausetitle,
58
+ rearrange_clauses docxml # feeds toc, display_order, clausetitle,
59
59
  # clause, middle_title
60
60
  middle_title docxml
61
+ missing_title docxml # feeds clause
61
62
  annex docxml
62
63
  clause docxml # feeds clausetitle
63
64
  term docxml
@@ -79,6 +80,8 @@ module IsoDoc
79
80
  admonition docxml
80
81
  source docxml
81
82
  ol docxml
83
+ dl docxml
84
+ quote docxml
82
85
  permission docxml
83
86
  requirement docxml
84
87
  recommendation docxml
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "2.12.0".freeze
2
+ VERSION = "2.12.1".freeze
3
3
  end
@@ -111,7 +111,7 @@ module IsoDoc
111
111
  insert_tab(p, 1)
112
112
  node.first_element_child.children.each { |n| parse(n, p) }
113
113
  end
114
- node.element_children[1..-1].each { |n| parse(n, div) }
114
+ node.element_children[1..].each { |n| parse(n, div) }
115
115
  end
116
116
 
117
117
  def note_parse1(node, div)
@@ -131,7 +131,7 @@ module IsoDoc
131
131
  div.p class: "Note" do |p|
132
132
  if name
133
133
  name.children.each { |n| parse(n, p) }
134
- p << termnote_delim
134
+ p << " "
135
135
  end
136
136
  para_then_remainder(node.first_element_child, node, p, div)
137
137
  end
@@ -165,7 +165,7 @@ module IsoDoc
165
165
  parse(node.at(ns("./stem")), div)
166
166
  insert_tab(div, 1)
167
167
  if lbl = node&.at(ns("./name"))&.text
168
- div << "(#{lbl})"
168
+ div << lbl
169
169
  end
170
170
  end
171
171
  end
@@ -17,10 +17,10 @@ module IsoDoc
17
17
  { path: "//sections/clause[@type = 'scope']" },
18
18
  { path: @klass.norm_ref_xpath },
19
19
  { path: "//sections/terms | " \
20
- "//sections/clause[descendant::terms]" },
20
+ "//sections/clause[descendant::terms]", multi: true },
21
21
  { path: "//sections/definitions | " \
22
22
  "//sections/clause[descendant::definitions]" \
23
- "[not(descendant::terms)]" },
23
+ "[not(descendant::terms)]", multi: true },
24
24
  { path: @klass.middle_clause(docxml), multi: true },
25
25
  ]
26
26
  end
@@ -8,9 +8,6 @@ module IsoDoc
8
8
  annex_anchor_names(xml)
9
9
  back_clauses_anchor_names(xml)
10
10
  end
11
- if @klass.bibrender && (@parse_settings.empty? || @parse_settings[:refs])
12
- references(xml)
13
- end
14
11
  end
15
12
 
16
13
  def annex_anchor_names(xml)
@@ -33,11 +30,7 @@ module IsoDoc
33
30
  end
34
31
  end
35
32
 
36
- def references(docxml)
37
- docxml.xpath(ns("//bibitem[not(ancestor::bibitem)]")).each do |ref|
38
- reference_names(ref)
39
- end
40
- end
33
+ # NOTE: references processing has moved to Presentation XML
41
34
 
42
35
  def initial_anchor_names(xml)
43
36
  if @parse_settings.empty? || @parse_settings[:clauses]
@@ -83,8 +76,9 @@ module IsoDoc
83
76
 
84
77
  def clause_title(clause, use_elem_name: false)
85
78
  ret = clause.at(ns("./title"))&.text
86
- if use_elem_name && !ret
87
- clause.name.capitalize
79
+ if use_elem_name && ret.blank?
80
+ @i18n.labels[clause.name]&.capitalize ||
81
+ clause.name.capitalize
88
82
  else ret
89
83
  end
90
84
  end
@@ -107,11 +101,11 @@ module IsoDoc
107
101
 
108
102
  def unnumbered_names(clause)
109
103
  clause.nil? and return
110
- preface_name_anchors(clause, 1,
111
- clause_title(clause, use_elem_name: true))
104
+ title = clause_title(clause, use_elem_name: true)
105
+ preface_name_anchors(clause, 1, title)
112
106
  clause.xpath(ns(SUBCLAUSES)).each_with_index do |c, i|
113
107
  preface_names1(c, c.at(ns("./title"))&.text,
114
- "#{clause_title(clause)}, #{i + 1}", 2)
108
+ "#{title}, #{i + 1}", 2)
115
109
  end
116
110
  end
117
111
 
@@ -217,15 +211,6 @@ module IsoDoc
217
211
  annex_names1(c, i.increment(c).print, level + 1)
218
212
  end
219
213
  end
220
-
221
- def reference_names(ref)
222
- ids = @klass.bibitem_ref_code(ref)
223
- identifiers = @klass.render_identifier(ids)
224
- reference = @klass
225
- .docid_l10n(identifiers[:metanorma] || identifiers[:sdo] ||
226
- identifiers[:ordinal] || identifiers[:doi])
227
- @anchors[ref["id"]] = { xref: reference }
228
- end
229
214
  end
230
215
  end
231
216
  end
@@ -6,6 +6,12 @@ module Enumerable
6
6
  end
7
7
  end
8
8
 
9
+ class Object
10
+ def blank?
11
+ nil? || empty?
12
+ end
13
+ end
14
+
9
15
  module IsoDoc
10
16
  module XrefGen
11
17
  module Blocks
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-28 00:00:00.000000000 Z
11
+ date: 2024-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.08'
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: '0'
68
+ version: '2.08'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mn-requirements
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -421,6 +421,7 @@ files:
421
421
  - lib/isodoc/presentation_function/bibdata.rb
422
422
  - lib/isodoc/presentation_function/block.rb
423
423
  - lib/isodoc/presentation_function/concepts.rb
424
+ - lib/isodoc/presentation_function/docid.rb
424
425
  - lib/isodoc/presentation_function/erefs.rb
425
426
  - lib/isodoc/presentation_function/image.rb
426
427
  - lib/isodoc/presentation_function/inline.rb