metanorma-iso 1.9.6 → 1.10.3
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/.github/workflows/ubuntu.yml +41 -0
- data/Gemfile +3 -4
- data/Makefile +44 -0
- data/Rakefile +1 -1
- data/bin/rspec +1 -2
- data/lib/asciidoctor/iso/cleanup.rb +7 -6
- data/lib/asciidoctor/iso/front.rb +2 -2
- data/lib/asciidoctor/iso/isodoc.rng +254 -27
- data/lib/asciidoctor/iso/section.rb +1 -1
- data/lib/asciidoctor/iso/validate.rb +7 -7
- data/lib/asciidoctor/iso/validate_section.rb +1 -1
- data/lib/isodoc/iso/html/isodoc.css +0 -1
- data/lib/isodoc/iso/html/isodoc.scss +0 -1
- data/lib/isodoc/iso/html/style-human.css +0 -1
- data/lib/isodoc/iso/html/style-human.scss +0 -1
- data/lib/isodoc/iso/html/style-iso.css +0 -1
- data/lib/isodoc/iso/html/style-iso.scss +0 -1
- data/lib/isodoc/iso/i18n.rb +10 -9
- data/lib/isodoc/iso/iso.amendment.xsl +57 -17
- data/lib/isodoc/iso/iso.international-standard.xsl +57 -17
- data/lib/isodoc/iso/isosts_convert.rb +6 -2
- data/lib/isodoc/iso/presentation_xml_convert.rb +19 -9
- data/lib/isodoc/iso/sections.rb +2 -0
- data/lib/isodoc/iso/sts_convert.rb +5 -2
- data/lib/isodoc/iso/word_cleanup.rb +94 -0
- data/lib/isodoc/iso/word_convert.rb +12 -89
- data/lib/metanorma/iso/processor.rb +2 -2
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +4 -5
- data/spec/asciidoctor/base_spec.rb +543 -209
- data/spec/asciidoctor/blocks_spec.rb +22 -47
- data/spec/asciidoctor/cleanup_spec.rb +37 -20
- data/spec/asciidoctor/inline_spec.rb +10 -2
- data/spec/asciidoctor/refs_spec.rb +174 -88
- data/spec/asciidoctor/section_spec.rb +3 -3
- data/spec/isodoc/i18n_spec.rb +36 -22
- data/spec/isodoc/inline_spec.rb +6 -6
- data/spec/isodoc/section_spec.rb +4 -4
- data/spec/isodoc/table_spec.rb +6 -8
- data/spec/isodoc/terms_spec.rb +25 -25
- data/spec/isodoc/xref_spec.rb +1397 -1376
- data/spec/metanorma/processor_spec.rb +114 -15
- data/spec/spec_helper.rb +2 -1
- data/spec/vcr_cassettes/docrels.yml +427 -37
- data/spec/vcr_cassettes/sortrefs.yml +599 -0
- metadata +13 -24
@@ -0,0 +1,94 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module Iso
|
3
|
+
class WordConvert < IsoDoc::WordConvert
|
4
|
+
def figure_cleanup(xml)
|
5
|
+
super
|
6
|
+
xml.xpath("//div[@class = 'figure']//table[@class = 'dl']").each do |t|
|
7
|
+
t["class"] = "figdl"
|
8
|
+
d = t.add_previous_sibling("<div class='figdl' "\
|
9
|
+
"style='page-break-after:avoid;'/>")
|
10
|
+
t.parent = d.first
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# force Annex h2 down to be p.h2Annex, so it is not picked up by ToC
|
15
|
+
def word_annex_cleanup1(docxml, lvl)
|
16
|
+
docxml.xpath("//h#{lvl}[ancestor::*[@class = 'Section3']]").each do |h2|
|
17
|
+
h2.name = "p"
|
18
|
+
h2["class"] = "h#{lvl}Annex"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def word_annex_cleanup(docxml)
|
23
|
+
(2..6).each { |i| word_annex_cleanup1(docxml, i) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def word_annex_cleanup_h1(docxml)
|
27
|
+
docxml.xpath("//h1[@class = 'Annex']").each do |h|
|
28
|
+
h.name = "p"
|
29
|
+
h["class"] = "ANNEX"
|
30
|
+
end
|
31
|
+
%w(BiblioTitle ForewordTitle IntroTitle).each do |s|
|
32
|
+
docxml.xpath("//*[@class = '#{s}']").each do |h|
|
33
|
+
h.name = "p"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def style_cleanup(docxml)
|
39
|
+
word_annex_cleanup_h1(docxml)
|
40
|
+
style_cleanup1(docxml)
|
41
|
+
end
|
42
|
+
|
43
|
+
def style_cleanup1(docxml)
|
44
|
+
docxml.xpath("//*[@class = 'example']").each do |p|
|
45
|
+
p["class"] = "Example"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def authority_hdr_cleanup(docxml)
|
50
|
+
docxml&.xpath("//div[@class = 'boilerplate-license']")&.each do |d|
|
51
|
+
d.xpath(".//h1").each do |p|
|
52
|
+
p.name = "p"
|
53
|
+
p["class"] = "zzWarningHdr"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
docxml&.xpath("//div[@class = 'boilerplate-copyright']")&.each do |d|
|
57
|
+
d.xpath(".//h1").each do |p|
|
58
|
+
p.name = "p"
|
59
|
+
p["class"] = "zzCopyrightHdr"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def authority_cleanup(docxml)
|
65
|
+
insert = docxml.at("//div[@id = 'boilerplate-license-destination']")
|
66
|
+
auth = docxml&.at("//div[@class = 'boilerplate-license']")&.remove
|
67
|
+
auth&.xpath(".//p[not(@class)]")&.each { |p| p["class"] = "zzWarning" }
|
68
|
+
auth and insert.children = auth
|
69
|
+
insert = docxml.at("//div[@id = 'boilerplate-copyright-destination']")
|
70
|
+
auth = docxml&.at("//div[@class = 'boilerplate-copyright']")&.remove
|
71
|
+
auth&.xpath(".//p[not(@class)]")&.each do |p|
|
72
|
+
p["class"] = "zzCopyright"
|
73
|
+
end
|
74
|
+
auth&.xpath(".//p[@id = 'boilerplate-message']")&.each do |p|
|
75
|
+
p["class"] = "zzCopyright1"
|
76
|
+
end
|
77
|
+
auth&.xpath(".//p[@id = 'boilerplate-address']")&.each do |p|
|
78
|
+
p["class"] = "zzAddress"
|
79
|
+
end
|
80
|
+
auth&.xpath(".//p[@id = 'boilerplate-place']")&.each do |p|
|
81
|
+
p["class"] = "zzCopyright1"
|
82
|
+
end
|
83
|
+
auth and insert.children = auth
|
84
|
+
end
|
85
|
+
|
86
|
+
def word_cleanup(docxml)
|
87
|
+
authority_hdr_cleanup(docxml)
|
88
|
+
super
|
89
|
+
style_cleanup(docxml)
|
90
|
+
docxml
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative "base_convert"
|
2
2
|
require "isodoc"
|
3
3
|
require_relative "init"
|
4
|
+
require_relative "word_cleanup"
|
4
5
|
|
5
6
|
module IsoDoc
|
6
7
|
module Iso
|
@@ -59,92 +60,11 @@ module IsoDoc
|
|
59
60
|
return if !stage.nil? && stage < 60
|
60
61
|
|
61
62
|
body.br **{ clear: "all", style: "page-break-before:left;"\
|
62
|
-
|
63
|
+
"mso-break-type:section-break" }
|
63
64
|
body.div **{ class: "colophon" } do |div|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
def figure_cleanup(xml)
|
68
|
-
super
|
69
|
-
xml.xpath("//div[@class = 'figure']//table[@class = 'dl']").each do |t|
|
70
|
-
t["class"] = "figdl"
|
71
|
-
d = t.add_previous_sibling("<div class='figdl' "\
|
72
|
-
"style='page-break-after:avoid;'/>")
|
73
|
-
t.parent = d.first
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
# force Annex h2 down to be p.h2Annex, so it is not picked up by ToC
|
78
|
-
def word_annex_cleanup1(docxml, lvl)
|
79
|
-
docxml.xpath("//h#{lvl}[ancestor::*[@class = 'Section3']]").each do |h2|
|
80
|
-
h2.name = "p"
|
81
|
-
h2["class"] = "h#{lvl}Annex"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def word_annex_cleanup(docxml)
|
86
|
-
(2..6).each { |i| word_annex_cleanup1(docxml, i) }
|
87
|
-
end
|
88
|
-
|
89
|
-
def word_annex_cleanup_h1(docxml)
|
90
|
-
docxml.xpath("//h1[@class = 'Annex']").each do |h|
|
91
|
-
h.name = "p"
|
92
|
-
h["class"] = "ANNEX"
|
93
|
-
end
|
94
|
-
%w(BiblioTitle ForewordTitle IntroTitle).each do |s|
|
95
|
-
docxml.xpath("//*[@class = '#{s}']").each do |h|
|
96
|
-
h.name = "p"
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def style_cleanup(docxml)
|
102
|
-
word_annex_cleanup_h1(docxml)
|
103
|
-
style_cleanup1(docxml)
|
104
|
-
end
|
105
|
-
|
106
|
-
def style_cleanup1(docxml)
|
107
|
-
docxml.xpath("//*[@class = 'example']").each do |p|
|
108
|
-
p["class"] = "Example"
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def authority_hdr_cleanup(docxml)
|
113
|
-
docxml&.xpath("//div[@class = 'boilerplate-license']")&.each do |d|
|
114
|
-
d.xpath(".//h1").each do |p|
|
115
|
-
p.name = "p"
|
116
|
-
p["class"] = "zzWarningHdr"
|
117
|
-
end
|
118
|
-
end
|
119
|
-
docxml&.xpath("//div[@class = 'boilerplate-copyright']")&.each do |d|
|
120
|
-
d.xpath(".//h1").each do |p|
|
121
|
-
p.name = "p"
|
122
|
-
p["class"] = "zzCopyrightHdr"
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def authority_cleanup(docxml)
|
128
|
-
insert = docxml.at("//div[@id = 'boilerplate-license-destination']")
|
129
|
-
auth = docxml&.at("//div[@class = 'boilerplate-license']")&.remove
|
130
|
-
auth&.xpath(".//p[not(@class)]")&.each { |p| p["class"] = "zzWarning" }
|
131
|
-
auth and insert.children = auth
|
132
|
-
insert = docxml.at("//div[@id = 'boilerplate-copyright-destination']")
|
133
|
-
auth = docxml&.at("//div[@class = 'boilerplate-copyright']")&.remove
|
134
|
-
auth&.xpath(".//p[not(@class)]")&.each { |p| p["class"] = "zzCopyright" }
|
135
|
-
auth&.xpath(".//p[@id = 'boilerplate-message']")&.each { |p| p["class"] = "zzCopyright1" }
|
136
|
-
auth&.xpath(".//p[@id = 'boilerplate-address']")&.each { |p| p["class"] = "zzAddress" }
|
137
|
-
auth&.xpath(".//p[@id = 'boilerplate-place']")&.each { |p| p["class"] = "zzCopyright1" }
|
138
|
-
auth and insert.children = auth
|
139
|
-
end
|
140
|
-
|
141
|
-
def word_cleanup(docxml)
|
142
|
-
authority_hdr_cleanup(docxml)
|
143
|
-
super
|
144
|
-
style_cleanup(docxml)
|
145
|
-
docxml
|
146
|
-
end
|
147
|
-
|
148
68
|
def word_toc_preface(level)
|
149
69
|
<<~TOC.freeze
|
150
70
|
<span lang="EN-GB"><span
|
@@ -166,7 +86,7 @@ module IsoDoc
|
|
166
86
|
end
|
167
87
|
|
168
88
|
def bibliography(xml, out)
|
169
|
-
f = xml.at(ns(bibliography_xpath)) and f["hidden"] != "true" or return
|
89
|
+
(f = xml.at(ns(bibliography_xpath)) and f["hidden"] != "true") or return
|
170
90
|
page_break(out)
|
171
91
|
out.div do |div|
|
172
92
|
div.h1 **bibliography_attrs do |h1|
|
@@ -185,13 +105,16 @@ module IsoDoc
|
|
185
105
|
end
|
186
106
|
end
|
187
107
|
|
108
|
+
def definition_parse(node, out)
|
109
|
+
@definition = true
|
110
|
+
super
|
111
|
+
@definition = false
|
112
|
+
end
|
113
|
+
|
188
114
|
def para_class(node)
|
189
|
-
if
|
190
|
-
|
191
|
-
|
192
|
-
"ForewordText"
|
193
|
-
else
|
194
|
-
super
|
115
|
+
if @definition && !@in_footnote then "Definition"
|
116
|
+
elsif @foreword && !@in_footnote then "ForewordText"
|
117
|
+
else super
|
195
118
|
end
|
196
119
|
end
|
197
120
|
|
@@ -4,7 +4,7 @@ module Metanorma
|
|
4
4
|
module Iso
|
5
5
|
class Processor < Metanorma::Processor
|
6
6
|
|
7
|
-
def initialize
|
7
|
+
def initialize # rubocop:disable Lint/MissingSuper
|
8
8
|
@short = :iso
|
9
9
|
@input_format = :asciidoc
|
10
10
|
@asciidoctor_backend = :iso
|
@@ -17,7 +17,7 @@ module Metanorma
|
|
17
17
|
doc: "doc",
|
18
18
|
pdf: "pdf",
|
19
19
|
sts: "sts.xml",
|
20
|
-
isosts: "iso.sts.xml"
|
20
|
+
isosts: "iso.sts.xml",
|
21
21
|
)
|
22
22
|
end
|
23
23
|
|
data/metanorma-iso.gemspec
CHANGED
@@ -29,18 +29,17 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
30
30
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
31
31
|
|
32
|
-
spec.add_dependency "
|
33
|
-
spec.add_dependency "
|
34
|
-
spec.add_dependency "mnconvert", "~> 1.8.0"
|
32
|
+
spec.add_dependency "metanorma-standoc", "~> 1.11.0"
|
33
|
+
spec.add_dependency "mnconvert", "~> 2.0"
|
35
34
|
spec.add_dependency "ruby-jing"
|
36
35
|
spec.add_dependency "tokenizer", "~> 0.3.0"
|
37
36
|
spec.add_dependency "twitter_cldr"
|
38
37
|
|
39
|
-
spec.add_development_dependency "
|
38
|
+
spec.add_development_dependency "debug"
|
40
39
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
41
40
|
spec.add_development_dependency "guard", "~> 2.14"
|
42
41
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
43
|
-
spec.add_development_dependency "iev", "~> 0.
|
42
|
+
spec.add_development_dependency "iev", "~> 0.3.0"
|
44
43
|
spec.add_development_dependency "rake", "~> 13.0"
|
45
44
|
spec.add_development_dependency "rspec", "~> 3.6"
|
46
45
|
spec.add_development_dependency "rubocop", "~> 1.5.2"
|