metanorma-standoc 1.10.8 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -73,8 +73,8 @@ RSpec.describe Asciidoctor::Standoc do
73
73
  sub<sub><em>scr</em>ipt</sub>
74
74
  <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub> <mrow> <mrow> <mi mathvariant="bold-italic">F</mi> </mrow> </mrow> <mrow> <mrow> <mi mathvariant="bold-italic">Α</mi> </mrow> </mrow> </msub> </math></stem>
75
75
  mark
76
- <admitted>alt</admitted>
77
- <deprecates>deprecated</deprecates>
76
+ <admitted><expression><name>alt</name></expression></admitted>
77
+ <deprecates><expression><name>deprecated</name></expression></deprecates>
78
78
  <domain>domain</domain>
79
79
  <strike>strike</strike>
80
80
  <underline>underline</underline>
@@ -64,6 +64,7 @@ RSpec.describe Asciidoctor::Standoc do
64
64
  :novalid:
65
65
  :no-isobib:
66
66
  :imagesdir: spec/assets
67
+ :data-uri-image: false
67
68
 
68
69
  [plantuml]
69
70
  ....
@@ -100,6 +101,7 @@ RSpec.describe Asciidoctor::Standoc do
100
101
  :novalid:
101
102
  :no-isobib:
102
103
  :imagesdir: spec/assets
104
+ :data-uri-image: false
103
105
 
104
106
  [lutaml_diagram]
105
107
  ....
@@ -135,7 +137,7 @@ RSpec.describe Asciidoctor::Standoc do
135
137
  end
136
138
 
137
139
  context "when inline macro, path supplied as the second arg" do
138
- let(:example_file) { fixtures_path('diagram_definitions.lutaml') }
140
+ let(:example_file) { fixtures_path("diagram_definitions.lutaml") }
139
141
  let(:input) do
140
142
  <<~TEXT
141
143
  = Document title
@@ -145,6 +147,7 @@ RSpec.describe Asciidoctor::Standoc do
145
147
  :novalid:
146
148
  :no-isobib:
147
149
  :imagesdir: spec/assets
150
+ :data-uri-image: false
148
151
 
149
152
  lutaml_diagram::#{example_file}[]
150
153
 
@@ -345,6 +348,38 @@ RSpec.describe Asciidoctor::Standoc do
345
348
  .to be_equivalent_to xmlpp(output)
346
349
  end
347
350
 
351
+ it "processes the PlantUML macro with mismatched delimiters" do
352
+ input = <<~INPUT
353
+ #{ASCIIDOC_BLANK_HDR}
354
+
355
+ [plantuml]
356
+ ....
357
+ @startuml
358
+ Alice -> Bob: Authentication Request
359
+ Bob --> Alice: Authentication Response
360
+
361
+ Alice -> Bob: Another authentication Request
362
+ Alice <-- Bob: another authentication Response
363
+ ....
364
+ INPUT
365
+ expect { Asciidoctor.convert(input, *OPTIONS) }
366
+ .to output(%r{@startuml without matching @enduml in PlantUML!}).to_stderr
367
+ output = <<~OUTPUT
368
+ #{BLANK_HDR}
369
+ <sections>
370
+ <sourcecode id="_" lang="plantuml">@startuml
371
+ Alice -&gt; Bob: Authentication Request
372
+ Bob --&gt; Alice: Authentication Response
373
+
374
+ Alice -&gt; Bob: Another authentication Request
375
+ Alice &lt;-- Bob: another authentication Response</sourcecode>
376
+ </sections>
377
+ </standard-document>
378
+ OUTPUT
379
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
380
+ .to be_equivalent_to xmlpp(output)
381
+ end
382
+
348
383
  private
349
384
 
350
385
  def mock_plantuml_disabled
@@ -4,9 +4,10 @@ RSpec.describe Asciidoctor::Standoc do
4
4
  it "processes the Asciidoctor::Standoc inline macros" do
5
5
  input = <<~INPUT
6
6
  #{ASCIIDOC_BLANK_HDR}
7
+ preferred:[term0]
7
8
  alt:[term1]
8
- deprecated:[term1]
9
- domain:[term1]
9
+ deprecated:[term2]
10
+ domain:[term3]
10
11
  inherit:[<<ref1>>]
11
12
  autonumber:table[3]
12
13
  add:[a <<clause>>] del:[B]
@@ -20,9 +21,10 @@ RSpec.describe Asciidoctor::Standoc do
20
21
  <preface>
21
22
  <foreword id='_' obligation='informative'>
22
23
  <title>Foreword</title>
23
- <admitted>term1</admitted>
24
- <deprecates>term1</deprecates>
25
- <domain>term1</domain>
24
+ <preferred><expression><name>term0</name></expression></preferred>
25
+ <admitted><expression><name>term1</name></expression></admitted>
26
+ <deprecates><expression><name>term2</name></expression></deprecates>
27
+ <domain>term3</domain>
26
28
  <inherit>
27
29
  <eref type='inline' bibitemid='ref1' citeas='XYZ 123'/>
28
30
  </inherit>
@@ -161,9 +163,10 @@ RSpec.describe Asciidoctor::Standoc do
161
163
  .to be_equivalent_to xmlpp(output)
162
164
  end
163
165
 
164
- it "processes the Asciidoctor::Standoc concept macros" do
166
+ it "processes the Asciidoctor::Standoc concept and related macros" do
165
167
  input = <<~INPUT
166
168
  #{ASCIIDOC_BLANK_HDR}
169
+
167
170
  {{clause1}}
168
171
  term:[clause1]
169
172
  {{clause1,w\[o\]rd}}
@@ -178,6 +181,8 @@ RSpec.describe Asciidoctor::Standoc do
178
181
  {{blah,term,word,xref,options="noital,noref,nolinkmention,nolinkref"}}
179
182
  {{blah,term,word,xref,options="ital,ref,linkmention,linkref"}}
180
183
 
184
+ related:contrast[blah]
185
+
181
186
  [[clause1]]
182
187
  == Clause
183
188
  Terms are defined here
@@ -304,7 +309,15 @@ RSpec.describe Asciidoctor::Standoc do
304
309
  <tt>blah</tt>
305
310
  </strong>
306
311
  </concept>
307
- </p>
312
+ </p>
313
+ <related type='contrast'>
314
+ <strong>
315
+ term
316
+ <tt>blah</tt>
317
+ not resolved via ID
318
+ <tt>blah</tt>
319
+ </strong>
320
+ </related>
308
321
  </foreword>
309
322
  </preface>
310
323
  <sections>
@@ -322,15 +335,18 @@ RSpec.describe Asciidoctor::Standoc do
322
335
  it "processes the Asciidoctor::Standoc concept macros for acronyms" do
323
336
  input = <<~INPUT
324
337
  #{ASCIIDOC_BLANK_HDR}
338
+
325
339
  {{Clause1}}
326
340
  {{Clause1,Clause 1}}
327
341
  {{Clause 2}}
328
342
  {{Clause 2,Clause 1}}
329
343
  {{<<Clause2>>,Clause 2}}
344
+
330
345
  symbol:[Clause1]
331
346
  symbol:[Clause1,word]
332
347
  symbol:[Clause 2]
333
348
  symbol:[Clause 2,word]
349
+
334
350
  {{<<Clause2>>,word}}
335
351
  {{<<Clause2>>,word,term}}
336
352
  {{<<Clause2>>,word,term,xref}}
@@ -374,6 +390,7 @@ RSpec.describe Asciidoctor::Standoc do
374
390
  <renderterm>Clause 2</renderterm>
375
391
  <xref target='Clause2'/>
376
392
  </concept>
393
+ </p><p id="_">
377
394
  <concept>
378
395
  <refterm>Clause1</refterm>
379
396
  <renderterm>Clause1</renderterm>
@@ -394,6 +411,7 @@ RSpec.describe Asciidoctor::Standoc do
394
411
  <renderterm>word</renderterm>
395
412
  <xref target='Clause2'/>
396
413
  </concept>
414
+ </p><p id="_">
397
415
  <concept>
398
416
  <refterm>word</refterm>
399
417
  <renderterm>word</renderterm>
@@ -427,7 +445,7 @@ RSpec.describe Asciidoctor::Standoc do
427
445
  <title>Terms and definitions</title>
428
446
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
429
447
  <term id='term-clause1'>
430
- <preferred>Clause1</preferred>
448
+ <preferred><expression><name>Clause1</name></expression></preferred>
431
449
  </term>
432
450
  </terms>
433
451
  <definitions id='_' obligation='normative'>
@@ -450,7 +468,7 @@ RSpec.describe Asciidoctor::Standoc do
450
468
  .to be_equivalent_to xmlpp(output)
451
469
  end
452
470
 
453
- it "processes the concept macros with xrefs" do
471
+ it "processes the concept and related macros with xrefs" do
454
472
  input = <<~INPUT
455
473
  #{ASCIIDOC_BLANK_HDR}
456
474
  {{<<clause1>>}}
@@ -458,6 +476,8 @@ RSpec.describe Asciidoctor::Standoc do
458
476
  {{<<clause1>>,term,w\[o\]rd}}
459
477
  {{<<clause1>>,term,w\[o\]rd,Clause #1}}
460
478
 
479
+ related:supersedes[<<clause1>>,term]
480
+
461
481
  [[clause1]]
462
482
  == Clause
463
483
  Terms are defined here
@@ -487,6 +507,14 @@ RSpec.describe Asciidoctor::Standoc do
487
507
  <xref target='clause1'>Clause #1</xref>
488
508
  </concept>
489
509
  </p>
510
+ <related type='supersedes'>
511
+ <preferred>
512
+ <expression>
513
+ <name>term</name>
514
+ </expression>
515
+ </preferred>
516
+ <xref target='clause1'/>
517
+ </related>
490
518
  </foreword>
491
519
  </preface>
492
520
  <sections>
@@ -501,7 +529,7 @@ RSpec.describe Asciidoctor::Standoc do
501
529
  .to be_equivalent_to xmlpp(output)
502
530
  end
503
531
 
504
- it "processes the concept macros with erefs" do
532
+ it "processes the concept and related macros with erefs" do
505
533
  input = <<~INPUT
506
534
  #{ASCIIDOC_BLANK_HDR}
507
535
  {{<<blah>>}}
@@ -515,6 +543,8 @@ RSpec.describe Asciidoctor::Standoc do
515
543
  {{<<blah,clause=3.1,figure=a>>,word}}
516
544
  {{<<blah,clause=3.1,figure=a>>,term,word,Clause #1}}
517
545
 
546
+ related:narrower[<<blah,clause=3.1,figure=a>>,term]
547
+
518
548
  [bibliography]
519
549
  == Bibliography
520
550
  * [[[blah,blah]]] _Blah_
@@ -616,6 +646,23 @@ RSpec.describe Asciidoctor::Standoc do
616
646
  </eref>
617
647
  </concept>
618
648
  </p>
649
+ <related type='narrower'>
650
+ <preferred>
651
+ <expression>
652
+ <name>term</name>
653
+ </expression>
654
+ </preferred>
655
+ <eref bibitemid='blah'>
656
+ <localityStack>
657
+ <locality type='clause'>
658
+ <referenceFrom>3.1</referenceFrom>
659
+ </locality>
660
+ <locality type='figure'>
661
+ <referenceFrom>a</referenceFrom>
662
+ </locality>
663
+ </localityStack>
664
+ </eref>
665
+ </related>
619
666
  </foreword>
620
667
  </preface>
621
668
  <sections> </sections>
@@ -636,39 +683,49 @@ RSpec.describe Asciidoctor::Standoc do
636
683
  .to be_equivalent_to xmlpp(output)
637
684
  end
638
685
 
639
- it "processes the concept macros with termbase" do
686
+ it "processes the concept and related macros with termbase" do
640
687
  input = <<~INPUT
641
688
  #{ASCIIDOC_BLANK_HDR}
642
689
  {{<<IEV:135-13-13>>}}
643
690
  {{<<IEV:135-13-13>>,word}}
644
691
  {{<<IEV:135-13-13>>,term,word}}
645
692
  {{<<IEV:135-13-13>>,term,word,Clause #1}}
693
+
694
+ related:see[<<IEV:135-13-13>>,term]
646
695
  INPUT
647
696
  output = <<~OUTPUT
648
- #{BLANK_HDR}
649
- <sections>
650
- <p id='_'>
651
- <concept>
652
- <termref base='IEV' target='135-13-13'/>
653
- </concept>
654
- <concept>
655
- <refterm>word</refterm>
656
- <renderterm>word</renderterm>
657
- <termref base='IEV' target='135-13-13'/>
658
- </concept>
659
- <concept>
660
- <refterm>term</refterm>
661
- <renderterm>word</renderterm>
662
- <termref base='IEV' target='135-13-13'/>
663
- </concept>
664
- <concept>
665
- <refterm>term</refterm>
666
- <renderterm>word</renderterm>
667
- <termref base='IEV' target='135-13-13'>Clause #1</termref>
668
- </concept>
669
- </p>
670
- </sections>
671
- </standard-document>
697
+ #{BLANK_HDR}
698
+ <sections>
699
+ <p id='_'>
700
+ <concept>
701
+ <termref base='IEV' target='135-13-13'/>
702
+ </concept>
703
+ <concept>
704
+ <refterm>word</refterm>
705
+ <renderterm>word</renderterm>
706
+ <termref base='IEV' target='135-13-13'/>
707
+ </concept>
708
+ <concept>
709
+ <refterm>term</refterm>
710
+ <renderterm>word</renderterm>
711
+ <termref base='IEV' target='135-13-13'/>
712
+ </concept>
713
+ <concept>
714
+ <refterm>term</refterm>
715
+ <renderterm>word</renderterm>
716
+ <termref base='IEV' target='135-13-13'>Clause #1</termref>
717
+ </concept>
718
+ </p>
719
+ <related type='see'>
720
+ <preferred>
721
+ <expression>
722
+ <name>term</name>
723
+ </expression>
724
+ </preferred>
725
+ <termref base='IEV' target='135-13-13'/>
726
+ </related>
727
+ </sections>
728
+ </standard-document>
672
729
  OUTPUT
673
730
  expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
674
731
  .to be_equivalent_to xmlpp(output)
@@ -1267,6 +1324,8 @@ RSpec.describe Asciidoctor::Standoc do
1267
1324
  term:[name,name2] is a term
1268
1325
 
1269
1326
  {{name,name2}} is a term
1327
+
1328
+ related:equivalent[name]
1270
1329
  XML
1271
1330
  end
1272
1331
  let(:output) do
@@ -1277,7 +1336,7 @@ RSpec.describe Asciidoctor::Standoc do
1277
1336
  <title>Terms and definitions</title>
1278
1337
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1279
1338
  <term id='term-name'>
1280
- <preferred>name</preferred>
1339
+ <preferred><expression><name>name</name></expression></preferred>
1281
1340
  </term>
1282
1341
  </terms>
1283
1342
  <clause id='_' inline-header='false' obligation='normative'>
@@ -1298,6 +1357,14 @@ RSpec.describe Asciidoctor::Standoc do
1298
1357
  </concept>
1299
1358
  is a term
1300
1359
  </p>
1360
+ <related type='equivalent'>
1361
+ <preferred>
1362
+ <expression>
1363
+ <name>name</name>
1364
+ </expression>
1365
+ </preferred>
1366
+ <xref target='term-name'>name</xref>
1367
+ </related>
1301
1368
  </clause>
1302
1369
  </sections>
1303
1370
  </standard-document>
@@ -1332,7 +1399,7 @@ RSpec.describe Asciidoctor::Standoc do
1332
1399
  <title>Terms and definitions</title>
1333
1400
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1334
1401
  <term id='term-name'>
1335
- <preferred>name</preferred>
1402
+ <preferred><expression><name>name</name></expression></preferred>
1336
1403
  </term>
1337
1404
  </terms>
1338
1405
  <clause id='_' inline-header='false' obligation='normative'>
@@ -1396,10 +1463,10 @@ RSpec.describe Asciidoctor::Standoc do
1396
1463
  <title>Terms and definitions</title>
1397
1464
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1398
1465
  <term id='term-name-1'>
1399
- <preferred>name</preferred>
1466
+ <preferred><expression><name>name</name></expression></preferred>
1400
1467
  </term>
1401
1468
  <term id='term-name2-1'>
1402
- <preferred>name2</preferred>
1469
+ <preferred><expression><name>name2</name></expression></preferred>
1403
1470
  </term>
1404
1471
  </terms>
1405
1472
  <clause id='term-name' inline-header='false' obligation='normative'>
@@ -1471,83 +1538,93 @@ RSpec.describe Asciidoctor::Standoc do
1471
1538
  {{name identity}} is a term
1472
1539
 
1473
1540
  Moreover, {{missing}} is a term
1541
+
1542
+ related:equivalent[missing]
1474
1543
  XML
1475
1544
  end
1476
1545
  let(:output) do
1477
1546
  <<~XML
1478
- #{BLANK_HDR}
1479
- <sections>
1480
- <terms id='_' obligation='normative'>
1481
- <title>Terms and definitions</title>
1482
- <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1483
- <term id='term-name-identity'>
1484
- <preferred>name identity</preferred>
1485
- </term>
1486
- <term id='name-check'>
1487
- <preferred>name check</preferred>
1488
- <definition>
1489
- <p id='_'>paragraph</p>
1490
- <p id='_'>
1491
- <concept>
1492
- <refterm>name check</refterm>
1493
- <renderterm>name check</renderterm>
1494
- <xref target='name-check'/>
1495
- </concept>
1496
- is a term
1497
- </p>
1498
- <p id='_'>
1499
- <concept>
1500
- <refterm>name identity</refterm>
1501
- <renderterm>name identity</renderterm>
1502
- <xref target='term-name-identity'/>
1503
- </concept>
1504
- is a term
1505
- </p>
1506
- <p id='_'>
1507
- Moreover,
1508
- <concept>
1509
- <strong>
1510
- term
1511
- <tt>missing</tt>
1512
- not resolved via ID
1513
- <tt>missing</tt>
1514
- </strong>
1515
- </concept>
1516
- is a term
1517
- </p>
1518
- <p id='_'>
1519
- <concept>
1520
- <refterm>name check</refterm>
1521
- <renderterm>name check</renderterm>
1522
- <xref target='name-check'/>
1523
- </concept>
1524
- is a term
1525
- </p>
1526
- <p id='_'>
1527
- <concept>
1528
- <refterm>name identity</refterm>
1529
- <renderterm>name identity</renderterm>
1530
- <xref target='term-name-identity'/>
1531
- </concept>
1532
- is a term
1533
- </p>
1534
- <p id='_'>
1535
- Moreover,
1536
- <concept>
1537
- <strong>
1538
- term
1539
- <tt>missing</tt>
1540
- not resolved via ID
1541
- <tt>missing</tt>
1542
- </strong>
1543
- </concept>
1544
- is a term
1545
- </p>
1546
- </definition>
1547
- </term>
1548
- </terms>
1549
- </sections>
1550
- </standard-document>
1547
+ #{BLANK_HDR}
1548
+ <sections>
1549
+ <terms id='_' obligation='normative'>
1550
+ <title>Terms and definitions</title>
1551
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1552
+ <term id='term-name-identity'>
1553
+ <preferred><expression><name>name identity</name></expression></preferred>
1554
+ </term>
1555
+ <term id='name-check'>
1556
+ <preferred><expression><name>name check</name></expression></preferred>
1557
+ <related type='equivalent'>
1558
+ <strong>
1559
+ term
1560
+ <tt>missing</tt>
1561
+ not resolved via ID
1562
+ <tt>missing</tt>
1563
+ </strong>
1564
+ </related>
1565
+ <definition><verbaldefinition>
1566
+ <p id='_'>paragraph</p>
1567
+ <p id='_'>
1568
+ <concept>
1569
+ <refterm>name check</refterm>
1570
+ <renderterm>name check</renderterm>
1571
+ <xref target='name-check'/>
1572
+ </concept>
1573
+ is a term
1574
+ </p>
1575
+ <p id='_'>
1576
+ <concept>
1577
+ <refterm>name identity</refterm>
1578
+ <renderterm>name identity</renderterm>
1579
+ <xref target='term-name-identity'/>
1580
+ </concept>
1581
+ is a term
1582
+ </p>
1583
+ <p id='_'>
1584
+ Moreover,
1585
+ <concept>
1586
+ <strong>
1587
+ term
1588
+ <tt>missing</tt>
1589
+ not resolved via ID
1590
+ <tt>missing</tt>
1591
+ </strong>
1592
+ </concept>
1593
+ is a term
1594
+ </p>
1595
+ <p id='_'>
1596
+ <concept>
1597
+ <refterm>name check</refterm>
1598
+ <renderterm>name check</renderterm>
1599
+ <xref target='name-check'/>
1600
+ </concept>
1601
+ is a term
1602
+ </p>
1603
+ <p id='_'>
1604
+ <concept>
1605
+ <refterm>name identity</refterm>
1606
+ <renderterm>name identity</renderterm>
1607
+ <xref target='term-name-identity'/>
1608
+ </concept>
1609
+ is a term
1610
+ </p>
1611
+ <p id='_'>
1612
+ Moreover,
1613
+ <concept>
1614
+ <strong>
1615
+ term
1616
+ <tt>missing</tt>
1617
+ not resolved via ID
1618
+ <tt>missing</tt>
1619
+ </strong>
1620
+ </concept>
1621
+ is a term
1622
+ </p>
1623
+ </verbaldefinition></definition>
1624
+ </term>
1625
+ </terms>
1626
+ </sections>
1627
+ </standard-document>
1551
1628
  XML
1552
1629
  end
1553
1630
 
@@ -999,6 +999,7 @@ RSpec.describe Asciidoctor::Standoc do
999
999
  <docidentifier type='IETF'>RFC 8341</docidentifier>
1000
1000
  <docidentifier type='rfc-anchor'>RFC8341</docidentifier>
1001
1001
  <docidentifier type='DOI'>10.17487/RFC8341</docidentifier>
1002
+ <docnumber>RFC8341</docnumber>
1002
1003
  <date type='published'>
1003
1004
  <on>2018-03</on>
1004
1005
  </date>
@@ -1008,12 +1009,6 @@ RSpec.describe Asciidoctor::Standoc do
1008
1009
  <name>
1009
1010
  <completename language='en'>A. Bierman</completename>
1010
1011
  </name>
1011
- <affiliation>
1012
- <organization>
1013
- <name>Internet Engineering Task Force</name>
1014
- <abbreviation>IETF</abbreviation>
1015
- </organization>
1016
- </affiliation>
1017
1012
  </person>
1018
1013
  </contributor>
1019
1014
  <contributor>
@@ -1022,12 +1017,6 @@ RSpec.describe Asciidoctor::Standoc do
1022
1017
  <name>
1023
1018
  <completename language='en'>M. Bjorklund</completename>
1024
1019
  </name>
1025
- <affiliation>
1026
- <organization>
1027
- <name>Internet Engineering Task Force</name>
1028
- <abbreviation>IETF</abbreviation>
1029
- </organization>
1030
- </affiliation>
1031
1020
  </person>
1032
1021
  </contributor>
1033
1022
  <contributor>
@@ -1070,6 +1059,7 @@ RSpec.describe Asciidoctor::Standoc do
1070
1059
  <docidentifier type='metanorma'>[1]</docidentifier>
1071
1060
  <docidentifier type='rfc-anchor'>RFC8341</docidentifier>
1072
1061
  <docidentifier type='DOI'>10.17487/RFC8341</docidentifier>
1062
+ <docnumber>RFC8341</docnumber>
1073
1063
  <date type='published'>
1074
1064
  <on>2018-03</on>
1075
1065
  </date>
@@ -1079,12 +1069,6 @@ RSpec.describe Asciidoctor::Standoc do
1079
1069
  <name>
1080
1070
  <completename language='en'>A. Bierman</completename>
1081
1071
  </name>
1082
- <affiliation>
1083
- <organization>
1084
- <name>Internet Engineering Task Force</name>
1085
- <abbreviation>IETF</abbreviation>
1086
- </organization>
1087
- </affiliation>
1088
1072
  </person>
1089
1073
  </contributor>
1090
1074
  <contributor>
@@ -1093,12 +1077,6 @@ RSpec.describe Asciidoctor::Standoc do
1093
1077
  <name>
1094
1078
  <completename language='en'>M. Bjorklund</completename>
1095
1079
  </name>
1096
- <affiliation>
1097
- <organization>
1098
- <name>Internet Engineering Task Force</name>
1099
- <abbreviation>IETF</abbreviation>
1100
- </organization>
1101
- </affiliation>
1102
1080
  </person>
1103
1081
  </contributor>
1104
1082
  <contributor>