isodoc 3.6.5 → 3.6.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5a6f777b418a6d54e93a377d9a95e2264243940bf45e626b722fcd8eb608863
4
- data.tar.gz: 8a934e83673f08880be48d49b416e406b72706fe803e748326ee7a45489d57e8
3
+ metadata.gz: 7afaca0661a1ca0321fb479d3f1d1db9b2687bf63d668c69778cb13ac8caaec9
4
+ data.tar.gz: 822fe85bb3ffd7966aac0ff7f6bbbc5cc8e79759664f81c1df804767e2b1ce86
5
5
  SHA512:
6
- metadata.gz: 66635f3417ea00349a7a211bec75037ebcf5c0943ec036a81c91ba0964a3a93449debb297fac55c89f95f8bcf4e743014ad6076abbbcb0c86b660268cf837223
7
- data.tar.gz: 2b28128b6b845c0ebacae431531d80f5f216880eb0d76270ce2e2906574ce30334a33d11a8bd00d680fe05a122acd5b3727407fe90933ca5d6c25e150ba311d1
6
+ metadata.gz: 4840fd50ec5c71c4bf7202bc9ffcc87bdd1f756ae2c58212b627f78633e87333c935926f921b0c276a83fd4c1ab279ed9d3a3b3b34605ac215261506f59dc600
7
+ data.tar.gz: 9afda013dcdfb71c8ee962cfe787b2b24e997613b2b1fd644e0e751cf521290aad51ec1c0859254c0c27ba087abe2839ad9419b846c33ae287f5784bb4e6b319
data/isodoc.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  # spec.add_dependency "metanorma-utils", "~> 1.5.0" # already in isodoc-i18n
37
37
  spec.add_dependency "mn2pdf", ">= 2.13"
38
38
  spec.add_dependency "mn-requirements", "~> 0.5.0"
39
- spec.add_dependency "relaton-render", "~> 1.2.0"
39
+ spec.add_dependency "relaton-render", "~> 1.3.0"
40
40
  spec.add_dependency "roman-numerals"
41
41
  spec.add_dependency "rouge", "~> 4.0"
42
42
  spec.add_dependency "thread_safe"
@@ -45,6 +45,7 @@ module IsoDoc
45
45
  # tocfigures: add ToC for figures
46
46
  # toctables: add ToC for tables
47
47
  # tocrecommendations: add ToC for rcommendations
48
+ # tocexamples: add ToC for examples
48
49
  # fonts: fontist fonts to install
49
50
  # fontlicenseagreement: fontist font license agreement
50
51
  # modspecidentifierbase: base prefix for any Modspec identifiers
@@ -51,7 +51,26 @@ module IsoDoc
51
51
  end
52
52
 
53
53
  def example_parse(node, out)
54
- example_div_parse(node, out)
54
+ if node["collapsible"] == "true"
55
+ example_collapsible_parse(node, out)
56
+ else
57
+ example_div_parse(node, out)
58
+ end
59
+ end
60
+
61
+ # HTML5 collapsible example: label in <summary>, body in the example div
62
+ def example_collapsible_parse(node, out)
63
+ out.details(open: "open") do |det|
64
+ name = node.at(ns("./fmt-name"))
65
+ det.summary do |s|
66
+ name and children_parse(name, s)
67
+ end
68
+ det.div(**example_div_attr(node)) do |div|
69
+ node.children.each do |n|
70
+ parse(n, div) unless n.name == "fmt-name"
71
+ end
72
+ end
73
+ end
55
74
  end
56
75
 
57
76
  def block_body_first_elem(node)
data/lib/isodoc/init.rb CHANGED
@@ -169,6 +169,7 @@ module IsoDoc
169
169
  @tocfigures = options[:tocfigures]
170
170
  @toctables = options[:toctables]
171
171
  @tocrecommendations = options[:tocrecommendations]
172
+ @tocexamples = options[:tocexamples]
172
173
  end
173
174
 
174
175
  AGENCIES = %w(ISO IEC ITU IETF NIST OGC IEEE BIPM BSI BS JIS IANA UN W3C
@@ -93,15 +93,17 @@ module IsoDoc
93
93
  end
94
94
 
95
95
  def toc_metadata(docxml)
96
- @tocfigures || @toctables || @tocrecommendations or return
96
+ @tocfigures || @toctables || @tocrecommendations || @tocexamples or return
97
97
  ins = extension_insert(docxml)
98
98
  @tocfigures and
99
99
  ins.add_child "<toc type='figure'><title>#{@i18n.toc_figures}</title></toc>"
100
100
  @toctables and
101
101
  ins << "<toc type='table'><title>#{@i18n.toc_tables}</title></toc>"
102
- @tocfigures and
102
+ @tocrecommendations and
103
103
  ins << "<toc type='recommendation'><title>#{@i18n.toc_recommendations}" \
104
104
  "</title></toc>"
105
+ @tocexamples and
106
+ ins << "<toc type='example'><title>#{@i18n.toc_examples}</title></toc>"
105
107
  end
106
108
 
107
109
  def fonts_metadata(xmldoc)
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "3.6.5".freeze
2
+ VERSION = "3.6.6".freeze
3
3
  end
@@ -161,6 +161,7 @@ module IsoDoc
161
161
  @toctablestitle = xml.at(ns("//#{toc}[@type = 'table']/title"))&.text
162
162
  @tocrecommendationstitle =
163
163
  xml.at(ns("//#{toc}[@type = 'recommendation']/title"))&.text
164
+ @tocexamplestitle = xml.at(ns("//#{toc}[@type = 'example']/title"))&.text
164
165
  end
165
166
 
166
167
  def table_of_contents(clause, out)
@@ -27,6 +27,7 @@ module IsoDoc
27
27
  toc += make_table_word_toc(docxml)
28
28
  toc += make_figure_word_toc(docxml)
29
29
  toc += make_recommendation_word_toc(docxml)
30
+ toc += make_example_word_toc(docxml)
30
31
  toc
31
32
  end
32
33
 
@@ -91,6 +92,10 @@ module IsoDoc
91
92
  recommendationtitle recommendationtesttitle)
92
93
  end
93
94
 
95
+ def example_toc_class
96
+ %w(example-title)
97
+ end
98
+
94
99
  def toc_word_class_list(classes)
95
100
  classes.map { |x| "#{x},1" }.join(",")
96
101
  end
@@ -117,6 +122,13 @@ module IsoDoc
117
122
  TOC
118
123
  end
119
124
 
125
+ def word_toc_example_preface1
126
+ <<~TOC
127
+ <span lang="EN-GB"><span style='mso-element:field-begin'></span><span style='mso-spacerun:yes'>&#xA0;</span>TOC
128
+ \\h \\z \\t "#{toc_word_class_list example_toc_class}" <span style='mso-element:field-separator'></span></span>
129
+ TOC
130
+ end
131
+
120
132
  def table_toc_xpath
121
133
  attr = table_toc_class.map { |x| "@class = '#{x}'" }
122
134
  "//p[#{attr.join(' or ')}]"
@@ -164,6 +176,21 @@ module IsoDoc
164
176
  %{\\1#{word_toc_reqt_preface1}}) + WORD_TOC_SUFFIX1
165
177
  end
166
178
 
179
+ def example_toc_xpath
180
+ attr = example_toc_class.map { |x| "@class = '#{x}'" }
181
+ "//p[#{attr.join(' or ')}]"
182
+ end
183
+
184
+ def make_example_word_toc(docxml)
185
+ (docxml.at(example_toc_xpath) && @tocexamplestitle) or return ""
186
+ toc = %{<p class="TOCTitle">#{@tocexamplestitle}</p>}
187
+ docxml.xpath(example_toc_xpath).each do |h|
188
+ toc += word_toc_entry(1, header_strip(h))
189
+ end
190
+ toc.sub(/(<p class="MsoToc1">)/,
191
+ %{\\1#{word_toc_example_preface1}}) + WORD_TOC_SUFFIX1
192
+ end
193
+
167
194
  def recommmendation_sort_key(header)
168
195
  m = /^([^0-9]+) (\d+)/.match(header) || /^([^:]+)/.match(header)
169
196
  m ||= [header, nil]
@@ -20,7 +20,7 @@ module IsoDoc
20
20
  pdfkeystore: "--keystore",
21
21
  pdfkeystorepassword: "--keystore-password",
22
22
  }.freeze
23
- MN2PDF_DEFAULT_ARGS = { "--syntax-highlight": nil }.freeze
23
+ MN2PDF_DEFAULT_ARGS = { }.freeze
24
24
 
25
25
  def initialize(options)
26
26
  @format = :pdf
@@ -90,6 +90,7 @@ version: الإصدار
90
90
  toc_figures: جدول الأرقام
91
91
  toc_tables: جدول الجداول
92
92
  toc_recommendations: جدول التوصيات
93
+ toc_examples: جدول الأمثلة
93
94
  month_january: يناير
94
95
  month_february: فبراير
95
96
  month_march: مارس
@@ -102,6 +102,7 @@ version: Version
102
102
  toc_figures: Abbildungsverzeichnis
103
103
  toc_tables: Tabellenverzeichnis
104
104
  toc_recommendations: Empfehlungenverzeichnis
105
+ toc_examples: Beispielverzeichnis
105
106
  month_january: Januar
106
107
  month_february: Februar
107
108
  month_march: März
@@ -102,6 +102,7 @@ version: version
102
102
  toc_figures: List of figures
103
103
  toc_tables: List of tables
104
104
  toc_recommendations: List of recommendations
105
+ toc_examples: List of examples
105
106
  month_january: January
106
107
  month_february: February
107
108
  month_march: March
@@ -100,6 +100,7 @@ version: versión
100
100
  toc_figures: Table de figuras
101
101
  toc_tables: Tabla de tablas
102
102
  toc_recommendations: Tabla de recomendaciones
103
+ toc_examples: Tabla de ejemplos
103
104
  month_january: Enero
104
105
  month_february: Febrero
105
106
  month_march: Marzo
@@ -98,6 +98,7 @@ edition: édition
98
98
  toc_figures: Table des figures
99
99
  toc_tables: Table des tableaux
100
100
  toc_recommendations: Table de recommandations
101
+ toc_examples: Table des exemples
101
102
  month_january: Janvier
102
103
  month_february: Février
103
104
  month_march: Mars
@@ -101,6 +101,7 @@ version: 版
101
101
  toc_figures: 図一覧
102
102
  toc_tables: 表一覧
103
103
  toc_recommendations: 推奨一覧
104
+ toc_examples: 例一覧
104
105
  month_january: 1月
105
106
  month_february: 2月
106
107
  month_march: 3月
@@ -164,6 +164,7 @@ version: версия
164
164
  toc_figures: Таблица фигур
165
165
  toc_tables: Таблица таблиц
166
166
  toc_recommendations: Таблица рекомендаций
167
+ toc_examples: Таблица примеров
167
168
  month_january: Январь
168
169
  month_february: Февраль
169
170
  month_march: Март
@@ -91,6 +91,7 @@ version: 版本
91
91
  toc_figures: 数字列表
92
92
  toc_tables: 表列表
93
93
  toc_recommendations: 建议清单
94
+ toc_examples: 示例列表
94
95
  month_january: 一月
95
96
  month_february: 二月
96
97
  month_march: 三月
@@ -1,4 +1,4 @@
1
1
  template:
2
2
  # skip authoritative identifier, it is inserted in front of formattedref within metanorma
3
- standard: "{% if creatornames %}{{ creatornames }} ({{ role}}){%else%}{{publisher}}{%endif%} $$$ <em>{{ title }}</em> $$$ {{ medium | capitalize }}$$$ {{ edition | capitalize_first }}$$$ {{date}}$$$ {{place}}: {%if creatornames %}{{publisher}}{% endif %} $$$ {{size}}$$$ {{ extent }}$$$ {{ uri }}$$$ {{ labels['at'] | capitalize}}:_{{ access_location }}$$$ [{{ labels['viewed'] }}:_{{date_accessed}}]"
3
+ standard: "{% if creatornames %}{{ creatornames }} ({{ role}}){%else%}{{publisher}}{%endif%} $$$ <em>{{ title }}</em> $$$ {{ medium | capitalize }}$$$ {{ edition | capitalize_first }}$$$ {{date}}$$$ {{place}}: {%if creatornames %}{{publisher}}{% endif %} $$$ {{size}}$$$ {{ extent }}$$$ {{ uri }}$$$ {{ labels['at_url'] | capitalize}}:_{{ access_location }}$$$ [{{ labels['viewed'] }}:_{{date_accessed}}]"
4
4
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.5
4
+ version: 3.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-06-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: base64
@@ -86,14 +85,14 @@ dependencies:
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: 1.2.0
88
+ version: 1.3.0
90
89
  type: :runtime
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: 1.2.0
95
+ version: 1.3.0
97
96
  - !ruby/object:Gem::Dependency
98
97
  name: roman-numerals
99
98
  requirement: !ruby/object:Gem::Requirement
@@ -324,7 +323,6 @@ homepage: https://github.com/metanorma/isodoc
324
323
  licenses:
325
324
  - BSD-2-Clause
326
325
  metadata: {}
327
- post_install_message:
328
326
  rdoc_options: []
329
327
  require_paths:
330
328
  - lib
@@ -339,8 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
339
337
  - !ruby/object:Gem::Version
340
338
  version: '0'
341
339
  requirements: []
342
- rubygems_version: 3.5.22
343
- signing_key:
340
+ rubygems_version: 4.0.10
344
341
  specification_version: 4
345
342
  summary: Convert documents in IsoDoc into Word and HTML in AsciiDoc.
346
343
  test_files: []