metanorma-iso 1.10.0 → 1.10.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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