isodoc 3.6.4 → 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: bbef10c1b48e76bcdc86a92373281615568abc1071f9cdec9da4573abf977389
4
- data.tar.gz: 673b18c0b04aab2fdb06430c7aa048b8dd89cf2a9ef8d7dcde05c0593153c832
3
+ metadata.gz: 7afaca0661a1ca0321fb479d3f1d1db9b2687bf63d668c69778cb13ac8caaec9
4
+ data.tar.gz: 822fe85bb3ffd7966aac0ff7f6bbbc5cc8e79759664f81c1df804767e2b1ce86
5
5
  SHA512:
6
- metadata.gz: 8ca8e03077152b0ad5cd65b7662bb3955d058d7fd8d9e8d64ee9ce9d657290379b7e961ee3acd21726a128fdf307780faa125304f77fdb15b94475d3ac2fee9c
7
- data.tar.gz: b128cec20abd8b0557497cac5f63784a228d1ff7a28cc0d849e73af99fa6486325ced1d3a9ebd4903e9206840ca10cc58cc74c0ccec31b11e60408b02cecbad2
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.4".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: مارس
@@ -111,13 +112,13 @@ admonition:
111
112
  safety precautions: احتياطات السلامة
112
113
  editorial: ملاحظة تحريرية
113
114
  title_prefixes:
114
- part: الجملة
115
- amendment: مسودة التعديل
116
- corrigendum: التصحيح
117
- addendum: الملحق
118
- supplement: ملحق
119
- annex: ملحق
120
- appendix: ملحق
115
+ part: "{{ var1 }}الجملة"
116
+ amendment: "{{ var1 }}مسودة التعديل"
117
+ corrigendum: "{{ var1 }}التصحيح"
118
+ addendum: "{{ var1 }}الملحق"
119
+ supplement: "{{ var1 }}ملحق"
120
+ annex: "{{ var1 }}ملحق"
121
+ appendix: "{{ var1 }}ملحق"
121
122
  locality:
122
123
  section: قسم
123
124
  clause: فقرة
@@ -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
@@ -124,13 +125,13 @@ admonition: {
124
125
  editorial: Redaktioneller Hinweis
125
126
  }
126
127
  title_prefixes:
127
- part: Satz
128
- amendment: Änderungsentwurf
129
- corrigendum: Berichtigung
130
- addendum: Nachtrag
131
- supplement: Ergänzung
132
- annex: Anhang
133
- appendix: Anhang
128
+ part: "Satz {{ var1 }}"
129
+ amendment: "Änderungsentwurf {{ var1 }}"
130
+ corrigendum: "Berichtigung {{ var1 }}"
131
+ addendum: "Nachtrag {{ var1 }}"
132
+ supplement: "Ergänzung {{ var1 }}"
133
+ annex: "Anhang {{ var1 }}"
134
+ appendix: "Anhang {{ var1 }}"
134
135
  locality: {
135
136
  section: Abschnitt,
136
137
  clause: Klausel,
@@ -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
@@ -124,13 +125,13 @@ admonition: {
124
125
  editorial: Editorial Note
125
126
  }
126
127
  title_prefixes:
127
- part: Part
128
- amendment: Amendment
129
- corrigendum: Corrigendum
130
- addendum: Addendum
131
- supplement: Supplement
132
- annex: Annex
133
- appendix: Appendix
128
+ part: "Part {{ var1 }}"
129
+ amendment: "Amendment {{ var1 }}"
130
+ corrigendum: "Corrigendum {{ var1 }}"
131
+ addendum: "Addendum {{ var1 }}"
132
+ supplement: "Supplement {{ var1 }}"
133
+ annex: "Annex {{ var1 }}"
134
+ appendix: "Appendix {{ var1 }}"
134
135
  locality: {
135
136
  section: Section,
136
137
  clause: Clause,
@@ -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
@@ -122,13 +123,13 @@ admonition: {
122
123
  editorial: Note editorial
123
124
  }
124
125
  title_prefixes:
125
- part: Parte
126
- amendment: Nnmienda
127
- corrigendum: Corrección
128
- addendum: Apéndice
129
- supplement: Suplemento
130
- annex: Anexo
131
- appendix: Apéndice
126
+ part: "Parte {{ var1 }}"
127
+ amendment: "Enmienda {{ var1 }}"
128
+ corrigendum: "Corrección {{ var1 }}"
129
+ addendum: "Apéndice {{ var1 }}"
130
+ supplement: "Suplemento {{ var1 }}"
131
+ annex: "Anexo {{ var1 }}"
132
+ appendix: "Apéndice {{ var1 }}"
132
133
  locality: {
133
134
  section: Sección,
134
135
  clause: Cláusula,
@@ -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
@@ -120,13 +121,13 @@ admonition: {
120
121
  editorial: Note éditoriale
121
122
  }
122
123
  title_prefixes:
123
- part: Partie
124
- amendment: Amendement
125
- corrigendum: Rectificatif
126
- addendum: Additif
127
- supplement: Supplément
128
- annex: Annexe
129
- appendix: Appendice
124
+ part: "Partie {{ var1 }}"
125
+ amendment: "Amendement {{ var1 }}"
126
+ corrigendum: "Rectificatif {{ var1 }}"
127
+ addendum: "Additif {{ var1 }}"
128
+ supplement: "Supplément {{ var1 }}"
129
+ annex: "Annexe {{ var1 }}"
130
+ appendix: "Appendice {{ var1 }}"
130
131
  locality: {
131
132
  section: Section,
132
133
  clause: Article,
@@ -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: Март
@@ -186,13 +187,13 @@ admonition: {
186
187
  editorial: Редакционная Заметка
187
188
  }
188
189
  title_prefixes:
189
- part: Часть
190
- amendment: Поправка
191
- corrigendum: Исправление
192
- addendum: Дополнение
193
- supplement: Дополнение
194
- annex: Приложение
195
- appendix: Приложение
190
+ part: "Часть {{ var1 }}"
191
+ amendment: "Поправка {{ var1 }}"
192
+ corrigendum: "Исправление {{ var1 }}"
193
+ addendum: "Добавление {{ var1 }}"
194
+ supplement: "Дополнительный документ {{ var1 }}"
195
+ annex: "Приложение {{ var1 }}"
196
+ appendix: "Дополнение {{ var1 }}"
196
197
  locality: {
197
198
  section: Раздел,
198
199
  clause: Пункт,
@@ -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: 三月
@@ -113,13 +114,13 @@ admonition: {
113
114
  editorial: 编辑说明
114
115
  }
115
116
  title_prefixes:
116
- part: 部分
117
- amendment: 修正
118
- corrigendum: 更正
119
- addendum: 附录
120
- supplement: 补充文件
121
- annex: 附件
122
- appendix: 附录
117
+ part: "第{{ var1 }}部分"
118
+ amendment: "修正案{{ var1 }}"
119
+ corrigendum: "技术勘误{{ var1 }}"
120
+ addendum: "增编{{ var1 }}"
121
+ supplement: "补充件{{ var1 }}"
122
+ annex: "附件{{ var1 }}"
123
+ appendix: "附录{{ var1 }}"
123
124
  locality: {
124
125
  section: 条,
125
126
  clause: 条,
@@ -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.4
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: []