metanorma-iso 1.10.0 → 1.10.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.
@@ -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
- "mso-break-type:section-break" }
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 !node.ancestors("definition").empty? && !@in_footnote
190
- "Definition"
191
- elsif !node.ancestors("foreword").empty? && !@in_footnote
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
 
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.10.0".freeze
3
+ VERSION = "1.10.1".freeze
4
4
  end
5
5
  end