metanorma-generic 1.4.10 → 1.6.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b2e83e4ce44a73159911a4cd610b632b91d1a71ddf73a328d07a53eceebd80a
4
- data.tar.gz: 2da7ff5ca318ba325109418e6b18cbb32503c6d8bb3e850fd929c29d57da7d9c
3
+ metadata.gz: 4051c5aaaa0b9eb7a8830a501f63f0d31ac188bcf2da6eff4a2569370c191798
4
+ data.tar.gz: cff9b18009cd0b594bde8789c05318e5ec357f1c5e31fe2d7e20ef58c2cede1d
5
5
  SHA512:
6
- metadata.gz: 231efadc36e7e42df4c3bdea0288aa8b36b5a161d19cc5c5021bf45d657e825f5d69044cd25012ec37b374eb588256fbf0a97fb9d5dbe5b98e07fe63958df5c3
7
- data.tar.gz: d77d7a46e601ec30063ceae7dfc21d355ef22575b0d73779d2acfead46dccf56d08d6fb47d695107803036a163372e2bf28b862b83ae1972625655cb011f1481
6
+ metadata.gz: 9602b51e4a9b97efeddbe0f844bb189cc9f1f251266a88ef9ba3fa5efb534aa35991f079248f4669c59800cc7b2e3910b20c3c8ee14b3df49a57cf4478ff0b9c
7
+ data.tar.gz: 6bc8966b060289541a0702cdee8ad9be5d8707b03d6812673bbea05fedb3748d8b381c7115ecdb5c341bd4aa847b7c3122740a03d6ef6200b87d83e7145867a8
@@ -29,7 +29,6 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
- architecture: 'x64'
33
32
  - name: Update gems
34
33
  run: |
35
34
  sudo gem install bundler --force
@@ -31,7 +31,6 @@ jobs:
31
31
  uses: actions/setup-ruby@v1
32
32
  with:
33
33
  ruby-version: ${{ matrix.ruby }}
34
- architecture: 'x64'
35
34
  - name: Update gems
36
35
  run: |
37
36
  gem install bundler
@@ -39,15 +38,19 @@ jobs:
39
38
  - name: Run specs
40
39
  run: |
41
40
  bundle exec rake
42
- - name: Trigger dependent repositories
43
- if: github.ref == 'refs/heads/master' && matrix.ruby == '2.6'
41
+ - name: Trigger repositories
42
+ if: matrix.ruby == '2.6'
44
43
  env:
45
- GH_USERNAME: ${{ secrets.PAT_USERNAME }}
46
- GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
44
+ GH_USERNAME: metanorma-ci
45
+ GH_ACCESS_TOKEN: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
47
46
  run: |
48
47
  curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
49
48
  [[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
50
- for repo in $DEPENDENT_REPOS
49
+ CLIENT_PAYLOAD=$(cat <<EOF
50
+ "{ "ref": "${GITHUB_REF}", "repo": "${GITHUB_REPOSITORY}" }"
51
+ EOF
52
+ )
53
+ for repo in $REPOS
51
54
  do
52
- sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "{ \"ref\": \"${GITHUB_REF}\" }"
55
+ sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "$CLIENT_PAYLOAD"
53
56
  done
@@ -29,7 +29,6 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
- architecture: 'x64'
33
32
  - name: Update gems
34
33
  shell: pwsh
35
34
  run: |
@@ -532,7 +532,7 @@
532
532
  </define>
533
533
  <define name="LocalityType">
534
534
  <data type="string">
535
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|locality:[a-zA-Z0-9_]+</param>
535
+ <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
536
536
  </data>
537
537
  </define>
538
538
  <define name="referenceFrom">
@@ -24,26 +24,12 @@ module Asciidoctor
24
24
 
25
25
  def baselocation(loc)
26
26
  return nil if loc.nil?
27
- File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
27
+ File.expand_path(File.join(File.dirname(
28
+ self.class::_file || __FILE__), "..", "..", "..", loc))
28
29
  end
29
30
 
30
- def metadata_author(node, xml)
31
- xml.contributor do |c|
32
- c.role **{ type: "author" }
33
- c.organization do |a|
34
- a.name configuration.organization_name_long
35
- end
36
- end
37
- personal_author(node, xml)
38
- end
39
-
40
- def metadata_publisher(node, xml)
41
- xml.contributor do |c|
42
- c.role **{ type: "publisher" }
43
- c.organization do |a|
44
- a.name configuration.organization_name_long
45
- end
46
- end
31
+ def default_publisher
32
+ configuration.organization_name_long
47
33
  end
48
34
 
49
35
  def metadata_committee(node, xml)
@@ -85,18 +71,6 @@ module Asciidoctor
85
71
  xml.docnumber { |i| i << node.attr("docnumber") }
86
72
  end
87
73
 
88
- def metadata_copyright(node, xml)
89
- from = node.attr("copyright-year") || Date.today.year
90
- xml.copyright do |c|
91
- c.from from
92
- c.owner do |owner|
93
- owner.organization do |o|
94
- o.name configuration.organization_name_long
95
- end
96
- end
97
- end
98
- end
99
-
100
74
  def metadata_ext(node, ext)
101
75
  super
102
76
  Array(configuration.metadata_extensions).each do |e|
@@ -105,7 +79,7 @@ module Asciidoctor
105
79
  end
106
80
 
107
81
  def doctype(node)
108
- d = node.attr("doctype")
82
+ d = super
109
83
  configuration.doctypes or return d == "article" ? "standard" : d
110
84
  default = configuration.default_doctype || Array(configuration.doctypes).dig(0) ||
111
85
  "standard"
@@ -138,20 +112,19 @@ module Asciidoctor
138
112
 
139
113
  def document(node)
140
114
  read_config_file(node.attr("customize")) if node.attr("customize")
141
- init(node)
142
- ret1 = makexml(node)
143
- ret = ret1.to_xml(indent: 2)
144
- unless node.attr("nodoc") || !node.attr("docfile")
145
- filename = node.attr("docfile").gsub(/\.adoc/, ".xml").
146
- gsub(%r{^.*/}, "")
147
- File.open(filename, "w") { |f| f.write(ret) }
148
- html_converter(node).convert filename unless node.attr("nodoc")
149
- word_converter(node).convert filename unless node.attr("nodoc")
150
- pdf_converter(node)&.convert filename unless node.attr("nodoc")
151
- end
152
- @log.write(@localdir + @filename + ".err") unless @novalid
153
- @files_to_delete.each { |f| FileUtils.rm f }
154
- ret
115
+ super
116
+ end
117
+
118
+ def outputs(node, ret)
119
+ File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
120
+ presentation_xml_converter(node).convert(@filename + ".xml")
121
+ html_converter(node).convert(@filename + ".presentation.xml",
122
+ nil, false, "#{@filename}.html")
123
+ doc_converter(node).convert(@filename + ".presentation.xml",
124
+ nil, false, "#{@filename}.doc")
125
+ pdf_converter(node)&.convert(@filename + ".presentation.xml",
126
+ nil, false, "#{@filename}.pdf")
127
+
155
128
  end
156
129
 
157
130
  def validate(doc)
@@ -191,11 +164,15 @@ module Asciidoctor
191
164
  IsoDoc::Generic::HtmlConvert.new(html_extract_attributes(node))
192
165
  end
193
166
 
167
+ def presentation_xml_converter(node)
168
+ IsoDoc::Generic::PresentationXMLConvert.new(html_extract_attributes(node))
169
+ end
170
+
194
171
  alias_method :pdf_converter, :html_converter
195
172
  alias_method :style, :blank_method
196
173
  alias_method :title_validate, :blank_method
197
174
 
198
- def word_converter(node)
175
+ def doc_converter(node)
199
176
  IsoDoc::Generic::WordConvert.new(doc_extract_attributes(node))
200
177
  end
201
178
 
@@ -206,7 +183,7 @@ module Asciidoctor
206
183
  def boilerplate_isodoc(xmldoc)
207
184
  conv = super
208
185
  Metanorma::Generic::Configuration::CONFIG_ATTRS.each do |a|
209
- conv.labels[a] = configuration.send a
186
+ conv.i18n.set(a, configuration.send(a))
210
187
  end
211
188
  conv
212
189
  end
@@ -42,8 +42,11 @@
42
42
  </define>
43
43
  <define name="xref">
44
44
  <element name="xref">
45
+ <!-- attribute target { xsd:IDREF }, -->
45
46
  <attribute name="target">
46
- <data type="IDREF"/>
47
+ <data type="string">
48
+ <param name="pattern">\i\c*|\c+#\c+</param>
49
+ </data>
47
50
  </attribute>
48
51
  <optional>
49
52
  <attribute name="type">
@@ -64,6 +67,85 @@
64
67
  <text/>
65
68
  </element>
66
69
  </define>
70
+ <define name="ul">
71
+ <element name="ul">
72
+ <attribute name="id">
73
+ <data type="ID"/>
74
+ </attribute>
75
+ <optional>
76
+ <attribute name="keep-with-next">
77
+ <data type="boolean"/>
78
+ </attribute>
79
+ </optional>
80
+ <optional>
81
+ <attribute name="keep-lines-together">
82
+ <data type="boolean"/>
83
+ </attribute>
84
+ </optional>
85
+ <oneOrMore>
86
+ <ref name="li"/>
87
+ </oneOrMore>
88
+ <zeroOrMore>
89
+ <ref name="note"/>
90
+ </zeroOrMore>
91
+ </element>
92
+ </define>
93
+ <define name="ol">
94
+ <element name="ol">
95
+ <attribute name="id">
96
+ <data type="ID"/>
97
+ </attribute>
98
+ <optional>
99
+ <attribute name="keep-with-next">
100
+ <data type="boolean"/>
101
+ </attribute>
102
+ </optional>
103
+ <optional>
104
+ <attribute name="keep-lines-together">
105
+ <data type="boolean"/>
106
+ </attribute>
107
+ </optional>
108
+ <attribute name="type">
109
+ <choice>
110
+ <value>roman</value>
111
+ <value>alphabet</value>
112
+ <value>arabic</value>
113
+ <value>roman_upper</value>
114
+ <value>alphabet_upper</value>
115
+ </choice>
116
+ </attribute>
117
+ <oneOrMore>
118
+ <ref name="li"/>
119
+ </oneOrMore>
120
+ <zeroOrMore>
121
+ <ref name="note"/>
122
+ </zeroOrMore>
123
+ </element>
124
+ </define>
125
+ <define name="dl">
126
+ <element name="dl">
127
+ <attribute name="id">
128
+ <data type="ID"/>
129
+ </attribute>
130
+ <optional>
131
+ <attribute name="keep-with-next">
132
+ <data type="boolean"/>
133
+ </attribute>
134
+ </optional>
135
+ <optional>
136
+ <attribute name="keep-lines-together">
137
+ <data type="boolean"/>
138
+ </attribute>
139
+ </optional>
140
+ <oneOrMore>
141
+ <ref name="dt"/>
142
+ <ref name="dd"/>
143
+ </oneOrMore>
144
+ <zeroOrMore>
145
+ <ref name="note"/>
146
+ </zeroOrMore>
147
+ </element>
148
+ </define>
67
149
  <define name="example">
68
150
  <element name="example">
69
151
  <attribute name="id">
@@ -77,6 +159,19 @@
77
159
  <optional>
78
160
  <attribute name="subsequence"/>
79
161
  </optional>
162
+ <optional>
163
+ <attribute name="number"/>
164
+ </optional>
165
+ <optional>
166
+ <attribute name="keep-with-next">
167
+ <data type="boolean"/>
168
+ </attribute>
169
+ </optional>
170
+ <optional>
171
+ <attribute name="keep-lines-together">
172
+ <data type="boolean"/>
173
+ </attribute>
174
+ </optional>
80
175
  <optional>
81
176
  <ref name="tname"/>
82
177
  </optional>
@@ -97,6 +192,296 @@
97
192
  </zeroOrMore>
98
193
  </element>
99
194
  </define>
195
+ <define name="table">
196
+ <element name="table">
197
+ <attribute name="id">
198
+ <data type="ID"/>
199
+ </attribute>
200
+ <optional>
201
+ <attribute name="unnumbered">
202
+ <data type="boolean"/>
203
+ </attribute>
204
+ </optional>
205
+ <optional>
206
+ <attribute name="number"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="subsequence"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="alt"/>
213
+ </optional>
214
+ <optional>
215
+ <attribute name="summary"/>
216
+ </optional>
217
+ <optional>
218
+ <attribute name="uri">
219
+ <data type="anyURI"/>
220
+ </attribute>
221
+ </optional>
222
+ <optional>
223
+ <attribute name="keep-with-next">
224
+ <data type="boolean"/>
225
+ </attribute>
226
+ </optional>
227
+ <optional>
228
+ <attribute name="keep-lines-together">
229
+ <data type="boolean"/>
230
+ </attribute>
231
+ </optional>
232
+ <optional>
233
+ <ref name="tname"/>
234
+ </optional>
235
+ <optional>
236
+ <ref name="thead"/>
237
+ </optional>
238
+ <ref name="tbody"/>
239
+ <optional>
240
+ <ref name="tfoot"/>
241
+ </optional>
242
+ <zeroOrMore>
243
+ <ref name="table-note"/>
244
+ </zeroOrMore>
245
+ <optional>
246
+ <ref name="dl"/>
247
+ </optional>
248
+ </element>
249
+ </define>
250
+ <define name="figure">
251
+ <element name="figure">
252
+ <attribute name="id">
253
+ <data type="ID"/>
254
+ </attribute>
255
+ <optional>
256
+ <attribute name="unnumbered">
257
+ <data type="boolean"/>
258
+ </attribute>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="number"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="subsequence"/>
265
+ </optional>
266
+ <optional>
267
+ <attribute name="keep-with-next">
268
+ <data type="boolean"/>
269
+ </attribute>
270
+ </optional>
271
+ <optional>
272
+ <attribute name="keep-lines-together">
273
+ <data type="boolean"/>
274
+ </attribute>
275
+ </optional>
276
+ <optional>
277
+ <attribute name="class"/>
278
+ </optional>
279
+ <optional>
280
+ <ref name="source"/>
281
+ </optional>
282
+ <optional>
283
+ <ref name="tname"/>
284
+ </optional>
285
+ <choice>
286
+ <ref name="image"/>
287
+ <ref name="video"/>
288
+ <ref name="audio"/>
289
+ <ref name="pre"/>
290
+ <oneOrMore>
291
+ <ref name="paragraph-with-footnote"/>
292
+ </oneOrMore>
293
+ <zeroOrMore>
294
+ <ref name="figure"/>
295
+ </zeroOrMore>
296
+ </choice>
297
+ <zeroOrMore>
298
+ <ref name="fn"/>
299
+ </zeroOrMore>
300
+ <optional>
301
+ <ref name="dl"/>
302
+ </optional>
303
+ <zeroOrMore>
304
+ <ref name="note"/>
305
+ </zeroOrMore>
306
+ </element>
307
+ </define>
308
+ <define name="sourcecode">
309
+ <element name="sourcecode">
310
+ <attribute name="id">
311
+ <data type="ID"/>
312
+ </attribute>
313
+ <optional>
314
+ <attribute name="unnumbered">
315
+ <data type="boolean"/>
316
+ </attribute>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="number"/>
320
+ </optional>
321
+ <optional>
322
+ <attribute name="subsequence"/>
323
+ </optional>
324
+ <optional>
325
+ <attribute name="keep-with-next">
326
+ <data type="boolean"/>
327
+ </attribute>
328
+ </optional>
329
+ <optional>
330
+ <attribute name="keep-lines-together">
331
+ <data type="boolean"/>
332
+ </attribute>
333
+ </optional>
334
+ <optional>
335
+ <attribute name="lang"/>
336
+ </optional>
337
+ <optional>
338
+ <ref name="tname"/>
339
+ </optional>
340
+ <oneOrMore>
341
+ <choice>
342
+ <text/>
343
+ <ref name="callout"/>
344
+ </choice>
345
+ </oneOrMore>
346
+ <zeroOrMore>
347
+ <ref name="annotation"/>
348
+ </zeroOrMore>
349
+ <zeroOrMore>
350
+ <ref name="note"/>
351
+ </zeroOrMore>
352
+ </element>
353
+ </define>
354
+ <define name="formula">
355
+ <element name="formula">
356
+ <attribute name="id">
357
+ <data type="ID"/>
358
+ </attribute>
359
+ <optional>
360
+ <attribute name="unnumbered">
361
+ <data type="boolean"/>
362
+ </attribute>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="number"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="subsequence"/>
369
+ </optional>
370
+ <optional>
371
+ <attribute name="keep-with-next">
372
+ <data type="boolean"/>
373
+ </attribute>
374
+ </optional>
375
+ <optional>
376
+ <attribute name="keep-lines-together">
377
+ <data type="boolean"/>
378
+ </attribute>
379
+ </optional>
380
+ <optional>
381
+ <attribute name="inequality">
382
+ <data type="boolean"/>
383
+ </attribute>
384
+ </optional>
385
+ <ref name="stem"/>
386
+ <optional>
387
+ <ref name="dl"/>
388
+ </optional>
389
+ <zeroOrMore>
390
+ <ref name="note"/>
391
+ </zeroOrMore>
392
+ </element>
393
+ </define>
394
+ <define name="ParagraphType">
395
+ <attribute name="id">
396
+ <data type="ID"/>
397
+ </attribute>
398
+ <optional>
399
+ <attribute name="align">
400
+ <ref name="Alignments"/>
401
+ </attribute>
402
+ </optional>
403
+ <optional>
404
+ <attribute name="keep-with-next">
405
+ <data type="boolean"/>
406
+ </attribute>
407
+ </optional>
408
+ <optional>
409
+ <attribute name="keep-lines-together">
410
+ <data type="boolean"/>
411
+ </attribute>
412
+ </optional>
413
+ <zeroOrMore>
414
+ <ref name="TextElement"/>
415
+ </zeroOrMore>
416
+ <zeroOrMore>
417
+ <ref name="note"/>
418
+ </zeroOrMore>
419
+ </define>
420
+ <define name="paragraph-with-footnote">
421
+ <element name="p">
422
+ <attribute name="id">
423
+ <data type="ID"/>
424
+ </attribute>
425
+ <optional>
426
+ <attribute name="align">
427
+ <ref name="Alignments"/>
428
+ </attribute>
429
+ </optional>
430
+ <optional>
431
+ <attribute name="keep-with-next">
432
+ <data type="boolean"/>
433
+ </attribute>
434
+ </optional>
435
+ <optional>
436
+ <attribute name="keep-lines-together">
437
+ <data type="boolean"/>
438
+ </attribute>
439
+ </optional>
440
+ <zeroOrMore>
441
+ <choice>
442
+ <ref name="TextElement"/>
443
+ <ref name="fn"/>
444
+ </choice>
445
+ </zeroOrMore>
446
+ <zeroOrMore>
447
+ <ref name="note"/>
448
+ </zeroOrMore>
449
+ </element>
450
+ </define>
451
+ <define name="quote">
452
+ <element name="quote">
453
+ <attribute name="id">
454
+ <data type="ID"/>
455
+ </attribute>
456
+ <optional>
457
+ <attribute name="alignment">
458
+ <ref name="Alignments"/>
459
+ </attribute>
460
+ </optional>
461
+ <optional>
462
+ <attribute name="keep-with-next">
463
+ <data type="boolean"/>
464
+ </attribute>
465
+ </optional>
466
+ <optional>
467
+ <attribute name="keep-lines-together">
468
+ <data type="boolean"/>
469
+ </attribute>
470
+ </optional>
471
+ <optional>
472
+ <ref name="quote-source"/>
473
+ </optional>
474
+ <optional>
475
+ <ref name="quote-author"/>
476
+ </optional>
477
+ <oneOrMore>
478
+ <ref name="paragraph-with-footnote"/>
479
+ </oneOrMore>
480
+ <zeroOrMore>
481
+ <ref name="note"/>
482
+ </zeroOrMore>
483
+ </element>
484
+ </define>
100
485
  <define name="BibDataExtensionType">
101
486
  <ref name="doctype"/>
102
487
  <optional>
@@ -165,6 +550,30 @@
165
550
  <attribute name="id">
166
551
  <data type="ID"/>
167
552
  </attribute>
553
+ <optional>
554
+ <attribute name="unnumbered">
555
+ <data type="boolean"/>
556
+ </attribute>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="number"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="subsequence"/>
563
+ </optional>
564
+ <optional>
565
+ <attribute name="keep-with-next">
566
+ <data type="boolean"/>
567
+ </attribute>
568
+ </optional>
569
+ <optional>
570
+ <attribute name="keep-lines-together">
571
+ <data type="boolean"/>
572
+ </attribute>
573
+ </optional>
574
+ <optional>
575
+ <attribute name="type"/>
576
+ </optional>
168
577
  <oneOrMore>
169
578
  <choice>
170
579
  <ref name="paragraph"/>
@@ -516,6 +925,9 @@
516
925
  <optional>
517
926
  <attribute name="script"/>
518
927
  </optional>
928
+ <optional>
929
+ <attribute name="type"/>
930
+ </optional>
519
931
  <optional>
520
932
  <attribute name="obligation">
521
933
  <choice>
@@ -555,9 +967,6 @@
555
967
  </define>
556
968
  <define name="content-subsection">
557
969
  <element name="clause">
558
- <optional>
559
- <attribute name="type"/>
560
- </optional>
561
970
  <ref name="Content-Section"/>
562
971
  </element>
563
972
  </define>
@@ -586,6 +995,9 @@
586
995
  </choice>
587
996
  </attribute>
588
997
  </optional>
998
+ <optional>
999
+ <attribute name="type"/>
1000
+ </optional>
589
1001
  <optional>
590
1002
  <ref name="section-title"/>
591
1003
  </optional>
@@ -605,9 +1017,6 @@
605
1017
  </define>
606
1018
  <define name="clause">
607
1019
  <element name="clause">
608
- <optional>
609
- <attribute name="type"/>
610
- </optional>
611
1020
  <ref name="Clause-Section"/>
612
1021
  </element>
613
1022
  </define>
@@ -636,6 +1045,9 @@
636
1045
  </choice>
637
1046
  </attribute>
638
1047
  </optional>
1048
+ <optional>
1049
+ <attribute name="type"/>
1050
+ </optional>
639
1051
  <optional>
640
1052
  <ref name="section-title"/>
641
1053
  </optional>
@@ -774,6 +1186,9 @@
774
1186
  <optional>
775
1187
  <attribute name="script"/>
776
1188
  </optional>
1189
+ <optional>
1190
+ <attribute name="type"/>
1191
+ </optional>
777
1192
  <optional>
778
1193
  <attribute name="obligation">
779
1194
  <choice>
@@ -910,6 +1325,27 @@
910
1325
  <attribute name="id">
911
1326
  <data type="ID"/>
912
1327
  </attribute>
1328
+ <optional>
1329
+ <attribute name="unnumbered">
1330
+ <data type="boolean"/>
1331
+ </attribute>
1332
+ </optional>
1333
+ <optional>
1334
+ <attribute name="number"/>
1335
+ </optional>
1336
+ <optional>
1337
+ <attribute name="subsequence"/>
1338
+ </optional>
1339
+ <optional>
1340
+ <attribute name="keep-with-next">
1341
+ <data type="boolean"/>
1342
+ </attribute>
1343
+ </optional>
1344
+ <optional>
1345
+ <attribute name="keep-lines-together">
1346
+ <data type="boolean"/>
1347
+ </attribute>
1348
+ </optional>
913
1349
  <oneOrMore>
914
1350
  <choice>
915
1351
  <ref name="paragraph"/>
@@ -30,9 +30,22 @@
30
30
  <data type="boolean"/>
31
31
  </attribute>
32
32
  </optional>
33
+ <optional>
34
+ <attribute name="number"/>
35
+ </optional>
33
36
  <optional>
34
37
  <attribute name="subsequence"/>
35
38
  </optional>
39
+ <optional>
40
+ <attribute name="keep-with-next">
41
+ <data type="boolean"/>
42
+ </attribute>
43
+ </optional>
44
+ <optional>
45
+ <attribute name="keep-lines-together">
46
+ <data type="boolean"/>
47
+ </attribute>
48
+ </optional>
36
49
  <attribute name="id">
37
50
  <data type="ID"/>
38
51
  </attribute>
@@ -141,6 +154,16 @@
141
154
  <data type="boolean"/>
142
155
  </attribute>
143
156
  </optional>
157
+ <optional>
158
+ <attribute name="keep-with-next">
159
+ <data type="boolean"/>
160
+ </attribute>
161
+ </optional>
162
+ <optional>
163
+ <attribute name="keep-lines-together">
164
+ <data type="boolean"/>
165
+ </attribute>
166
+ </optional>
144
167
  <oneOrMore>
145
168
  <ref name="BasicBlock"/>
146
169
  </oneOrMore>
@@ -2,6 +2,7 @@ require "isodoc/generic/metadata"
2
2
  require "isodoc/generic/html_convert"
3
3
  require "isodoc/generic/pdf_convert"
4
4
  require "isodoc/generic/word_convert"
5
+ require "isodoc/generic/presentation_xml_convert"
5
6
 
6
7
  module IsoDoc
7
8
  module Generic
@@ -1,35 +1,13 @@
1
1
  require "isodoc"
2
- require_relative "metadata"
3
2
  require "fileutils"
4
3
 
5
4
  module IsoDoc
6
5
  module Generic
7
6
  module BaseConvert
8
- def metadata_init(lang, script, labels)
9
- @meta = Metadata.new(lang, script, labels)
10
- end
11
-
12
7
  def baselocation(loc)
13
8
  return nil if loc.nil?
14
- File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
15
- end
16
-
17
- def annex_name(annex, name, div)
18
- div.h1 **{ class: "Annex" } do |t|
19
- t << "#{anchor(annex['id'], :label)} "
20
- t.br
21
- t.b do |b|
22
- name&.children&.each { |c2| parse(c2, b) }
23
- end
24
- end
25
- end
26
-
27
- def i18n_init(lang, script)
28
- super
29
- end
30
-
31
- def fileloc(loc)
32
- File.join(File.dirname(__FILE__), loc)
9
+ File.expand_path(File.join(
10
+ File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
33
11
  end
34
12
 
35
13
  def cleanup(docxml)
@@ -47,7 +25,8 @@ module IsoDoc
47
25
  end
48
26
 
49
27
  def make_body(xml, docxml)
50
- body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72", "xml:lang": "EN-US", class: "container" }
28
+ body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
29
+ "xml:lang": "EN-US", class: "container" }
51
30
  xml.body **body_attr do |body|
52
31
  make_body1(body, docxml)
53
32
  make_body2(body, docxml)
@@ -1,4 +1,5 @@
1
1
  require_relative "base_convert"
2
+ require_relative "init"
2
3
  require "isodoc"
3
4
 
4
5
  module IsoDoc
@@ -51,10 +52,13 @@ module IsoDoc
51
52
 
52
53
  def googlefonts
53
54
  return unless configuration.webfont
54
- Array(configuration.webfont).map { |x| %{<link href="#{x.gsub(/\&amp;/, '&')}" rel="stylesheet">} }.join("\n")
55
+ Array(configuration.webfont).map do |x|
56
+ %{<link href="#{x.gsub(/\&amp;/, '&')}" rel="stylesheet">}
57
+ end.join("\n")
55
58
  end
56
59
 
57
60
  include BaseConvert
61
+ include Init
58
62
  end
59
63
  end
60
64
  end
@@ -0,0 +1,27 @@
1
+ require "isodoc"
2
+ require_relative "metadata"
3
+ require_relative "xref"
4
+
5
+ module IsoDoc
6
+ module Generic
7
+ module Init
8
+ def metadata_init(lang, script, i18n)
9
+ @meta = Metadata.new(lang, script, i18n)
10
+ end
11
+
12
+ def xref_init(lang, script, klass, i18n, options)
13
+ html = HtmlConvert.new(language: lang, script: script)
14
+ @xrefs = Xref.new(lang, script, html, i18n, options)
15
+ end
16
+
17
+ def i18n_init(lang, script, i18nyaml = nil)
18
+ @i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
19
+ end
20
+
21
+ def fileloc(loc)
22
+ File.join(File.dirname(__FILE__), loc)
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -24,7 +24,8 @@ module IsoDoc
24
24
 
25
25
  def baselocation(loc)
26
26
  return nil if loc.nil?
27
- File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
27
+ File.expand_path(File.join(
28
+ File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
28
29
  end
29
30
 
30
31
  def configuration
@@ -1,4 +1,5 @@
1
1
  require_relative "base_convert"
2
+ require_relative "init"
2
3
  require "isodoc"
3
4
 
4
5
  module IsoDoc
@@ -58,6 +59,7 @@ module IsoDoc
58
59
  end
59
60
 
60
61
  include BaseConvert
62
+ include Init
61
63
  end
62
64
  end
63
65
  end
@@ -0,0 +1,19 @@
1
+ require_relative "init"
2
+ require "isodoc"
3
+
4
+ module IsoDoc
5
+ module Generic
6
+ class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
7
+ def annex1(f)
8
+ lbl = @xrefs.anchor(f['id'], :label)
9
+ if t = f.at(ns("./title"))
10
+ t.children = "<strong>#{t.children.to_xml}</strong>"
11
+ end
12
+ prefix_name(f, "<br/>", lbl, "title")
13
+ end
14
+
15
+ include Init
16
+ end
17
+ end
18
+ end
19
+
@@ -1,4 +1,5 @@
1
1
  require_relative "base_convert"
2
+ require_relative "init"
2
3
  require "isodoc"
3
4
 
4
5
  module IsoDoc
@@ -22,8 +23,10 @@ module IsoDoc
22
23
 
23
24
  def default_fonts(options)
24
25
  {
25
- bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : configuration.word_bodyfont || '"Arial",sans-serif'),
26
- headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : configuration.word_headerfont || '"Arial",sans-serif'),
26
+ bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
27
+ configuration.word_bodyfont || '"Arial",sans-serif'),
28
+ headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
29
+ configuration.word_headerfont || '"Arial",sans-serif'),
27
30
  monospacefont: configuration.word_monospacefont || '"Courier New",monospace'
28
31
  }
29
32
  end
@@ -51,6 +54,7 @@ module IsoDoc
51
54
  end
52
55
 
53
56
  include BaseConvert
57
+ include Init
54
58
  end
55
59
  end
56
60
  end
@@ -0,0 +1,6 @@
1
+ module IsoDoc
2
+ module Generic
3
+ class Xref < IsoDoc::Xref
4
+ end
5
+ end
6
+ end
@@ -40,10 +40,6 @@ module Metanorma
40
40
  "Metanorma::Generic #{Metanorma::Generic::VERSION}"
41
41
  end
42
42
 
43
- def input_to_isodoc(file, filename)
44
- Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
45
- end
46
-
47
43
  def extract_options(file)
48
44
  head = file.sub(/\n\n.*$/m, "\n")
49
45
  /\n:htmlstylesheet: (?<htmlstylesheet>[^\n]+)\n/ =~ head
@@ -73,14 +69,16 @@ module Metanorma
73
69
  super.merge(new_options)
74
70
  end
75
71
 
76
- def output(isodoc_node, outname, format, options={})
72
+ def output(isodoc_node, inname, outname, format, options={})
77
73
  case format
78
74
  when :html
79
- IsoDoc::Generic::HtmlConvert.new(options).convert(outname, isodoc_node)
75
+ IsoDoc::Generic::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
80
76
  when :doc
81
- IsoDoc::Generic::WordConvert.new(options).convert(outname, isodoc_node)
77
+ IsoDoc::Generic::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
82
78
  when :pdf
83
- IsoDoc::Generic::PdfConvert.new(options).convert(outname, isodoc_node)
79
+ IsoDoc::Generic::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
80
+ when :presentation
81
+ IsoDoc::Generic::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
84
82
  else
85
83
  super
86
84
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Generic
3
- VERSION = "1.4.10"
3
+ VERSION = "1.6.2"
4
4
  end
5
5
  end
@@ -28,10 +28,11 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency "htmlentities", "~> 4.3.4"
30
30
  spec.add_dependency "ruby-jing"
31
- spec.add_dependency "metanorma-standoc", "~> 1.4.0"
32
- spec.add_dependency "isodoc", "~> 1.0.0"
31
+ spec.add_dependency "metanorma-standoc", "~> 1.5.0"
32
+ spec.add_dependency "isodoc", "~> 1.2.0"
33
33
 
34
34
  spec.add_development_dependency "byebug", "~> 9.1"
35
+ spec.add_development_dependency "sassc", "2.4.0"
35
36
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
36
37
  spec.add_development_dependency "guard", "~> 2.14"
37
38
  spec.add_development_dependency "guard-rspec", "~> 4.7"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-generic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.10
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-08 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.4.0
47
+ version: 1.5.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.4.0
54
+ version: 1.5.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: isodoc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: 1.2.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.0
68
+ version: 1.2.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '9.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sassc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 2.4.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.4.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: equivalent-xml
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -239,9 +253,12 @@ files:
239
253
  - lib/isodoc/generic/html/word_generic_titlepage.html
240
254
  - lib/isodoc/generic/html/wordstyle.scss
241
255
  - lib/isodoc/generic/html_convert.rb
256
+ - lib/isodoc/generic/init.rb
242
257
  - lib/isodoc/generic/metadata.rb
243
258
  - lib/isodoc/generic/pdf_convert.rb
259
+ - lib/isodoc/generic/presentation_xml_convert.rb
244
260
  - lib/isodoc/generic/word_convert.rb
261
+ - lib/isodoc/generic/xref.rb
245
262
  - lib/metanorma-generic.rb
246
263
  - lib/metanorma/generic.rb
247
264
  - lib/metanorma/generic/processor.rb
@@ -252,7 +269,7 @@ homepage: https://github.com/metanorma/metanorma-generic
252
269
  licenses:
253
270
  - BSD-2-Clause
254
271
  metadata: {}
255
- post_install_message:
272
+ post_install_message:
256
273
  rdoc_options: []
257
274
  require_paths:
258
275
  - lib
@@ -267,9 +284,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
284
  - !ruby/object:Gem::Version
268
285
  version: '0'
269
286
  requirements: []
270
- rubyforge_project:
271
- rubygems_version: 2.7.6
272
- signing_key:
287
+ rubygems_version: 3.0.3
288
+ signing_key:
273
289
  specification_version: 4
274
290
  summary: Metanorma template gem for customisation.
275
291
  test_files: []