metanorma-standoc 1.10.8 → 1.11.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/lib/asciidoctor/standoc/base.rb +5 -4
  4. data/lib/asciidoctor/standoc/cleanup.rb +20 -11
  5. data/lib/asciidoctor/standoc/cleanup_inline.rb +20 -7
  6. data/lib/asciidoctor/standoc/cleanup_maths.rb +5 -6
  7. data/lib/asciidoctor/standoc/cleanup_reqt.rb +2 -21
  8. data/lib/asciidoctor/standoc/cleanup_symbols.rb +48 -0
  9. data/lib/asciidoctor/standoc/cleanup_terms.rb +37 -77
  10. data/lib/asciidoctor/standoc/cleanup_terms_designations.rb +162 -0
  11. data/lib/asciidoctor/standoc/converter.rb +2 -0
  12. data/lib/asciidoctor/standoc/inline.rb +7 -5
  13. data/lib/asciidoctor/standoc/isodoc.rng +218 -27
  14. data/lib/asciidoctor/standoc/macros_plantuml.rb +29 -14
  15. data/lib/asciidoctor/standoc/macros_terms.rb +49 -5
  16. data/lib/asciidoctor/standoc/ref_sect.rb +24 -17
  17. data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +50 -11
  18. data/lib/asciidoctor/standoc/terms.rb +12 -2
  19. data/lib/asciidoctor/standoc/utils.rb +36 -23
  20. data/lib/asciidoctor/standoc/validate.rb +24 -15
  21. data/lib/metanorma/standoc/version.rb +1 -1
  22. data/metanorma-standoc.gemspec +1 -1
  23. data/spec/asciidoctor/base_spec.rb +4 -3
  24. data/spec/asciidoctor/blocks_spec.rb +149 -21
  25. data/spec/asciidoctor/cleanup_sections_spec.rb +7 -7
  26. data/spec/asciidoctor/cleanup_spec.rb +21 -195
  27. data/spec/asciidoctor/cleanup_terms_spec.rb +990 -0
  28. data/spec/asciidoctor/inline_spec.rb +2 -2
  29. data/spec/asciidoctor/macros_plantuml_spec.rb +36 -1
  30. data/spec/asciidoctor/macros_spec.rb +189 -112
  31. data/spec/asciidoctor/refs_spec.rb +2 -24
  32. data/spec/asciidoctor/section_spec.rb +18 -18
  33. data/spec/asciidoctor/validate_spec.rb +59 -2
  34. data/spec/spec_helper.rb +1 -0
  35. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +46 -46
  36. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +12 -12
  37. data/spec/vcr_cassettes/isobib_get_123.yml +12 -12
  38. data/spec/vcr_cassettes/isobib_get_123_1.yml +26 -26
  39. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +32 -32
  40. data/spec/vcr_cassettes/isobib_get_123_2001.yml +11 -11
  41. data/spec/vcr_cassettes/isobib_get_124.yml +12 -12
  42. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
  43. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +45 -65
  44. metadata +8 -5
@@ -353,10 +353,11 @@ RSpec.describe Asciidoctor::Standoc do
353
353
  <title>Terms and definitions</title>
354
354
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
355
355
  <term id='term-term1'>
356
- <preferred>Term1</preferred>
356
+ <preferred><expression><name>Term1</name></expression></preferred>
357
357
  <definition>
358
+ <verbaldefinition>
358
359
  <p id='_'>first definition</p>
359
- <termsource status='identical'>
360
+ <termsource status='identical' type="authoritative">
360
361
  <origin bibitemid='ISO2191' type='inline' citeas=''>
361
362
  <localityStack>
362
363
  <locality type='section'>
@@ -365,10 +366,12 @@ RSpec.describe Asciidoctor::Standoc do
365
366
  </localityStack>
366
367
  </origin>
367
368
  </termsource>
369
+ </verbaldefinition>
368
370
  </definition>
369
371
  <definition>
372
+ <verbaldefinition>
370
373
  <p id='_'>second definition</p>
371
- <termsource status='identical'>
374
+ <termsource status='identical' type="authoritative">
372
375
  <origin bibitemid='ISO2191' type='inline' citeas=''>
373
376
  <localityStack>
374
377
  <locality type='section'>
@@ -377,11 +380,12 @@ RSpec.describe Asciidoctor::Standoc do
377
380
  </localityStack>
378
381
  </origin>
379
382
  </termsource>
383
+ </verbaldefinition>
380
384
  </definition>
381
385
  <termnote id='_'>
382
386
  <p id='_'>This is a note</p>
383
387
  </termnote>
384
- <termsource status='identical'>
388
+ <termsource status='identical' type="authoritative">
385
389
  <origin bibitemid='ISO2191' type='inline' citeas=''>
386
390
  <localityStack>
387
391
  <locality type='section'>
@@ -420,7 +424,7 @@ RSpec.describe Asciidoctor::Standoc do
420
424
  <title>Terms and definitions</title>
421
425
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
422
426
  <term id="term-term1">
423
- <preferred>Term1</preferred>
427
+ <preferred><expression><name>Term1</name></expression></preferred>
424
428
  <termnote id="_">
425
429
  <p id="_">This is a note</p>
426
430
  </termnote>
@@ -495,7 +499,7 @@ RSpec.describe Asciidoctor::Standoc do
495
499
  <terms id="_" obligation="normative"><title>Terms, definitions and symbols</title>
496
500
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
497
501
  <term id="term-term1">
498
- <preferred>Term1</preferred>
502
+ <preferred><expression><name>Term1</name></expression></preferred>
499
503
  </term>
500
504
  <definitions id="_" obligation="normative" type="symbols">
501
505
  <title>Symbols</title>
@@ -653,7 +657,7 @@ RSpec.describe Asciidoctor::Standoc do
653
657
  <title>Terms and definitions</title>
654
658
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
655
659
  <term id="term-term1">
656
- <preferred>Term1</preferred>
660
+ <preferred><expression><name>Term1</name></expression></preferred>
657
661
  <termexample id="ABC" tag='X' multilingual-rendering='common'>
658
662
  <p id="_">This is an example</p>
659
663
  </termexample></term>
@@ -713,7 +717,7 @@ RSpec.describe Asciidoctor::Standoc do
713
717
  <sections>
714
718
  <terms id="_" obligation="normative"><title>Terms, definitions and symbols</title>
715
719
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p><term id="term-term1">
716
- <preferred>Term1</preferred>
720
+ <preferred><expression><name>Term1</name></expression></preferred>
717
721
  </term>
718
722
  <definitions id="_" obligation="normative" type="symbols">
719
723
  <title>Symbols</title>
@@ -1010,6 +1014,50 @@ RSpec.describe Asciidoctor::Standoc do
1010
1014
  INPUT
1011
1015
  expect(strip_guid(Asciidoctor.convert(input, *OPTIONS)))
1012
1016
  .to include '<image src="data:image/png;base64'
1017
+
1018
+ input = <<~INPUT
1019
+ = Document title
1020
+ Author
1021
+ :docfile: test.adoc
1022
+ :nodoc:
1023
+ :novalid:
1024
+ :no-isobib:
1025
+ :data-uri-image: true
1026
+
1027
+ .Split-it-right sample divider
1028
+ image::spec/examples/rice_images/rice_image1.png[]
1029
+ INPUT
1030
+ expect(strip_guid(Asciidoctor.convert(input, *OPTIONS)))
1031
+ .to include '<image src="data:image/png;base64'
1032
+
1033
+ input = <<~INPUT
1034
+ = Document title
1035
+ Author
1036
+ :docfile: test.adoc
1037
+ :nodoc:
1038
+ :novalid:
1039
+ :no-isobib:
1040
+ :data-uri-image: false
1041
+
1042
+ .Split-it-right sample divider
1043
+ image::spec/examples/rice_images/rice_image1.png[]
1044
+ INPUT
1045
+ expect(strip_guid(Asciidoctor.convert(input, *OPTIONS)))
1046
+ .not_to include '<image src="data:image/png;base64'
1047
+
1048
+ input = <<~INPUT
1049
+ = Document title
1050
+ Author
1051
+ :docfile: test.adoc
1052
+ :nodoc:
1053
+ :novalid:
1054
+ :no-isobib:
1055
+
1056
+ .Split-it-right sample divider
1057
+ image::spec/examples/rice_images/rice_image1.png[]
1058
+ INPUT
1059
+ expect(strip_guid(Asciidoctor.convert(input, *OPTIONS)))
1060
+ .to include '<image src="data:image/png;base64'
1013
1061
  end
1014
1062
 
1015
1063
  it "accepts attributes on paragraphs" do
@@ -1124,6 +1172,8 @@ RSpec.describe Asciidoctor::Standoc do
1124
1172
 
1125
1173
  === Term1
1126
1174
 
1175
+ Definition 0
1176
+
1127
1177
  [.source]
1128
1178
  <<ISO2191,section=1>>
1129
1179
 
@@ -1150,15 +1200,16 @@ RSpec.describe Asciidoctor::Standoc do
1150
1200
  <title>Terms and definitions</title><p id="_">For the purposes of this document,
1151
1201
  the following terms and definitions apply.</p>
1152
1202
  <term id="term-term1">
1153
- <preferred>Term1</preferred>
1154
- <termsource status="identical">
1203
+ <preferred><expression><name>Term1</name></expression></preferred>
1204
+ <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1205
+ <termsource status="identical" type="authoritative">
1155
1206
  <origin bibitemid="ISO2191" type="inline" citeas="">
1156
1207
  <localityStack>
1157
1208
  <locality type="section"><referenceFrom>1</referenceFrom></locality>
1158
1209
  </localityStack>
1159
1210
  </origin>
1160
1211
  </termsource>
1161
- <termsource status="identical">
1212
+ <termsource status="identical" type="authoritative">
1162
1213
  <origin bibitemid="ISO2191" type="inline" citeas="" case='capital' droploc='true'>
1163
1214
  <localityStack>
1164
1215
  <locality type="section"><referenceFrom>1</referenceFrom></locality>
@@ -1167,21 +1218,23 @@ RSpec.describe Asciidoctor::Standoc do
1167
1218
  </termsource>
1168
1219
  </term>
1169
1220
  <term id='term-term2'>
1170
- <preferred>Term2</preferred>
1221
+ <preferred><expression><name>Term2</name></expression></preferred>
1171
1222
  <definition>
1223
+ <verbaldefinition>
1172
1224
  <p id='_'>Definition</p>
1225
+ </verbaldefinition>
1173
1226
  </definition>
1174
- <termsource status='identical'>
1227
+ <termsource status='identical' type="authoritative">
1175
1228
  <origin citeas=''>
1176
1229
  <termref base='IEV' target='xyz'/>
1177
1230
  </origin>
1178
1231
  </termsource>
1179
- <termsource status='identical'>
1232
+ <termsource status='identical' type="authoritative">
1180
1233
  <origin citeas=''>
1181
1234
  <termref base='IEV' target='xyz'/>
1182
1235
  </origin>
1183
1236
  </termsource>
1184
- <termsource status='identical'>
1237
+ <termsource status='identical' type="authoritative">
1185
1238
  <origin citeas=''>
1186
1239
  <termref base='IEV' target='xyz'/>
1187
1240
  </origin>
@@ -1202,6 +1255,8 @@ RSpec.describe Asciidoctor::Standoc do
1202
1255
 
1203
1256
  === Term1
1204
1257
 
1258
+ Definition 0
1259
+
1205
1260
  [.source]
1206
1261
  <<ISO2191,section=1>>, with adjustments
1207
1262
 
@@ -1220,8 +1275,9 @@ RSpec.describe Asciidoctor::Standoc do
1220
1275
  <p id="_">For the purposes of this document,
1221
1276
  the following terms and definitions apply.</p>
1222
1277
  <term id="term-term1">
1223
- <preferred>Term1</preferred>
1224
- <termsource status="modified">
1278
+ <preferred><expression><name>Term1</name></expression></preferred>
1279
+ <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1280
+ <termsource status="modified" type="authoritative">
1225
1281
  <origin bibitemid="ISO2191" type="inline" citeas="">
1226
1282
  <localityStack>
1227
1283
  <locality type="section"><referenceFrom>1</referenceFrom></locality>
@@ -1233,11 +1289,11 @@ RSpec.describe Asciidoctor::Standoc do
1233
1289
  </termsource>
1234
1290
  </term>
1235
1291
  <term id='term-term2'>
1236
- <preferred>Term2</preferred>
1237
- <definition>
1292
+ <preferred><expression><name>Term2</name></expression></preferred>
1293
+ <definition><verbaldefinition>
1238
1294
  <p id='_'>Definition</p>
1239
- </definition>
1240
- <termsource status='modified'>
1295
+ </verbaldefinition></definition>
1296
+ <termsource status='modified' type="authoritative">
1241
1297
  <origin citeas=''>
1242
1298
  <termref base='IEV' target='xyz'/>
1243
1299
  </origin>
@@ -1254,6 +1310,78 @@ RSpec.describe Asciidoctor::Standoc do
1254
1310
  .to be_equivalent_to xmlpp(output)
1255
1311
  end
1256
1312
 
1313
+
1314
+ it "processes term source attributes" do
1315
+ input = <<~INPUT
1316
+ #{ASCIIDOC_BLANK_HDR}
1317
+ == Terms and Definitions
1318
+
1319
+ === Term1
1320
+
1321
+ Definition 0
1322
+
1323
+ [.source,status=generalisation]
1324
+ <<ISO2191,section=1>>, with adjustments
1325
+
1326
+ === Term2
1327
+
1328
+ Definition
1329
+
1330
+ [.source,type=lineage]
1331
+ {{<<IEV:xyz>>}}, with adjustments
1332
+ INPUT
1333
+ output = <<~OUTPUT
1334
+ #{BLANK_HDR}
1335
+ <sections>
1336
+ <terms id='_' obligation='normative'>
1337
+ <title>Terms and definitions</title>
1338
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1339
+ <term id='term-term1'>
1340
+ <preferred>
1341
+ <expression>
1342
+ <name>Term1</name>
1343
+ </expression>
1344
+ </preferred>
1345
+ <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1346
+ <termsource status='generalisation' type='authoritative'>
1347
+ <origin bibitemid='ISO2191' type='inline' citeas=''>
1348
+ <localityStack>
1349
+ <locality type='section'>
1350
+ <referenceFrom>1</referenceFrom>
1351
+ </locality>
1352
+ </localityStack>
1353
+ </origin>
1354
+ <modification>
1355
+ <p id='_'>with adjustments</p>
1356
+ </modification>
1357
+ </termsource>
1358
+ </term>
1359
+ <term id='term-term2'>
1360
+ <preferred>
1361
+ <expression>
1362
+ <name>Term2</name>
1363
+ </expression>
1364
+ </preferred>
1365
+ <definition><verbaldefinition>
1366
+ <p id='_'>Definition</p>
1367
+ </verbaldefinition></definition>
1368
+ <termsource status='modified' type='lineage'>
1369
+ <origin citeas=''>
1370
+ <termref base='IEV' target='xyz'/>
1371
+ </origin>
1372
+ <modification>
1373
+ <p id='_'>with adjustments</p>
1374
+ </modification>
1375
+ </termsource>
1376
+ </term>
1377
+ </terms>
1378
+ </sections>
1379
+ </standard-document>
1380
+ OUTPUT
1381
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1382
+ .to be_equivalent_to xmlpp(output)
1383
+ end
1384
+
1257
1385
  it "processes recommendation" do
1258
1386
  input = <<~"INPUT"
1259
1387
  #{ASCIIDOC_BLANK_HDR}
@@ -28,8 +28,8 @@ RSpec.describe Asciidoctor::Standoc do
28
28
  </li>
29
29
  </ul>
30
30
  <term id="term-time">
31
- <preferred>Time</preferred>
32
- <definition><p id="_">This paragraph is extraneous</p></definition>
31
+ <preferred><expression><name>Time</name></expression></preferred>
32
+ <definition><verbaldefinition><p id="_">This paragraph is extraneous</p></verbaldefinition></definition>
33
33
  </term></terms>
34
34
  </sections>
35
35
  </standard-document>
@@ -521,7 +521,7 @@ RSpec.describe Asciidoctor::Standoc do
521
521
  </title>
522
522
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
523
523
  <term id='term-term1'>
524
- <preferred>Term1</preferred>
524
+ <preferred><expression><name>Term1</name></expression></preferred>
525
525
  </term>
526
526
  </terms>
527
527
  <clause id='_' inline-header='false' obligation='normative'>
@@ -796,7 +796,7 @@ RSpec.describe Asciidoctor::Standoc do
796
796
  <title>Terms and definitions</title>
797
797
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
798
798
  <term id='term-term1'>
799
- <preferred>Term1</preferred>
799
+ <preferred><expression><name>Term1</name></expression></preferred>
800
800
  </term>
801
801
  </terms>
802
802
  <clause id='_' inline-header='false' obligation='normative'>
@@ -1033,7 +1033,7 @@ RSpec.describe Asciidoctor::Standoc do
1033
1033
  s’appliquent.
1034
1034
  </p>
1035
1035
  <term id='term-term1'>
1036
- <preferred>Term1</preferred>
1036
+ <preferred><expression><name>Term1</name></expression></preferred>
1037
1037
  </term>
1038
1038
  </terms>
1039
1039
  <clause id='_' inline-header='false' obligation='normative'>
@@ -1267,7 +1267,7 @@ RSpec.describe Asciidoctor::Standoc do
1267
1267
  <title>术语和定义</title>
1268
1268
  <p id='_'>下列术语和定义适用于本文件。</p>
1269
1269
  <term id='term-term1'>
1270
- <preferred>Term1</preferred>
1270
+ <preferred><expression><name>Term1</name></expression></preferred>
1271
1271
  </term>
1272
1272
  </terms>
1273
1273
  <clause id='_' inline-header='false' obligation='normative'>
@@ -1501,7 +1501,7 @@ RSpec.describe Asciidoctor::Standoc do
1501
1501
  <title>Terms and definitions</title>
1502
1502
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1503
1503
  <term id='term-term1'>
1504
- <preferred>Term1</preferred>
1504
+ <preferred><expression><name>Term1</name></expression></preferred>
1505
1505
  </term>
1506
1506
  </terms>
1507
1507
  <clause id='_' inline-header='false' obligation='normative'>
@@ -213,141 +213,6 @@ RSpec.describe Asciidoctor::Standoc do
213
213
  .to be_equivalent_to xmlpp(output)
214
214
  end
215
215
 
216
- it "processes stem-only terms as admitted" do
217
- input = <<~INPUT
218
- #{ASCIIDOC_BLANK_HDR}
219
- == Terms and Definitions
220
-
221
- === stem:[t_90]
222
-
223
- stem:[t_91]
224
-
225
- Time
226
- INPUT
227
- output = <<~OUTPUT
228
- #{BLANK_HDR}
229
- <sections>
230
- <terms id="_" obligation="normative">
231
- <title>Terms and definitions</title>
232
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
233
- <term id="term-t90"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub>
234
- <mrow>
235
- <mi>t</mi>
236
- </mrow>
237
- <mrow>
238
- <mn>90</mn>
239
- </mrow>
240
- </msub></math></stem></preferred><admitted><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub>
241
- <mrow>
242
- <mi>t</mi>
243
- </mrow>
244
- <mrow>
245
- <mn>91</mn>
246
- </mrow>
247
- </msub></math></stem></admitted>
248
- <definition><p id="_">Time</p></definition></term>
249
- </terms>
250
- </sections>
251
- </standard-document>
252
- OUTPUT
253
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
254
- .to be_equivalent_to xmlpp(output)
255
- end
256
-
257
- it "moves term domains out of the term definition paragraph" do
258
- input = <<~INPUT
259
- #{ASCIIDOC_BLANK_HDR}
260
- == Terms and Definitions
261
-
262
- === Tempus
263
-
264
- domain:[relativity] Time
265
-
266
- === Tempus1
267
-
268
- Time2
269
-
270
- domain:[relativity2]
271
- INPUT
272
- output = <<~OUTPUT
273
- #{BLANK_HDR}
274
- <sections>
275
- <terms id="_" obligation="normative">
276
- <title>Terms and definitions</title>
277
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
278
- <term id="term-tempus">
279
- <preferred>Tempus</preferred>
280
- <domain>relativity</domain><definition><p id="_"> Time</p></definition>
281
- </term>
282
- <term id='term-tempus1'>
283
- <preferred>Tempus1</preferred>
284
- <domain>relativity2</domain>
285
- <definition>
286
- <p id='_'>Time2</p>
287
- <p id='_'> </p>
288
- </definition>
289
- </term>
290
- </terms>
291
- </sections>
292
- </standard-document>
293
- OUTPUT
294
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
295
- .to be_equivalent_to xmlpp(output)
296
- end
297
-
298
- it "permits multiple blocks in term definition paragraph" do
299
- input = <<~INPUT
300
- = Document title
301
- Author
302
- :docfile: test.adoc
303
- :nodoc:
304
- :novalid:
305
- :stem:
306
-
307
- == Terms and Definitions
308
-
309
- === stem:[t_90]
310
-
311
- [stem]
312
- ++++
313
- t_A
314
- ++++
315
-
316
- This paragraph is extraneous
317
- INPUT
318
- output = <<~OUTPUT
319
- #{BLANK_HDR}
320
- <sections>
321
- <terms id="_" obligation="normative">
322
- <title>Terms and definitions</title>
323
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
324
- <term id="term-t90"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub>
325
- <mrow>
326
- <mi>t</mi>
327
- </mrow>
328
- <mrow>
329
- <mn>90</mn>
330
- </mrow>
331
- </msub></math></stem></preferred><definition><formula id="_">
332
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub>
333
- <mrow>
334
- <mi>t</mi>
335
- </mrow>
336
- <mrow>
337
- <mi>A</mi>
338
- </mrow>
339
- </msub></math></stem>
340
- </formula>
341
- <p id="_">This paragraph is extraneous</p></definition>
342
- </term>
343
- </terms>
344
- </sections>
345
- </standard-document>
346
- OUTPUT
347
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
348
- .to be_equivalent_to xmlpp(output)
349
- end
350
-
351
216
  it "converts xrefs to references into erefs" do
352
217
  input = <<~INPUT
353
218
  #{ASCIIDOC_BLANK_HDR}
@@ -548,6 +413,8 @@ RSpec.describe Asciidoctor::Standoc do
548
413
 
549
414
  === Term1
550
415
 
416
+ Definition 0
417
+
551
418
  [.source]
552
419
  <<ISO2191,section=1>>
553
420
  INPUT
@@ -558,8 +425,9 @@ RSpec.describe Asciidoctor::Standoc do
558
425
  <title>Terms and definitions</title>
559
426
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
560
427
  <term id="term-term1">
561
- <preferred>Term1</preferred>
562
- <termsource status="identical">
428
+ <preferred><expression><name>Term1</name></expression></preferred>
429
+ <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
430
+ <termsource status="identical" type="authoritative">
563
431
  <origin bibitemid="ISO2191" type="inline" citeas="">
564
432
  <localityStack>
565
433
  <locality type="section"><referenceFrom>1</referenceFrom></locality>
@@ -630,57 +498,6 @@ RSpec.describe Asciidoctor::Standoc do
630
498
  .to be_equivalent_to xmlpp(output)
631
499
  end
632
500
 
633
- it "rearranges term note, term example, term source" do
634
- input = <<~INPUT
635
- #{ASCIIDOC_BLANK_HDR}
636
-
637
- == Terms and definitions
638
-
639
- === Term
640
-
641
- [.source]
642
- <<ISO2191,section=1>>
643
-
644
- NOTE: Note
645
-
646
- [example]
647
- Example 1
648
-
649
- NOTE: Note 2
650
-
651
- [example]
652
- Example 2
653
- INPUT
654
- output = <<~OUTPUT
655
- #{BLANK_HDR}
656
- <sections>
657
- <terms id="_" obligation="normative">
658
- <title>Terms and definitions</title>
659
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
660
- <term id="term-term"><preferred>Term</preferred>
661
- <termnote id="_">
662
- <p id="_">Note</p>
663
- </termnote><termnote id="_">
664
- <p id="_">Note 2</p>
665
- </termnote><termexample id="_">
666
- <p id="_">Example 1</p>
667
- </termexample><termexample id="_">
668
- <p id="_">Example 2</p>
669
- </termexample><termsource status="identical">
670
- <origin bibitemid="ISO2191" type="inline" citeas="">
671
- <localityStack>
672
- <locality type="section"><referenceFrom>1</referenceFrom></locality>
673
- </localityStack>
674
- </origin>
675
- </termsource></term>
676
- </terms>
677
- </sections>
678
- </standard-document>
679
- OUTPUT
680
- expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
681
- .to be_equivalent_to xmlpp(output)
682
- end
683
-
684
501
  it "separates IEV citations by top-level clause" do
685
502
  FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
686
503
  FileUtils.mv File.expand_path("~/.relaton/cache"),
@@ -702,16 +519,22 @@ RSpec.describe Asciidoctor::Standoc do
702
519
  == Terms and definitions
703
520
  === Automation1
704
521
 
522
+ Definition 1
523
+
705
524
  [.source]
706
525
  <<iev,clause="103-01-02">>
707
526
 
708
527
  === Automation2
709
528
 
529
+ Definition 2
530
+
710
531
  [.source]
711
532
  <<iev,clause="102-01-02">>
712
533
 
713
534
  === Automation3
714
535
 
536
+ Definition 3
537
+
715
538
  [.source]
716
539
  <<iev,clause="103-01-02">>
717
540
  INPUT
@@ -721,8 +544,9 @@ RSpec.describe Asciidoctor::Standoc do
721
544
  <terms id="_" obligation="normative"><title>Terms and definitions</title>
722
545
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
723
546
  <term id="term-automation1">
724
- <preferred>Automation1</preferred>
725
- <termsource status="identical">
547
+ <preferred><expression><name>Automation1</name></expression></preferred>
548
+ <definition><verbaldefinition><p id='_'>Definition 1</p></verbaldefinition></definition>
549
+ <termsource status="identical" type="authoritative">
726
550
  <origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
727
551
  <localityStack>
728
552
  <locality type="clause"><referenceFrom>103-01-02</referenceFrom></locality>
@@ -731,8 +555,9 @@ RSpec.describe Asciidoctor::Standoc do
731
555
  </termsource>
732
556
  </term>
733
557
  <term id="term-automation2">
734
- <preferred>Automation2</preferred>
735
- <termsource status="identical">
558
+ <preferred><expression><name>Automation2</name></expression></preferred>
559
+ <definition><verbaldefinition><p id='_'>Definition 2</p></verbaldefinition></definition>
560
+ <termsource status="identical" type="authoritative">
736
561
  <origin bibitemid="IEC60050-102" type="inline" citeas="IEC 60050-102:2007">
737
562
  <localityStack>
738
563
  <locality type="clause"><referenceFrom>102-01-02</referenceFrom></locality>
@@ -741,8 +566,9 @@ RSpec.describe Asciidoctor::Standoc do
741
566
  </termsource>
742
567
  </term>
743
568
  <term id="term-automation3">
744
- <preferred>Automation3</preferred>
745
- <termsource status="identical">
569
+ <preferred><expression><name>Automation3</name></expression></preferred>
570
+ <definition><verbaldefinition><p id='_'>Definition 3</p></verbaldefinition></definition>
571
+ <termsource status="identical" type="authoritative">
746
572
  <origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
747
573
  <localityStack>
748
574
  <locality type="clause"><referenceFrom>103-01-02</referenceFrom></locality>
@@ -1987,7 +1813,7 @@ RSpec.describe Asciidoctor::Standoc do
1987
1813
  ====
1988
1814
  INPUT
1989
1815
  output = <<~OUTPUT
1990
- <standard-document xmlns='https://www.metanorma.org/ns/standoc' type='semantic' version='1.10.7'>
1816
+ <standard-document xmlns='https://www.metanorma.org/ns/standoc' type='semantic' version="#{Metanorma::Standoc::VERSION}">
1991
1817
  <bibdata type='standard'>
1992
1818
  <title language='en' format='text/plain'>Document title</title>
1993
1819
  <language>en</language>