metanorma-generic 1.4.9 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13876d7ba46c56c51ad6e953083371bc93612015a085d51f0d9d8bb23027588a
4
- data.tar.gz: c50a5e654d3dc6de6214d09754e3523ef5a1af916b9a1a67cbc84c8d2c7c5ce4
3
+ metadata.gz: b73bf6f76844d72f936a43ae9854fd9c56c0971404fb29a6e0749fd0882ec073
4
+ data.tar.gz: d62573d1a7fa43a18a64d256df76fb46672339b14166b65d9d3bb8377a5d8e06
5
5
  SHA512:
6
- metadata.gz: 45aa718a205ef7f69a6011ad5a41efba671f7b62967d790e4cc663452cdb31f4a2d517aa7ec6e6aaf2d6a7d665d129ee31ccfd49cba43a52403649a3250a8dd5
7
- data.tar.gz: 8b18e2b2d890421755140235202f2345491b4e2dc27d97f968bfabfafe32f10906d33c9d76db19ddb40f00a143747fd31e6261a0c86a0bcff6cf12876bead2f6
6
+ metadata.gz: 92f06b85bc9aa9ec83e88903bed4e2530d4ac5b0c1f064e4a1034af9869944af2620a78a4908c7e3b93a8877f5153c45528f21decf6e17599825203cb8ddcf46
7
+ data.tar.gz: c5ede8599a30d940c5633dbb63e97bdf37ad1edc700561fddb4e2186ee09eb081bb27b0451dd79d508d0c7b4aa70480c8ae6426446d925cd280a37377459d90a
@@ -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">
@@ -661,9 +661,9 @@
661
661
  <optional>
662
662
  <ref name="status"/>
663
663
  </optional>
664
- <optional>
664
+ <zeroOrMore>
665
665
  <ref name="copyright"/>
666
- </optional>
666
+ </zeroOrMore>
667
667
  <zeroOrMore>
668
668
  <ref name="docrelation"/>
669
669
  </zeroOrMore>
@@ -1021,7 +1021,17 @@
1021
1021
  <optional>
1022
1022
  <ref name="to"/>
1023
1023
  </optional>
1024
- <ref name="owner"/>
1024
+ <oneOrMore>
1025
+ <ref name="owner"/>
1026
+ </oneOrMore>
1027
+ <optional>
1028
+ <ref name="copyright_scope"/>
1029
+ </optional>
1030
+ </element>
1031
+ </define>
1032
+ <define name="copyright_scope">
1033
+ <element name="scope">
1034
+ <text/>
1025
1035
  </element>
1026
1036
  </define>
1027
1037
  <define name="from">
@@ -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|
@@ -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
@@ -53,9 +53,96 @@
53
53
  <optional>
54
54
  <attribute name="alt"/>
55
55
  </optional>
56
+ <optional>
57
+ <attribute name="case">
58
+ <choice>
59
+ <value>capital</value>
60
+ <value>lowercase</value>
61
+ </choice>
62
+ </attribute>
63
+ </optional>
56
64
  <text/>
57
65
  </element>
58
66
  </define>
67
+ <define name="ul">
68
+ <element name="ul">
69
+ <attribute name="id">
70
+ <data type="ID"/>
71
+ </attribute>
72
+ <optional>
73
+ <attribute name="keep-with-next">
74
+ <data type="boolean"/>
75
+ </attribute>
76
+ </optional>
77
+ <optional>
78
+ <attribute name="keep-lines-together">
79
+ <data type="boolean"/>
80
+ </attribute>
81
+ </optional>
82
+ <oneOrMore>
83
+ <ref name="li"/>
84
+ </oneOrMore>
85
+ <zeroOrMore>
86
+ <ref name="note"/>
87
+ </zeroOrMore>
88
+ </element>
89
+ </define>
90
+ <define name="ol">
91
+ <element name="ol">
92
+ <attribute name="id">
93
+ <data type="ID"/>
94
+ </attribute>
95
+ <optional>
96
+ <attribute name="keep-with-next">
97
+ <data type="boolean"/>
98
+ </attribute>
99
+ </optional>
100
+ <optional>
101
+ <attribute name="keep-lines-together">
102
+ <data type="boolean"/>
103
+ </attribute>
104
+ </optional>
105
+ <attribute name="type">
106
+ <choice>
107
+ <value>roman</value>
108
+ <value>alphabet</value>
109
+ <value>arabic</value>
110
+ <value>roman_upper</value>
111
+ <value>alphabet_upper</value>
112
+ </choice>
113
+ </attribute>
114
+ <oneOrMore>
115
+ <ref name="li"/>
116
+ </oneOrMore>
117
+ <zeroOrMore>
118
+ <ref name="note"/>
119
+ </zeroOrMore>
120
+ </element>
121
+ </define>
122
+ <define name="dl">
123
+ <element name="dl">
124
+ <attribute name="id">
125
+ <data type="ID"/>
126
+ </attribute>
127
+ <optional>
128
+ <attribute name="keep-with-next">
129
+ <data type="boolean"/>
130
+ </attribute>
131
+ </optional>
132
+ <optional>
133
+ <attribute name="keep-lines-together">
134
+ <data type="boolean"/>
135
+ </attribute>
136
+ </optional>
137
+ <oneOrMore>
138
+ <ref name="dt"/>
139
+ <ref name="dd"/>
140
+ </oneOrMore>
141
+ <zeroOrMore>
142
+ <ref name="note"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </define>
59
146
  <define name="example">
60
147
  <element name="example">
61
148
  <attribute name="id">
@@ -69,6 +156,19 @@
69
156
  <optional>
70
157
  <attribute name="subsequence"/>
71
158
  </optional>
159
+ <optional>
160
+ <attribute name="number"/>
161
+ </optional>
162
+ <optional>
163
+ <attribute name="keep-with-next">
164
+ <data type="boolean"/>
165
+ </attribute>
166
+ </optional>
167
+ <optional>
168
+ <attribute name="keep-lines-together">
169
+ <data type="boolean"/>
170
+ </attribute>
171
+ </optional>
72
172
  <optional>
73
173
  <ref name="tname"/>
74
174
  </optional>
@@ -89,6 +189,296 @@
89
189
  </zeroOrMore>
90
190
  </element>
91
191
  </define>
192
+ <define name="table">
193
+ <element name="table">
194
+ <attribute name="id">
195
+ <data type="ID"/>
196
+ </attribute>
197
+ <optional>
198
+ <attribute name="unnumbered">
199
+ <data type="boolean"/>
200
+ </attribute>
201
+ </optional>
202
+ <optional>
203
+ <attribute name="number"/>
204
+ </optional>
205
+ <optional>
206
+ <attribute name="subsequence"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="alt"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="summary"/>
213
+ </optional>
214
+ <optional>
215
+ <attribute name="uri">
216
+ <data type="anyURI"/>
217
+ </attribute>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="keep-with-next">
221
+ <data type="boolean"/>
222
+ </attribute>
223
+ </optional>
224
+ <optional>
225
+ <attribute name="keep-lines-together">
226
+ <data type="boolean"/>
227
+ </attribute>
228
+ </optional>
229
+ <optional>
230
+ <ref name="tname"/>
231
+ </optional>
232
+ <optional>
233
+ <ref name="thead"/>
234
+ </optional>
235
+ <ref name="tbody"/>
236
+ <optional>
237
+ <ref name="tfoot"/>
238
+ </optional>
239
+ <zeroOrMore>
240
+ <ref name="table-note"/>
241
+ </zeroOrMore>
242
+ <optional>
243
+ <ref name="dl"/>
244
+ </optional>
245
+ </element>
246
+ </define>
247
+ <define name="figure">
248
+ <element name="figure">
249
+ <attribute name="id">
250
+ <data type="ID"/>
251
+ </attribute>
252
+ <optional>
253
+ <attribute name="unnumbered">
254
+ <data type="boolean"/>
255
+ </attribute>
256
+ </optional>
257
+ <optional>
258
+ <attribute name="number"/>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="subsequence"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="keep-with-next">
265
+ <data type="boolean"/>
266
+ </attribute>
267
+ </optional>
268
+ <optional>
269
+ <attribute name="keep-lines-together">
270
+ <data type="boolean"/>
271
+ </attribute>
272
+ </optional>
273
+ <optional>
274
+ <attribute name="class"/>
275
+ </optional>
276
+ <optional>
277
+ <ref name="source"/>
278
+ </optional>
279
+ <optional>
280
+ <ref name="tname"/>
281
+ </optional>
282
+ <choice>
283
+ <ref name="image"/>
284
+ <ref name="video"/>
285
+ <ref name="audio"/>
286
+ <ref name="pre"/>
287
+ <oneOrMore>
288
+ <ref name="paragraph-with-footnote"/>
289
+ </oneOrMore>
290
+ <zeroOrMore>
291
+ <ref name="figure"/>
292
+ </zeroOrMore>
293
+ </choice>
294
+ <zeroOrMore>
295
+ <ref name="fn"/>
296
+ </zeroOrMore>
297
+ <optional>
298
+ <ref name="dl"/>
299
+ </optional>
300
+ <zeroOrMore>
301
+ <ref name="note"/>
302
+ </zeroOrMore>
303
+ </element>
304
+ </define>
305
+ <define name="sourcecode">
306
+ <element name="sourcecode">
307
+ <attribute name="id">
308
+ <data type="ID"/>
309
+ </attribute>
310
+ <optional>
311
+ <attribute name="unnumbered">
312
+ <data type="boolean"/>
313
+ </attribute>
314
+ </optional>
315
+ <optional>
316
+ <attribute name="number"/>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="subsequence"/>
320
+ </optional>
321
+ <optional>
322
+ <attribute name="keep-with-next">
323
+ <data type="boolean"/>
324
+ </attribute>
325
+ </optional>
326
+ <optional>
327
+ <attribute name="keep-lines-together">
328
+ <data type="boolean"/>
329
+ </attribute>
330
+ </optional>
331
+ <optional>
332
+ <attribute name="lang"/>
333
+ </optional>
334
+ <optional>
335
+ <ref name="tname"/>
336
+ </optional>
337
+ <oneOrMore>
338
+ <choice>
339
+ <text/>
340
+ <ref name="callout"/>
341
+ </choice>
342
+ </oneOrMore>
343
+ <zeroOrMore>
344
+ <ref name="annotation"/>
345
+ </zeroOrMore>
346
+ <zeroOrMore>
347
+ <ref name="note"/>
348
+ </zeroOrMore>
349
+ </element>
350
+ </define>
351
+ <define name="formula">
352
+ <element name="formula">
353
+ <attribute name="id">
354
+ <data type="ID"/>
355
+ </attribute>
356
+ <optional>
357
+ <attribute name="unnumbered">
358
+ <data type="boolean"/>
359
+ </attribute>
360
+ </optional>
361
+ <optional>
362
+ <attribute name="number"/>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="subsequence"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="keep-with-next">
369
+ <data type="boolean"/>
370
+ </attribute>
371
+ </optional>
372
+ <optional>
373
+ <attribute name="keep-lines-together">
374
+ <data type="boolean"/>
375
+ </attribute>
376
+ </optional>
377
+ <optional>
378
+ <attribute name="inequality">
379
+ <data type="boolean"/>
380
+ </attribute>
381
+ </optional>
382
+ <ref name="stem"/>
383
+ <optional>
384
+ <ref name="dl"/>
385
+ </optional>
386
+ <zeroOrMore>
387
+ <ref name="note"/>
388
+ </zeroOrMore>
389
+ </element>
390
+ </define>
391
+ <define name="ParagraphType">
392
+ <attribute name="id">
393
+ <data type="ID"/>
394
+ </attribute>
395
+ <optional>
396
+ <attribute name="align">
397
+ <ref name="Alignments"/>
398
+ </attribute>
399
+ </optional>
400
+ <optional>
401
+ <attribute name="keep-with-next">
402
+ <data type="boolean"/>
403
+ </attribute>
404
+ </optional>
405
+ <optional>
406
+ <attribute name="keep-lines-together">
407
+ <data type="boolean"/>
408
+ </attribute>
409
+ </optional>
410
+ <zeroOrMore>
411
+ <ref name="TextElement"/>
412
+ </zeroOrMore>
413
+ <zeroOrMore>
414
+ <ref name="note"/>
415
+ </zeroOrMore>
416
+ </define>
417
+ <define name="paragraph-with-footnote">
418
+ <element name="p">
419
+ <attribute name="id">
420
+ <data type="ID"/>
421
+ </attribute>
422
+ <optional>
423
+ <attribute name="align">
424
+ <ref name="Alignments"/>
425
+ </attribute>
426
+ </optional>
427
+ <optional>
428
+ <attribute name="keep-with-next">
429
+ <data type="boolean"/>
430
+ </attribute>
431
+ </optional>
432
+ <optional>
433
+ <attribute name="keep-lines-together">
434
+ <data type="boolean"/>
435
+ </attribute>
436
+ </optional>
437
+ <zeroOrMore>
438
+ <choice>
439
+ <ref name="TextElement"/>
440
+ <ref name="fn"/>
441
+ </choice>
442
+ </zeroOrMore>
443
+ <zeroOrMore>
444
+ <ref name="note"/>
445
+ </zeroOrMore>
446
+ </element>
447
+ </define>
448
+ <define name="quote">
449
+ <element name="quote">
450
+ <attribute name="id">
451
+ <data type="ID"/>
452
+ </attribute>
453
+ <optional>
454
+ <attribute name="alignment">
455
+ <ref name="Alignments"/>
456
+ </attribute>
457
+ </optional>
458
+ <optional>
459
+ <attribute name="keep-with-next">
460
+ <data type="boolean"/>
461
+ </attribute>
462
+ </optional>
463
+ <optional>
464
+ <attribute name="keep-lines-together">
465
+ <data type="boolean"/>
466
+ </attribute>
467
+ </optional>
468
+ <optional>
469
+ <ref name="quote-source"/>
470
+ </optional>
471
+ <optional>
472
+ <ref name="quote-author"/>
473
+ </optional>
474
+ <oneOrMore>
475
+ <ref name="paragraph-with-footnote"/>
476
+ </oneOrMore>
477
+ <zeroOrMore>
478
+ <ref name="note"/>
479
+ </zeroOrMore>
480
+ </element>
481
+ </define>
92
482
  <define name="BibDataExtensionType">
93
483
  <ref name="doctype"/>
94
484
  <optional>
@@ -157,6 +547,30 @@
157
547
  <attribute name="id">
158
548
  <data type="ID"/>
159
549
  </attribute>
550
+ <optional>
551
+ <attribute name="unnumbered">
552
+ <data type="boolean"/>
553
+ </attribute>
554
+ </optional>
555
+ <optional>
556
+ <attribute name="number"/>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="subsequence"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="keep-with-next">
563
+ <data type="boolean"/>
564
+ </attribute>
565
+ </optional>
566
+ <optional>
567
+ <attribute name="keep-lines-together">
568
+ <data type="boolean"/>
569
+ </attribute>
570
+ </optional>
571
+ <optional>
572
+ <attribute name="type"/>
573
+ </optional>
160
574
  <oneOrMore>
161
575
  <choice>
162
576
  <ref name="paragraph"/>
@@ -508,6 +922,9 @@
508
922
  <optional>
509
923
  <attribute name="script"/>
510
924
  </optional>
925
+ <optional>
926
+ <attribute name="type"/>
927
+ </optional>
511
928
  <optional>
512
929
  <attribute name="obligation">
513
930
  <choice>
@@ -547,9 +964,6 @@
547
964
  </define>
548
965
  <define name="content-subsection">
549
966
  <element name="clause">
550
- <optional>
551
- <attribute name="type"/>
552
- </optional>
553
967
  <ref name="Content-Section"/>
554
968
  </element>
555
969
  </define>
@@ -578,6 +992,9 @@
578
992
  </choice>
579
993
  </attribute>
580
994
  </optional>
995
+ <optional>
996
+ <attribute name="type"/>
997
+ </optional>
581
998
  <optional>
582
999
  <ref name="section-title"/>
583
1000
  </optional>
@@ -597,9 +1014,6 @@
597
1014
  </define>
598
1015
  <define name="clause">
599
1016
  <element name="clause">
600
- <optional>
601
- <attribute name="type"/>
602
- </optional>
603
1017
  <ref name="Clause-Section"/>
604
1018
  </element>
605
1019
  </define>
@@ -628,6 +1042,9 @@
628
1042
  </choice>
629
1043
  </attribute>
630
1044
  </optional>
1045
+ <optional>
1046
+ <attribute name="type"/>
1047
+ </optional>
631
1048
  <optional>
632
1049
  <ref name="section-title"/>
633
1050
  </optional>
@@ -766,6 +1183,9 @@
766
1183
  <optional>
767
1184
  <attribute name="script"/>
768
1185
  </optional>
1186
+ <optional>
1187
+ <attribute name="type"/>
1188
+ </optional>
769
1189
  <optional>
770
1190
  <attribute name="obligation">
771
1191
  <choice>
@@ -902,7 +1322,36 @@
902
1322
  <attribute name="id">
903
1323
  <data type="ID"/>
904
1324
  </attribute>
905
- <ref name="paragraph"/>
1325
+ <optional>
1326
+ <attribute name="unnumbered">
1327
+ <data type="boolean"/>
1328
+ </attribute>
1329
+ </optional>
1330
+ <optional>
1331
+ <attribute name="number"/>
1332
+ </optional>
1333
+ <optional>
1334
+ <attribute name="subsequence"/>
1335
+ </optional>
1336
+ <optional>
1337
+ <attribute name="keep-with-next">
1338
+ <data type="boolean"/>
1339
+ </attribute>
1340
+ </optional>
1341
+ <optional>
1342
+ <attribute name="keep-lines-together">
1343
+ <data type="boolean"/>
1344
+ </attribute>
1345
+ </optional>
1346
+ <oneOrMore>
1347
+ <choice>
1348
+ <ref name="paragraph"/>
1349
+ <ref name="ul"/>
1350
+ <ref name="ol"/>
1351
+ <ref name="dl"/>
1352
+ <ref name="formula"/>
1353
+ </choice>
1354
+ </oneOrMore>
906
1355
  </element>
907
1356
  </define>
908
1357
  <define name="termexample">
@@ -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.9"
3
+ VERSION = "1.6.1"
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.3.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.9
4
+ version: 1.6.1
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-05-26 00:00:00.000000000 Z
11
+ date: 2020-08-14 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.3.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.3.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: []