metanorma-iec 1.4.2 → 2.0.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +4 -32
  3. data/.gitignore +14 -0
  4. data/Gemfile +6 -0
  5. data/Rakefile +1 -1
  6. data/lib/isodoc/iec/base_convert.rb +25 -59
  7. data/lib/isodoc/iec/html/htmlstyle.css +38 -6
  8. data/lib/isodoc/iec/html/htmlstyle.scss +35 -6
  9. data/lib/isodoc/iec/html/isodoc.css +1 -2
  10. data/lib/isodoc/iec/html/isodoc.scss +1 -2
  11. data/lib/isodoc/iec/html/scripts.html +0 -1
  12. data/lib/isodoc/iec/html/wordstyle.css +13 -11
  13. data/lib/isodoc/iec/html/wordstyle.scss +13 -11
  14. data/lib/isodoc/iec/html_convert.rb +2 -1
  15. data/lib/isodoc/iec/iec.international-standard.xsl +724 -330
  16. data/lib/isodoc/iec/presentation_xml_convert.rb +193 -5
  17. data/lib/isodoc/iec/xref.rb +9 -8
  18. data/lib/{asciidoctor → metanorma}/iec/basicdoc.rng +0 -0
  19. data/lib/{asciidoctor → metanorma}/iec/biblio.rng +0 -0
  20. data/lib/metanorma/iec/converter.rb +143 -0
  21. data/lib/{asciidoctor → metanorma}/iec/front.rb +3 -4
  22. data/lib/{asciidoctor → metanorma}/iec/iec.rng +48 -0
  23. data/lib/{asciidoctor → metanorma}/iec/iec_intro_en.xml +0 -0
  24. data/lib/{asciidoctor → metanorma}/iec/iec_intro_fr.xml +0 -0
  25. data/lib/{asciidoctor → metanorma}/iec/isodoc.rng +90 -18
  26. data/lib/{asciidoctor → metanorma}/iec/isostandard.rng +14 -0
  27. data/lib/metanorma/iec/processor.rb +15 -8
  28. data/lib/{asciidoctor → metanorma}/iec/reqt.rng +0 -0
  29. data/lib/metanorma/iec/version.rb +1 -1
  30. data/lib/metanorma-iec.rb +1 -1
  31. data/metanorma-iec.gemspec +3 -3
  32. data/spec/isodoc/iev_spec.rb +462 -120
  33. data/spec/isodoc/postproc_spec.rb +2 -5
  34. data/spec/isodoc/ref_spec.rb +359 -353
  35. data/spec/isodoc/terms_spec.rb +183 -181
  36. data/spec/{asciidoctor → metanorma}/base_spec.rb +1 -5
  37. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  38. data/spec/metanorma/cleanup_spec.rb +374 -0
  39. data/spec/metanorma/iev_spec.rb +248 -0
  40. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  41. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  42. data/spec/metanorma/processor_spec.rb +139 -44
  43. data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
  44. data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
  45. data/spec/spec_helper.rb +12 -14
  46. metadata +26 -26
  47. data/lib/asciidoctor/iec/converter.rb +0 -105
  48. data/spec/asciidoctor/cleanup_spec.rb +0 -345
  49. data/spec/asciidoctor/iev_spec.rb +0 -243
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0f93b15453cfa359407b9afc2b07ed564b4256209d1a1c490ec708b250205c7
4
- data.tar.gz: 48761223e457aacb7b6515fa0cf033d26abc7aab905aa4d96bef370e68d2ac08
3
+ metadata.gz: 987a5334c5d941aa6ff1eac64f0b8edc6eb8958fdff9950d1af258e64a8b4664
4
+ data.tar.gz: 47cae3021910adfe22bffa239954953e4855a1761d23b3b60a1ad2c747ef4f25
5
5
  SHA512:
6
- metadata.gz: ddf2798133d649ed17b9c7e6ef0ab681bd649b861ad67bb73c33430bdd32e8e2b7566d4d3bd4063cd08be0d16a49e97cebd0e310c95ccfbe49c28c3aad187956
7
- data.tar.gz: f1a93de254eb03910a2aaa3fc4887b47dddc7004d596bc6cf496ba8b36e0d960d3097f1180feebb8bd74614f05e4a0f0f3260f5559b6b2e0a6cf91301d63fecb
6
+ metadata.gz: 81403aa9928d89f6dcf70efe826c4e973a2b8eb6bf0b072463d07de91d723bd89b27244fa14b45fd6873dbb3ec10c7681762528d3ab878838b79cbd553fd3604
7
+ data.tar.gz: 1a7f54fb482fef04f0ab1fa9107a82e09b0e40c093477c797205a4475e317f39192d525fa467aad44f6ded89b90960a5919e01254670f7a30483659e05e6bae4
@@ -9,35 +9,7 @@ on:
9
9
  pull_request:
10
10
 
11
11
  jobs:
12
- rake:
13
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
14
- runs-on: ${{ matrix.os }}
15
- continue-on-error: ${{ matrix.experimental }}
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- ruby: [ '3.0', '2.7', '2.6', '2.5' ]
20
- os: [ ubuntu-latest, windows-latest, macos-latest ]
21
- experimental: [ false ]
22
- steps:
23
- - uses: actions/checkout@v2
24
- with:
25
- submodules: true
26
-
27
- - uses: ruby/setup-ruby@v1
28
- with:
29
- ruby-version: ${{ matrix.ruby }}
30
- bundler-cache: true
31
-
32
- - run: bundle exec rake
33
-
34
- tests-passed:
35
- needs: rake
36
- runs-on: ubuntu-latest
37
- steps:
38
- - uses: peter-evans/repository-dispatch@v1
39
- with:
40
- token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
41
- repository: ${{ github.repository }}
42
- event-type: tests-passed
43
- client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
12
+ notify:
13
+ uses: metanorma/metanorma-build-scripts/.github/workflows/mn-processor-rake.yml@main
14
+ secrets:
15
+ pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
data/.gitignore CHANGED
@@ -4,3 +4,17 @@
4
4
  coverage/
5
5
 
6
6
  .rubocop-https--*
7
+
8
+ /Gemfile.devel
9
+ /Gemfile.lock
10
+ /spec/assets/iso.doc
11
+ /spec/assets/iso.html
12
+ /spec/assets/iso.pdf
13
+ /test.doc
14
+ /test.err
15
+ /test.html
16
+ /test.pdf
17
+ /test.presentation.xml
18
+ /test.sts.xml
19
+ /test.xml
20
+ /test_alt.html
data/Gemfile CHANGED
@@ -5,3 +5,9 @@ source "https://rubygems.org"
5
5
 
6
6
  # Specify your gem's dependencies in gemspec
7
7
  gemspec
8
+
9
+ gem "reline", "~> 0.2.8.pre.11"
10
+
11
+ if File.exist? "Gemfile.devel"
12
+ eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
13
+ end
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
- require 'isodoc/gem_tasks'
3
+ require "isodoc/gem_tasks"
4
4
 
5
5
  IsoDoc::GemTasks.install
6
6
  RSpec::Core::RakeTask.new(:spec)
@@ -14,13 +14,17 @@ module IsoDoc
14
14
  page_break(out)
15
15
  iec_orgname(out)
16
16
  middle_title(isoxml, out)
17
- out.div **attr_code(id: f ? f["id"] : "") do |s|
17
+ foreword1(f, b, out)
18
+ end
19
+
20
+ def foreword1(sect, boilerplate, out)
21
+ out.div **attr_code(id: sect ? sect["id"] : "") do |s|
18
22
  s.h1(**{ class: "ForewordTitle" }) { |h1| h1 << @i18n.foreword }
19
23
  @meta.get[:doctype] == "Amendment" or
20
24
  s.div **attr_code(class: "boilerplate_legal") do |s1|
21
- b&.elements&.each { |e| parse(e, s1) }
25
+ boilerplate&.elements&.each { |e| parse(e, s1) }
22
26
  end
23
- f&.elements&.each { |e| parse(e, s) unless e.name == "title" }
27
+ sect&.elements&.each { |e| parse(e, s) unless e.name == "title" }
24
28
  end
25
29
  end
26
30
 
@@ -31,19 +35,11 @@ module IsoDoc
31
35
  end
32
36
 
33
37
  def middle_title(_isoxml, out)
34
- title1 = @meta.get[:doctitlemain]&.sub(/\s+$/, "")
35
- @meta.get[:doctitleintro] and
36
- title1 = "#{@meta.get[:doctitleintro]} &mdash; #{title1}"
37
- if @meta.get[:doctitlepart]
38
- title1 += " &mdash;"
39
- title2 = @meta.get[:doctitlepart]&.sub(/\s+$/, "")
40
- @meta.get[:doctitlepartlabel] and
41
- title2 = "#{@meta.get[:doctitlepartlabel]}: #{title2}"
42
- end
38
+ title1, title2 = middle_title_parts(out)
43
39
  out.p(**{ class: "zzSTDTitle1" }) do |p|
44
40
  p.b { |b| b << title1 }
45
41
  end
46
- if @meta.get[:doctitlepart]
42
+ if title2
47
43
  out.p(**{ class: "zzSTDTitle1" }) { |p| p << "&nbsp;" }
48
44
  out.p(**{ class: "zzSTDTitle2" }) do |p|
49
45
  p.b { |b| b << title2 }
@@ -52,6 +48,20 @@ module IsoDoc
52
48
  out.p(**{ class: "zzSTDTitle1" }) { |p| p << "&nbsp;" }
53
49
  end
54
50
 
51
+ def middle_title_parts(_out)
52
+ title1 = @meta.get[:doctitlemain]&.sub(/\s+$/, "")
53
+ @meta.get[:doctitleintro] and
54
+ title1 = "#{@meta.get[:doctitleintro]} &mdash; #{title1}"
55
+ title2 = nil
56
+ if @meta.get[:doctitlepart]
57
+ title1 += " &mdash;"
58
+ title2 = @meta.get[:doctitlepart]&.sub(/\s+$/, "")
59
+ @meta.get[:doctitlepartlabel] and
60
+ title2 = "#{@meta.get[:doctitlepartlabel]}: #{title2}"
61
+ end
62
+ [title1, title2]
63
+ end
64
+
55
65
  def bibliography(isoxml, out)
56
66
  return super unless @is_iev
57
67
  end
@@ -69,7 +79,8 @@ module IsoDoc
69
79
 
70
80
  page_break(out)
71
81
  out.div **attr_code(id: node["id"]) do |div|
72
- out.p(**{ class: "zzSTDTitle2" }) do |p|
82
+ depth = clause_title_depth(node, nil)
83
+ out.send "h#{depth}", **{ class: "zzSTDTitle2" } do |p|
73
84
  p.b do |b|
74
85
  node&.at(ns("./title"))&.children&.each { |c2| parse(c2, b) }
75
86
  end
@@ -80,54 +91,9 @@ module IsoDoc
80
91
  end
81
92
  end
82
93
 
83
- def termref_cleanup(docxml)
84
- return super unless @is_iev
85
-
86
- docxml
87
- .gsub(%r{\s*\[/TERMREF\]\s*</p>\s*<p>\s*\[TERMREF\]}, "; ")
88
- .gsub(/\[TERMREF\]\s*/, l10n("#{@i18n.source}: "))
89
- .gsub(/\s*\[MODIFICATION\]\s*\[\/TERMREF\]/,
90
- l10n(", #{@i18n.modified} [/TERMREF]"))
91
- .gsub(/\s*\[\/TERMREF\]\s*/, l10n(""))
92
- .gsub(/\s*\[MODIFICATION\]/, l10n(", #{@i18n.modified} &mdash; "))
93
- end
94
-
95
94
  def set_termdomain(termdomain)
96
95
  return super unless @is_iev
97
96
  end
98
-
99
- def term_suffix(node, out)
100
- return unless @is_iev
101
-
102
- domain = node&.at(ns("../domain"))&.text
103
- return unless domain
104
-
105
- out << ", &lt;#{domain}&gt;"
106
- end
107
-
108
- def deprecated_term_parse(node, out)
109
- out.p **{ class: "DeprecatedTerms", style: "text-align:left;" } do |p|
110
- p << l10n("#{@i18n.deprecated}: ")
111
- node.children.each { |c| parse(c, p) }
112
- term_suffix(node, p)
113
- end
114
- end
115
-
116
- def admitted_term_parse(node, out)
117
- out.p **{ class: "AltTerms", style: "text-align:left;" } do |p|
118
- node.children.each { |c| parse(c, p) }
119
- term_suffix(node, p)
120
- end
121
- end
122
-
123
- def term_parse(node, out)
124
- return super unless @is_iev
125
-
126
- out.p **{ class: "Terms", style: "text-align:left;" } do |p|
127
- node.children.each { |c| parse(c, p) }
128
- term_suffix(node, p)
129
- end
130
- end
131
97
  end
132
98
  end
133
99
  end
@@ -75,6 +75,12 @@ code *, pre *, tt *, kbd *, samp * {
75
75
  font-family: {{monospacefont}} !important;
76
76
  font-variant-ligatures: none; }
77
77
 
78
+ p code, dt code, li code, label code, legend code, caption code, th code, td code,
79
+ p tt, dt tt, li tt, label tt, legend tt, caption tt, th tt, td tt,
80
+ p kbd, dt kbd, li kbd, label kbd, legend kbd, caption kbd, th kbd, td kbd,
81
+ p samp, dt samp, li samp, label samp, legend samp, caption samp, th samp, td samp {
82
+ font-size: {{monospacefontsize}}; }
83
+
78
84
  article, aside, details, figcaption, figure,
79
85
  footer, header, hgroup, menu, nav, section {
80
86
  display: block; }
@@ -86,6 +92,9 @@ table {
86
92
  h1, h2, h3, h4, h5, h6 {
87
93
  font-family: {{headerfont}}; }
88
94
 
95
+ .h1, .h2, .h3, .h4, .h5, .h6 {
96
+ font-family: {{headerfont}}; }
97
+
89
98
  blockquote, q {
90
99
  quotes: none; }
91
100
  blockquote:before, blockquote:after, q:before, q:after {
@@ -298,19 +307,19 @@ span.partlabel {
298
307
  font-size: 0.9em; }
299
308
 
300
309
  /* TYPOGRAPHY */
301
- h1 {
310
+ h1, .h1 {
302
311
  font-size: 1.5em;
303
312
  line-height: 2em;
304
313
  margin-top: 2em;
305
314
  margin-bottom: 1em; }
306
315
 
307
- h2 {
316
+ h2, .h2 {
308
317
  font-size: 1.2em;
309
318
  line-height: 1.5em;
310
319
  margin-top: 2em;
311
320
  margin-bottom: 1em; }
312
321
 
313
- h1, h2, h3, h4, h5, h6 {
322
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
314
323
  line-height: 1.2; }
315
324
 
316
325
  p {
@@ -322,7 +331,7 @@ p.zzSTDTitle1 {
322
331
  font-size: 1.5em;
323
332
  text-transform: uppercase; }
324
333
 
325
- p.zzSTDTitle2 {
334
+ .zzSTDTitle2 {
326
335
  font-weight: 700;
327
336
  font-size: 1.5em; }
328
337
 
@@ -337,7 +346,7 @@ nav a {
337
346
  text-decoration: none;
338
347
  color: black; }
339
348
 
340
- h2 p {
349
+ h2 p, .h2 p {
341
350
  display: inline; }
342
351
 
343
352
  ul > li {
@@ -365,9 +374,11 @@ p.AltTerms {
365
374
  margin-left: 2em; }
366
375
 
367
376
  p.Terms {
368
- font-weight: bold;
369
377
  margin-top: 0em; }
370
378
 
379
+ p.TermNum {
380
+ font-weight: bold; }
381
+
371
382
  /* Navigation*/
372
383
  @media screen and (min-width: 768px) {
373
384
  nav {
@@ -971,3 +982,24 @@ span.keyword {
971
982
 
972
983
  .Admonition p, .admonition p {
973
984
  margin: 0; }
985
+
986
+ /* Collapse TOC */
987
+ .collapse-group {
988
+ display: flex;
989
+ align-items: center;
990
+ position: relative; }
991
+
992
+ .collapse-button {
993
+ position: absolute;
994
+ right: 0;
995
+ display: inline-block;
996
+ height: 20px;
997
+ width: 20px;
998
+ cursor: pointer;
999
+ background-image: url('data:image/svg+xml,<svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="rgba(0,0,0,.54)" d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg>'); }
1000
+
1001
+ .collapse {
1002
+ display: none; }
1003
+
1004
+ .expand {
1005
+ transform: rotateZ(-180deg); }
@@ -104,21 +104,21 @@ span.partlabel {
104
104
 
105
105
  /* TYPOGRAPHY */
106
106
 
107
- h1 {
107
+ h1, .h1 {
108
108
  font-size: 1.5em;
109
109
  line-height: 2em;
110
110
  margin-top: 2em;
111
111
  margin-bottom: 1em;
112
112
  }
113
113
 
114
- h2 {
114
+ h2, .h2 {
115
115
  font-size: 1.2em;
116
116
  line-height: 1.5em;
117
117
  margin-top: 2em;
118
118
  margin-bottom: 1em;
119
119
  }
120
120
 
121
- h1, h2, h3, h4, h5, h6 {
121
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
122
122
  line-height: 1.2;
123
123
  }
124
124
 
@@ -133,7 +133,7 @@ p.zzSTDTitle1 {
133
133
  text-transform: uppercase;
134
134
  }
135
135
 
136
- p.zzSTDTitle2 {
136
+ .zzSTDTitle2 {
137
137
  font-weight: 700;
138
138
  font-size: 1.5em;
139
139
  }
@@ -152,7 +152,7 @@ nav a {
152
152
  color: black;
153
153
  }
154
154
 
155
- h2 p {
155
+ h2 p, .h2 p {
156
156
  display: inline;
157
157
  }
158
158
 
@@ -188,10 +188,13 @@ p.AltTerms {
188
188
  }
189
189
 
190
190
  p.Terms {
191
- font-weight: bold;
192
191
  margin-top: 0em;
193
192
  }
194
193
 
194
+ p.TermNum {
195
+ font-weight: bold;
196
+ }
197
+
195
198
  /* Navigation*/
196
199
 
197
200
  nav {
@@ -701,3 +704,29 @@ span.keyword {
701
704
  .Admonition p, .admonition p {
702
705
  margin: 0;
703
706
  }
707
+
708
+ /* Collapse TOC */
709
+
710
+ .collapse-group {
711
+ display: flex;
712
+ align-items: center;
713
+ position: relative;
714
+ }
715
+
716
+ .collapse-button {
717
+ position: absolute;
718
+ right: 0;
719
+ display: inline-block;
720
+ height: 20px;
721
+ width: 20px;
722
+ cursor: pointer;
723
+ background-image: url('data:image/svg+xml,<svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="rgba(0,0,0,.54)" d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg>');
724
+ }
725
+
726
+ .collapse {
727
+ display: none;
728
+ }
729
+
730
+ .expand {
731
+ transform: rotateZ(-180deg);
732
+ }
@@ -325,8 +325,7 @@ p.Terms, li.Terms, div.Terms {
325
325
  mso-fareast-font-family: "Times New Roman";
326
326
  letter-spacing: .4pt;
327
327
  mso-ansi-language: EN-GB;
328
- mso-fareast-language: ZH-CN;
329
- font-weight: bold; }
328
+ mso-fareast-language: ZH-CN; }
330
329
 
331
330
  /* IEC: TERM-admitted */
332
331
  p.AltTerms, li.AltTerms, div.AltTerms {
@@ -314,8 +314,7 @@ p.Terms, li.Terms, div.Terms
314
314
  mso-fareast-font-family:"Times New Roman";
315
315
  letter-spacing:.4pt;
316
316
  mso-ansi-language:EN-GB;
317
- mso-fareast-language:ZH-CN;
318
- font-weight:bold;}
317
+ mso-fareast-language:ZH-CN;}
319
318
  /* IEC: TERM-admitted */
320
319
  p.AltTerms, li.AltTerms, div.AltTerms
321
320
  {mso-style-name:"AltTerm\(s\)";
@@ -17,7 +17,6 @@ $('#toggle').on('click', function(){
17
17
  else {
18
18
  $('nav').show();
19
19
  $('nav').animate({ 'left': '0px' }, 'slow');
20
- $('body').animate({ 'margin-left': '298px' }, 'slow');
21
20
  }
22
21
  });
23
22
  </script>
@@ -207,7 +207,7 @@ p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxS
207
207
  div.figure, p.figure {
208
208
  text-align: center; }
209
209
 
210
- h1.main {
210
+ h1.main, .h1 {
211
211
  mso-style-unhide: no;
212
212
  mso-style-qformat: yes;
213
213
  mso-style-name: "Heading 1";
@@ -221,8 +221,6 @@ h1.main {
221
221
  text-indent: -19.85pt;
222
222
  mso-pagination: widow-orphan;
223
223
  page-break-after: avoid;
224
- mso-outline-level: 1;
225
- mso-list: l26 level1 lfo40;
226
224
  mso-hyphenate: none;
227
225
  tab-stops: list 19.85pt;
228
226
  layout-grid-mode: char;
@@ -234,6 +232,10 @@ h1.main {
234
232
  mso-fareast-language: ZH-CN;
235
233
  font-weight: bold; }
236
234
 
235
+ h1.main {
236
+ mso-outline-level: 1;
237
+ mso-list: l26 level1 lfo40; }
238
+
237
239
  /* IEC: p.ANNEXtitle */
238
240
  h1.Annex {
239
241
  mso-style-name: ANNEX_title;
@@ -265,7 +267,7 @@ h1.Annex {
265
267
  h1
266
268
  { mso-list:l26 level1 lfo40;}
267
269
  */
268
- .h2Annex, h2 {
270
+ .h2Annex, h2, .h3 {
269
271
  mso-style-unhide: no;
270
272
  mso-style-qformat: yes;
271
273
  mso-style-parent: "Heading 1";
@@ -293,7 +295,7 @@ h2 {
293
295
  mso-list: l26 level2 lfo40;
294
296
  mso-outline-level: 2; }
295
297
 
296
- .h3Annex, h3 {
298
+ .h3Annex, h3, .h3 {
297
299
  mso-style-unhide: no;
298
300
  mso-style-qformat: yes;
299
301
  mso-style-name: "Heading 3";
@@ -321,7 +323,7 @@ h3 {
321
323
  mso-list: l26 level3 lfo40;
322
324
  mso-outline-level: 3; }
323
325
 
324
- .h4Annex, h4 {
326
+ .h4Annex, h4, .h4 {
325
327
  mso-style-unhide: no;
326
328
  mso-style-qformat: yes;
327
329
  mso-style-name: "Heading 4";
@@ -349,7 +351,7 @@ h4 {
349
351
  mso-list: l26 level2 lfo40;
350
352
  mso-outline-level: 4; }
351
353
 
352
- .h5Annex, h5 {
354
+ .h5Annex, h5, .h5 {
353
355
  mso-style-unhide: no;
354
356
  mso-style-qformat: yes;
355
357
  mso-style-name: "Heading 5";
@@ -377,7 +379,7 @@ h5 {
377
379
  mso-list: l26 level5 lfo40;
378
380
  mso-outline-level: 5; }
379
381
 
380
- h6 {
382
+ h6, .h6 {
381
383
  mso-style-unhide: no;
382
384
  mso-style-qformat: yes;
383
385
  mso-style-name: "Heading 6";
@@ -405,7 +407,7 @@ h6 {
405
407
  mso-list: l26 level6 lfo40;
406
408
  mso-outline-level: 6; }
407
409
 
408
- p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {
410
+ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7, .h7 {
409
411
  mso-style-unhide: no;
410
412
  mso-style-qformat: yes;
411
413
  mso-style-name: "Heading 7";
@@ -434,7 +436,7 @@ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {
434
436
  p.MsoHeading7 {
435
437
  mso-list: l26 level7 lfo40; }
436
438
 
437
- p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {
439
+ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8, .h8 {
438
440
  mso-style-unhide: no;
439
441
  mso-style-qformat: yes;
440
442
  mso-style-name: "Heading 8";
@@ -463,7 +465,7 @@ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {
463
465
  p.MsoHeading8 {
464
466
  mso-list: l26 level8 lfo40; }
465
467
 
466
- p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {
468
+ p.MsoHeading9, li.MsoHeading9, div.MsoHeading9, .h9 {
467
469
  mso-style-unhide: no;
468
470
  mso-style-qformat: yes;
469
471
  mso-style-name: "Heading 9";
@@ -190,7 +190,7 @@ p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxS
190
190
  div.figure, p.figure
191
191
  {text-align: center;}
192
192
 
193
- h1.main
193
+ h1.main, .h1
194
194
  {mso-style-unhide:no;
195
195
  mso-style-qformat:yes;
196
196
  mso-style-name:"Heading 1";
@@ -204,8 +204,6 @@ h1.main
204
204
  text-indent:-19.85pt;
205
205
  mso-pagination:widow-orphan;
206
206
  page-break-after:avoid;
207
- mso-outline-level:1;
208
- mso-list:l26 level1 lfo40;
209
207
  mso-hyphenate:none;
210
208
  tab-stops:list 19.85pt;
211
209
  layout-grid-mode:char;
@@ -216,6 +214,10 @@ h1.main
216
214
  mso-ansi-language:EN-GB;
217
215
  mso-fareast-language:ZH-CN;
218
216
  font-weight:bold;}
217
+ h1.main {
218
+ mso-outline-level:1;
219
+ mso-list:l26 level1 lfo40;
220
+ }
219
221
  /* IEC: p.ANNEXtitle */
220
222
  h1.Annex
221
223
  {mso-style-name:ANNEX_title;
@@ -246,7 +248,7 @@ h1.Annex
246
248
  h1
247
249
  { mso-list:l26 level1 lfo40;}
248
250
  */
249
- .h2Annex, h2
251
+ .h2Annex, h2, .h3
250
252
  {mso-style-unhide:no;
251
253
  mso-style-qformat:yes;
252
254
  mso-style-parent:"Heading 1";
@@ -273,7 +275,7 @@ h2
273
275
  { mso-list:l26 level2 lfo40;
274
276
  mso-outline-level:2;
275
277
  }
276
- .h3Annex, h3
278
+ .h3Annex, h3, .h3
277
279
  {mso-style-unhide:no;
278
280
  mso-style-qformat:yes;
279
281
  mso-style-name:"Heading 3";
@@ -299,7 +301,7 @@ h2
299
301
  h3 {mso-list:l26 level3 lfo40;
300
302
  mso-outline-level:3;
301
303
  }
302
- .h4Annex, h4
304
+ .h4Annex, h4, .h4
303
305
  {mso-style-unhide:no;
304
306
  mso-style-qformat:yes;
305
307
  mso-style-name:"Heading 4";
@@ -325,7 +327,7 @@ h3 {mso-list:l26 level3 lfo40;
325
327
  h4 {mso-list:l26 level2 lfo40;
326
328
  mso-outline-level:4;
327
329
  }
328
- .h5Annex, h5
330
+ .h5Annex, h5, .h5
329
331
  {mso-style-unhide:no;
330
332
  mso-style-qformat:yes;
331
333
  mso-style-name:"Heading 5";
@@ -351,7 +353,7 @@ h4 {mso-list:l26 level2 lfo40;
351
353
  h5 {mso-list:l26 level5 lfo40;
352
354
  mso-outline-level:5;
353
355
  }
354
- h6
356
+ h6, .h6
355
357
  {mso-style-unhide:no;
356
358
  mso-style-qformat:yes;
357
359
  mso-style-name:"Heading 6";
@@ -377,7 +379,7 @@ h6
377
379
  h6 {mso-list:l26 level6 lfo40;
378
380
  mso-outline-level:6;
379
381
  }
380
- p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
382
+ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7, .h7
381
383
  {mso-style-unhide:no;
382
384
  mso-style-qformat:yes;
383
385
  mso-style-name:"Heading 7";
@@ -403,7 +405,7 @@ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
403
405
  mso-fareast-language:ZH-CN;
404
406
  font-weight:bold;}
405
407
  p.MsoHeading7 {mso-list:l26 level7 lfo40;}
406
- p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
408
+ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 ,.h8
407
409
  {mso-style-unhide:no;
408
410
  mso-style-qformat:yes;
409
411
  mso-style-name:"Heading 8";
@@ -429,7 +431,7 @@ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
429
431
  mso-fareast-language:ZH-CN;
430
432
  font-weight:bold;}
431
433
  p.MsoHeading8 {mso-list:l26 level8 lfo40;}
432
- p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
434
+ p.MsoHeading9, li.MsoHeading9, div.MsoHeading9, .h9
433
435
  {mso-style-unhide:no;
434
436
  mso-style-qformat:yes;
435
437
  mso-style-name:"Heading 9";
@@ -38,7 +38,8 @@ module IsoDoc
38
38
  end
39
39
 
40
40
  def authority_cleanup(docxml)
41
- auth = docxml.at("//div[@id = 'boilerplate-feedback' or @class = 'boilerplate-feedback']")
41
+ auth = docxml.at("//div[@id = 'boilerplate-feedback' or "\
42
+ "@class = 'boilerplate-feedback']")
42
43
  auth&.remove
43
44
  super
44
45
  end