metanorma-iec 1.4.2 → 2.0.0

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