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 +4 -4
- data/isodoc.gemspec +1 -1
- data/lib/isodoc/convert.rb +1 -0
- data/lib/isodoc/function/blocks_example_note.rb +20 -1
- data/lib/isodoc/init.rb +1 -0
- data/lib/isodoc/presentation_function/metadata.rb +4 -2
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +1 -0
- data/lib/isodoc/word_function/postprocess_toc.rb +27 -0
- data/lib/isodoc/xslfo_convert.rb +1 -1
- data/lib/isodoc-yaml/i18n-ar.yaml +1 -0
- data/lib/isodoc-yaml/i18n-de.yaml +1 -0
- data/lib/isodoc-yaml/i18n-en.yaml +1 -0
- data/lib/isodoc-yaml/i18n-es.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +1 -0
- data/lib/isodoc-yaml/i18n-ja.yaml +1 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +1 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- data/lib/relaton/render-isodoc/config.yml +1 -1
- metadata +5 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7afaca0661a1ca0321fb479d3f1d1db9b2687bf63d668c69778cb13ac8caaec9
|
|
4
|
+
data.tar.gz: 822fe85bb3ffd7966aac0ff7f6bbbc5cc8e79759664f81c1df804767e2b1ce86
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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"
|
data/lib/isodoc/convert.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
-
@
|
|
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)
|
data/lib/isodoc/version.rb
CHANGED
|
@@ -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'> </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]
|
data/lib/isodoc/xslfo_convert.rb
CHANGED
|
@@ -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
|
|
@@ -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['
|
|
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
|
+
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:
|
|
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.
|
|
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.
|
|
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:
|
|
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: []
|