metanorma-standoc 1.11.0.1 → 1.11.4

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/lib/asciidoctor/standoc/base.rb +4 -100
  4. data/lib/asciidoctor/standoc/blocks.rb +1 -1
  5. data/lib/asciidoctor/standoc/cleanup.rb +2 -1
  6. data/lib/asciidoctor/standoc/cleanup_block.rb +1 -2
  7. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +28 -20
  8. data/lib/asciidoctor/standoc/cleanup_inline.rb +14 -4
  9. data/lib/asciidoctor/standoc/cleanup_ref_dl.rb +25 -15
  10. data/lib/asciidoctor/standoc/cleanup_reqt.rb +3 -3
  11. data/lib/asciidoctor/standoc/cleanup_section_names.rb +2 -2
  12. data/lib/asciidoctor/standoc/cleanup_terms.rb +58 -21
  13. data/lib/asciidoctor/standoc/cleanup_terms_designations.rb +58 -21
  14. data/lib/asciidoctor/standoc/cleanup_text.rb +23 -0
  15. data/lib/asciidoctor/standoc/datamodel/attributes_table_preprocessor.rb +6 -6
  16. data/lib/asciidoctor/standoc/front.rb +13 -9
  17. data/lib/asciidoctor/standoc/inline.rb +13 -11
  18. data/lib/asciidoctor/standoc/isodoc.rng +73 -19
  19. data/lib/asciidoctor/standoc/lists.rb +1 -3
  20. data/lib/asciidoctor/standoc/ref.rb +101 -75
  21. data/lib/asciidoctor/standoc/ref_date_id.rb +30 -1
  22. data/lib/asciidoctor/standoc/ref_sect.rb +16 -6
  23. data/lib/asciidoctor/standoc/render.rb +115 -0
  24. data/lib/asciidoctor/standoc/reqt.rb +1 -1
  25. data/lib/asciidoctor/standoc/section.rb +33 -15
  26. data/lib/asciidoctor/standoc/terms.rb +7 -1
  27. data/lib/asciidoctor/standoc/utils.rb +0 -16
  28. data/lib/asciidoctor/standoc/validate.rb +1 -1
  29. data/lib/isodoc/html/htmlstyle.css +20 -11
  30. data/lib/isodoc/html/htmlstyle.scss +11 -11
  31. data/lib/metanorma/standoc/version.rb +1 -1
  32. data/metanorma-standoc.gemspec +3 -3
  33. data/spec/asciidoctor/base_spec.rb +48 -0
  34. data/spec/asciidoctor/blocks_spec.rb +99 -17
  35. data/spec/asciidoctor/cleanup_blocks_spec.rb +24 -0
  36. data/spec/asciidoctor/cleanup_sections_spec.rb +1 -1
  37. data/spec/asciidoctor/cleanup_spec.rb +6 -6
  38. data/spec/asciidoctor/cleanup_terms_spec.rb +556 -89
  39. data/spec/asciidoctor/datamodel/attributes_table_preprocessor_spec.rb +21 -21
  40. data/spec/asciidoctor/datamodel/diagram_preprocessor_spec.rb +16 -16
  41. data/spec/asciidoctor/inline_spec.rb +174 -5
  42. data/spec/asciidoctor/isobib_cache_spec.rb +4 -8
  43. data/spec/asciidoctor/macros_spec.rb +2 -2
  44. data/spec/asciidoctor/refs_dl_spec.rb +4 -4
  45. data/spec/asciidoctor/refs_spec.rb +889 -495
  46. data/spec/asciidoctor/section_spec.rb +64 -2
  47. data/spec/spec_helper.rb +2 -2
  48. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +182 -182
  49. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +12 -12
  50. data/spec/vcr_cassettes/isobib_get_123.yml +14 -14
  51. data/spec/vcr_cassettes/isobib_get_123_1.yml +99 -99
  52. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +107 -107
  53. data/spec/vcr_cassettes/isobib_get_123_2001.yml +14 -14
  54. data/spec/vcr_cassettes/isobib_get_124.yml +12 -12
  55. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
  56. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
  57. metadata +9 -8
@@ -76,6 +76,12 @@ code *, pre *, tt *, kbd *, samp * {
76
76
  font-family: {{monospacefont}} !important;
77
77
  font-variant-ligatures: none; }
78
78
 
79
+ p code, dt code, li code, label code, legend code, caption code, th code, td code,
80
+ p tt, dt tt, li tt, label tt, legend tt, caption tt, th tt, td tt,
81
+ p kbd, dt kbd, li kbd, label kbd, legend kbd, caption kbd, th kbd, td kbd,
82
+ p samp, dt samp, li samp, label samp, legend samp, caption samp, th samp, td samp {
83
+ font-size: {{monospacefontsize}}; }
84
+
79
85
  article, aside, details, figcaption, figure,
80
86
  footer, header, hgroup, menu, nav, section {
81
87
  display: block; }
@@ -87,6 +93,9 @@ table {
87
93
  h1, h2, h3, h4, h5, h6 {
88
94
  font-family: {{headerfont}}; }
89
95
 
96
+ .h1, .h2, .h3, .h4, .h5, .h6 {
97
+ font-family: {{headerfont}}; }
98
+
90
99
  blockquote, q {
91
100
  quotes: none; }
92
101
  blockquote:before, blockquote:after, q:before, q:after {
@@ -467,32 +476,32 @@ p.document-stage {
467
476
  /*
468
477
  3.1 Titles
469
478
  */
470
- h1, h2, h3, h4, h5, h6 {
479
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
471
480
  font-family: {{headerfont}};
472
481
  color: #C70039;
473
482
  font-weight: 300;
474
483
  margin-top: 1.6em;
475
484
  margin-bottom: 0.3em; }
476
485
 
477
- h1 {
486
+ h1, .h1 {
478
487
  font-size: 1.6em;
479
488
  text-transform: uppercase;
480
489
  margin-top: 2em; }
481
490
 
482
- h1#content {
491
+ h1#content, #content.h1 {
483
492
  margin-top: 2em; }
484
493
 
485
- h2 {
494
+ h2, .h2 {
486
495
  margin-top: 1.3em;
487
496
  font-size: 1.3em;
488
497
  font-weight: 400; }
489
498
 
490
- h3 {
499
+ h3, .h3 {
491
500
  margin-top: 1.1em;
492
501
  font-size: 1.1em;
493
502
  font-weight: 100; }
494
503
 
495
- .TermNum, .Terms, .AltTerms {
504
+ .TermNum {
496
505
  color: #C70039;
497
506
  font-weight: 100; }
498
507
 
@@ -791,7 +800,7 @@ p {
791
800
  margin-top: 1em;
792
801
  margin-bottom: 1em; }
793
802
 
794
- h2 p {
803
+ h2 p, .h2 p {
795
804
  display: inline; }
796
805
 
797
806
  /*
@@ -942,7 +951,7 @@ To top button
942
951
  @media print {
943
952
  .document-info, nav, .copyright {
944
953
  page-break-before: always; }
945
- h1, h2, h3, h4 {
954
+ h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
946
955
  page-break-after: avoid;
947
956
  margin-top: 1.2em; }
948
957
  .note, .figure, pre, .pseudocode, table {
@@ -965,12 +974,12 @@ To top button
965
974
  h1.content {
966
975
  margin-top: 2em;
967
976
  line-height: 2.5em; }
968
- h1 {
977
+ h1, .h1 {
969
978
  font-size: 1.5em;
970
979
  line-height: 1.5; }
971
- h2 {
980
+ h2, .h2 {
972
981
  font-size: 1.2em; }
973
- h3 {
982
+ h3, .h3 {
974
983
  font-size: 1em; }
975
984
  .Note {
976
985
  background-color: #fff495;
@@ -155,7 +155,7 @@ p.document-stage {
155
155
  3.1 Titles
156
156
  */
157
157
 
158
- h1,h2,h3,h4,h5,h6 {
158
+ h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 {
159
159
  font-family: $headerfont;
160
160
  color: #C70039;
161
161
  font-weight: 300;
@@ -163,29 +163,29 @@ p.document-stage {
163
163
  margin-bottom: 0.3em;
164
164
  }
165
165
 
166
- h1 {
166
+ h1,.h1 {
167
167
  font-size: 1.6em;
168
168
  text-transform: uppercase;
169
169
  margin-top: 2em;
170
170
  }
171
171
 
172
- h1#content {
172
+ h1#content,.h1#content {
173
173
  margin-top: 2em;
174
174
  }
175
175
 
176
- h2 {
176
+ h2,.h2 {
177
177
  margin-top: 1.3em;
178
178
  font-size: 1.3em;
179
179
  font-weight: 400;
180
180
  }
181
181
 
182
- h3 {
182
+ h3,.h3 {
183
183
  margin-top: 1.1em;
184
184
  font-size: 1.1em;
185
185
  font-weight: 100;
186
186
  }
187
187
 
188
- .TermNum, .Terms, .AltTerms {
188
+ .TermNum {
189
189
  color: #C70039;
190
190
  font-weight: 100;
191
191
  }
@@ -471,7 +471,7 @@ p {
471
471
  margin-bottom: 1em;
472
472
  }
473
473
 
474
- h2 p {
474
+ h2 p, .h2 p {
475
475
  display: inline;
476
476
  }
477
477
 
@@ -643,7 +643,7 @@ To top button
643
643
  page-break-before: always;
644
644
  }
645
645
 
646
- h1, h2, h3, h4 {
646
+ h1, h2, h3, h4, .h1, .h2, .h3, .h4 {
647
647
  page-break-after: avoid;
648
648
  margin-top: 1.2em;
649
649
  }
@@ -685,16 +685,16 @@ To top button
685
685
  line-height: 2.5em;
686
686
  }
687
687
 
688
- h1 {
688
+ h1, .h1 {
689
689
  font-size: 1.5em;
690
690
  line-height: 1.5;
691
691
  }
692
692
 
693
- h2 {
693
+ h2, .h2 {
694
694
  font-size: 1.2em
695
695
  }
696
696
 
697
- h3 {
697
+ h3, .h3 {
698
698
  font-size: 1em;
699
699
  }
700
700
 
@@ -19,6 +19,6 @@ module Metanorma
19
19
  end
20
20
 
21
21
  module Standoc
22
- VERSION = "1.11.0.1".freeze
22
+ VERSION = "1.11.4".freeze
23
23
  end
24
24
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
28
28
 
29
29
  spec.add_dependency "asciidoctor", "~> 2.0.0"
30
- spec.add_dependency "iev", "~> 0.2.1"
30
+ spec.add_dependency "iev", "~> 0.3.0"
31
31
  spec.add_dependency "isodoc", "~> 1.8.0"
32
32
  spec.add_dependency "metanorma-plugin-datastruct"
33
33
  spec.add_dependency "metanorma-plugin-lutaml"
@@ -37,12 +37,12 @@ Gem::Specification.new do |spec|
37
37
  spec.add_dependency "concurrent-ruby"
38
38
  spec.add_dependency "latexmath"
39
39
  spec.add_dependency "mathml2asciimath"
40
- spec.add_dependency "metanorma-utils", "~> 1.2.0"
40
+ spec.add_dependency "metanorma-utils", "~> 1.2.8"
41
41
  spec.add_dependency "relaton-cli", "~> 1.9.0"
42
42
  spec.add_dependency "relaton-iev", "~> 1.1.0"
43
43
  spec.add_dependency "unicode2latex", "~> 0.0.1"
44
44
 
45
- spec.add_development_dependency "byebug"
45
+ spec.add_development_dependency "debug"
46
46
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
47
47
  spec.add_development_dependency "guard", "~> 2.14"
48
48
  spec.add_development_dependency "guard-rspec", "~> 4.7"
@@ -849,6 +849,47 @@ RSpec.describe Asciidoctor::Standoc do
849
849
  .to be_equivalent_to xmlpp(output)
850
850
  end
851
851
 
852
+ it "processes document relations by description" do
853
+ mock_relaton_relation_descriptions
854
+ input = <<~INPUT
855
+ = Document title
856
+ Author
857
+ :docfile: test.adoc
858
+ :nodoc:
859
+ :novalid:
860
+ :normatively-cited-in: ABC
861
+
862
+ INPUT
863
+ output = <<~OUTPUT
864
+ <standard-document xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="#{Metanorma::Standoc::VERSION}">
865
+ <bibdata type='standard'>
866
+ <title language='en' format='text/plain'>Document title</title>
867
+ <language>en</language>
868
+ <script>Latn</script>
869
+ <status>
870
+ <stage>published</stage>
871
+ </status>
872
+ <copyright>
873
+ <from>2021</from>
874
+ </copyright>
875
+ <relation type='isCitedIn'>
876
+ <description>normatively cited in</description>
877
+ <bibitem>
878
+ <title>--</title>
879
+ <docidentifier>ABC</docidentifier>
880
+ </bibitem>
881
+ </relation>
882
+ <ext>
883
+ <doctype>article</doctype>
884
+ </ext>
885
+ </bibdata>
886
+ <sections> </sections>
887
+ </standard-document>
888
+ OUTPUT
889
+ expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
890
+ .to be_equivalent_to xmlpp(output)
891
+ end
892
+
852
893
  it "reads scripts into blank HTML document" do
853
894
  FileUtils.rm_f "test.html"
854
895
  Asciidoctor.convert(<<~"INPUT", *OPTIONS)
@@ -986,4 +1027,11 @@ QU1FOiB0ZXN0Cgo=
986
1027
  "International Standards Organization",
987
1028
  )
988
1029
  end
1030
+
1031
+ def mock_relaton_relation_descriptions
1032
+ allow_any_instance_of(::Asciidoctor::Standoc::Front)
1033
+ .to receive(:relaton_relation_descriptions).and_return(
1034
+ "normatively-cited-in" => "isCitedIn",
1035
+ )
1036
+ end
989
1037
  end
@@ -355,7 +355,7 @@ RSpec.describe Asciidoctor::Standoc do
355
355
  <term id='term-term1'>
356
356
  <preferred><expression><name>Term1</name></expression></preferred>
357
357
  <definition>
358
- <verbaldefinition>
358
+ <verbal-definition>
359
359
  <p id='_'>first definition</p>
360
360
  <termsource status='identical' type="authoritative">
361
361
  <origin bibitemid='ISO2191' type='inline' citeas=''>
@@ -366,10 +366,10 @@ RSpec.describe Asciidoctor::Standoc do
366
366
  </localityStack>
367
367
  </origin>
368
368
  </termsource>
369
- </verbaldefinition>
369
+ </verbal-definition>
370
370
  </definition>
371
371
  <definition>
372
- <verbaldefinition>
372
+ <verbal-definition>
373
373
  <p id='_'>second definition</p>
374
374
  <termsource status='identical' type="authoritative">
375
375
  <origin bibitemid='ISO2191' type='inline' citeas=''>
@@ -380,7 +380,7 @@ RSpec.describe Asciidoctor::Standoc do
380
380
  </localityStack>
381
381
  </origin>
382
382
  </termsource>
383
- </verbaldefinition>
383
+ </verbal-definition>
384
384
  </definition>
385
385
  <termnote id='_'>
386
386
  <p id='_'>This is a note</p>
@@ -514,6 +514,59 @@ RSpec.describe Asciidoctor::Standoc do
514
514
  .to be_equivalent_to xmlpp(output)
515
515
  end
516
516
 
517
+ it "processes nested terms" do
518
+ input = <<~INPUT
519
+ #{ASCIIDOC_BLANK_HDR}
520
+ == Terms and Definitions
521
+
522
+ [.term]
523
+ === Term1
524
+
525
+ definition
526
+
527
+ NOTE: Note 1
528
+
529
+ ==== Term11
530
+ definition2
531
+
532
+ NOTE: Note 2
533
+ INPUT
534
+ output = <<~OUTPUT
535
+ #{BLANK_HDR}
536
+ <sections>
537
+ <clause id='_' obligation='normative'>
538
+ <title>Terms and definitions</title>
539
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
540
+ <terms id='_' obligation='normative'>
541
+ <title>Term1</title>
542
+ <p id='_'>definition</p>
543
+ <note id='_'>
544
+ <p id='_'>Note 1</p>
545
+ </note>
546
+ <term id='term-term11'>
547
+ <preferred>
548
+ <expression>
549
+ <name>Term11</name>
550
+ </expression>
551
+ </preferred>
552
+ <definition>
553
+ <verbal-definition>
554
+ <p id='_'>definition2</p>
555
+ </verbal-definition>
556
+ </definition>
557
+ <termnote id='_'>
558
+ <p id='_'>Note 2</p>
559
+ </termnote>
560
+ </term>
561
+ </terms>
562
+ </clause>
563
+ </sections>
564
+ </standard-document>
565
+ OUTPUT
566
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
567
+ .to be_equivalent_to xmlpp(output)
568
+ end
569
+
517
570
  it "processes notes" do
518
571
  input = <<~INPUT
519
572
  #{ASCIIDOC_BLANK_HDR}
@@ -1201,7 +1254,7 @@ RSpec.describe Asciidoctor::Standoc do
1201
1254
  the following terms and definitions apply.</p>
1202
1255
  <term id="term-term1">
1203
1256
  <preferred><expression><name>Term1</name></expression></preferred>
1204
- <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1257
+ <definition><verbal-definition><p id='_'>Definition 0</p></verbal-definition></definition>
1205
1258
  <termsource status="identical" type="authoritative">
1206
1259
  <origin bibitemid="ISO2191" type="inline" citeas="">
1207
1260
  <localityStack>
@@ -1220,9 +1273,9 @@ RSpec.describe Asciidoctor::Standoc do
1220
1273
  <term id='term-term2'>
1221
1274
  <preferred><expression><name>Term2</name></expression></preferred>
1222
1275
  <definition>
1223
- <verbaldefinition>
1276
+ <verbal-definition>
1224
1277
  <p id='_'>Definition</p>
1225
- </verbaldefinition>
1278
+ </verbal-definition>
1226
1279
  </definition>
1227
1280
  <termsource status='identical' type="authoritative">
1228
1281
  <origin citeas=''>
@@ -1276,7 +1329,7 @@ RSpec.describe Asciidoctor::Standoc do
1276
1329
  the following terms and definitions apply.</p>
1277
1330
  <term id="term-term1">
1278
1331
  <preferred><expression><name>Term1</name></expression></preferred>
1279
- <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1332
+ <definition><verbal-definition><p id='_'>Definition 0</p></verbal-definition></definition>
1280
1333
  <termsource status="modified" type="authoritative">
1281
1334
  <origin bibitemid="ISO2191" type="inline" citeas="">
1282
1335
  <localityStack>
@@ -1290,9 +1343,9 @@ RSpec.describe Asciidoctor::Standoc do
1290
1343
  </term>
1291
1344
  <term id='term-term2'>
1292
1345
  <preferred><expression><name>Term2</name></expression></preferred>
1293
- <definition><verbaldefinition>
1346
+ <definition><verbal-definition>
1294
1347
  <p id='_'>Definition</p>
1295
- </verbaldefinition></definition>
1348
+ </verbal-definition></definition>
1296
1349
  <termsource status='modified' type="authoritative">
1297
1350
  <origin citeas=''>
1298
1351
  <termref base='IEV' target='xyz'/>
@@ -1342,7 +1395,7 @@ RSpec.describe Asciidoctor::Standoc do
1342
1395
  <name>Term1</name>
1343
1396
  </expression>
1344
1397
  </preferred>
1345
- <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
1398
+ <definition><verbal-definition><p id='_'>Definition 0</p></verbal-definition></definition>
1346
1399
  <termsource status='generalisation' type='authoritative'>
1347
1400
  <origin bibitemid='ISO2191' type='inline' citeas=''>
1348
1401
  <localityStack>
@@ -1362,9 +1415,9 @@ RSpec.describe Asciidoctor::Standoc do
1362
1415
  <name>Term2</name>
1363
1416
  </expression>
1364
1417
  </preferred>
1365
- <definition><verbaldefinition>
1418
+ <definition><verbal-definition>
1366
1419
  <p id='_'>Definition</p>
1367
- </verbaldefinition></definition>
1420
+ </verbal-definition></definition>
1368
1421
  <termsource status='modified' type='lineage'>
1369
1422
  <origin citeas=''>
1370
1423
  <termref base='IEV' target='xyz'/>
@@ -1391,7 +1444,7 @@ OUTPUT
1391
1444
  ====
1392
1445
  INPUT
1393
1446
  output = <<~"OUTPUT"
1394
- #{BLANK_HDR}
1447
+ #{BLANK_HDR}
1395
1448
  <sections>
1396
1449
  <recommendation id="_" unnumbered="true" type="verification" model="ogc" tag='X' multilingual-rendering='common'>
1397
1450
  <label>/ogc/recommendation/wfs/2</label>
@@ -1399,7 +1452,8 @@ OUTPUT
1399
1452
  <subject>developer, implementer</subject>
1400
1453
  <inherit>/ss/584/2015/level/1</inherit>
1401
1454
  <inherit>/ss/584/2015/level/2</inherit>
1402
- <description><p id="_">I recommend this</p></description>
1455
+ <description><p id="_">I recommend this</p>
1456
+ </description>
1403
1457
  </recommendation>
1404
1458
  </sections>
1405
1459
  </standard-document>
@@ -1417,6 +1471,9 @@ OUTPUT
1417
1471
  .Title
1418
1472
  ====
1419
1473
  I recommend this
1474
+
1475
+ . http://www.example.com[]
1476
+ . <<ABC>>
1420
1477
  ====
1421
1478
  INPUT
1422
1479
  output = <<~OUTPUT
@@ -1425,7 +1482,20 @@ OUTPUT
1425
1482
  <requirement id="ABC" subsequence="A" number="3" keep-with-next="true" keep-lines-together="true" tag='X' multilingual-rendering='common'>
1426
1483
  <title>Title</title>
1427
1484
  <inherit>/ss/584/2015/level/1 &amp; /ss/584/2015/level/2</inherit>
1428
- <description><p id="_">I recommend this</p></description>
1485
+ <description><p id="_">I recommend this</p>
1486
+ <ol id='_' type='arabic'>
1487
+ <li>
1488
+ <p id='_'>
1489
+ <link target='http://www.example.com'/>
1490
+ </p>
1491
+ </li>
1492
+ <li>
1493
+ <p id='_'>
1494
+ <xref target='ABC'/>
1495
+ </p>
1496
+ </li>
1497
+ </ol>
1498
+ </description>
1429
1499
  </requirement>
1430
1500
  </sections>
1431
1501
  </standard-document>
@@ -1473,6 +1543,9 @@ OUTPUT
1473
1543
  [.permission]
1474
1544
  =====
1475
1545
  I also permit this
1546
+
1547
+ . List
1548
+ . List
1476
1549
  =====
1477
1550
 
1478
1551
  [requirement,type="general",label="/req/core/quantities-uom"]
@@ -1488,7 +1561,16 @@ OUTPUT
1488
1561
  <p id="_">Example 2</p>
1489
1562
  </example></description>
1490
1563
  <permission id="_">
1491
- <description><p id="_">I also permit this</p></description>
1564
+ <description><p id="_">I also permit this</p>
1565
+ <ol id='_' type='arabic'>
1566
+ <li>
1567
+ <p id='_'>List</p>
1568
+ </li>
1569
+ <li>
1570
+ <p id='_'>List</p>
1571
+ </li>
1572
+ </ol>
1573
+ </description>
1492
1574
  </permission>
1493
1575
  <requirement id='_' type='general'>
1494
1576
  <label>/req/core/quantities-uom</label>
@@ -1015,4 +1015,28 @@ RSpec.describe Asciidoctor::Standoc do
1015
1015
  expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1016
1016
  .to be_equivalent_to xmlpp(output)
1017
1017
  end
1018
+
1019
+ it "updates anchor reference along with anchor to match content" do
1020
+ input = <<~INPUT
1021
+ #{ASCIIDOC_BLANK_HDR}
1022
+
1023
+ [[samplecode]]
1024
+ .Sample Code
1025
+ ====
1026
+
1027
+ [source,ruby]
1028
+ --
1029
+ puts "Hello, world."
1030
+ %w{a b c}.each do |x| <1>
1031
+ puts x
1032
+ end
1033
+ --
1034
+ <1> This is an annotation
1035
+ ====
1036
+ INPUT
1037
+ output = Nokogiri::XML(Asciidoctor.convert(input, *OPTIONS))
1038
+ callout_id = output.at("//xmlns:callout/@target").text
1039
+ annotation_id = output.at("//xmlns:annotation/@id").text
1040
+ expect(callout_id).to eq(annotation_id)
1041
+ end
1018
1042
  end
@@ -29,7 +29,7 @@ RSpec.describe Asciidoctor::Standoc do
29
29
  </ul>
30
30
  <term id="term-time">
31
31
  <preferred><expression><name>Time</name></expression></preferred>
32
- <definition><verbaldefinition><p id="_">This paragraph is extraneous</p></verbaldefinition></definition>
32
+ <definition><verbal-definition><p id="_">This paragraph is extraneous</p></verbal-definition></definition>
33
33
  </term></terms>
34
34
  </sections>
35
35
  </standard-document>
@@ -426,7 +426,7 @@ RSpec.describe Asciidoctor::Standoc do
426
426
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
427
427
  <term id="term-term1">
428
428
  <preferred><expression><name>Term1</name></expression></preferred>
429
- <definition><verbaldefinition><p id='_'>Definition 0</p></verbaldefinition></definition>
429
+ <definition><verbal-definition><p id='_'>Definition 0</p></verbal-definition></definition>
430
430
  <termsource status="identical" type="authoritative">
431
431
  <origin bibitemid="ISO2191" type="inline" citeas="">
432
432
  <localityStack>
@@ -545,7 +545,7 @@ RSpec.describe Asciidoctor::Standoc do
545
545
  <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
546
546
  <term id="term-automation1">
547
547
  <preferred><expression><name>Automation1</name></expression></preferred>
548
- <definition><verbaldefinition><p id='_'>Definition 1</p></verbaldefinition></definition>
548
+ <definition><verbal-definition><p id='_'>Definition 1</p></verbal-definition></definition>
549
549
  <termsource status="identical" type="authoritative">
550
550
  <origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
551
551
  <localityStack>
@@ -556,7 +556,7 @@ RSpec.describe Asciidoctor::Standoc do
556
556
  </term>
557
557
  <term id="term-automation2">
558
558
  <preferred><expression><name>Automation2</name></expression></preferred>
559
- <definition><verbaldefinition><p id='_'>Definition 2</p></verbaldefinition></definition>
559
+ <definition><verbal-definition><p id='_'>Definition 2</p></verbal-definition></definition>
560
560
  <termsource status="identical" type="authoritative">
561
561
  <origin bibitemid="IEC60050-102" type="inline" citeas="IEC 60050-102:2007">
562
562
  <localityStack>
@@ -567,7 +567,7 @@ RSpec.describe Asciidoctor::Standoc do
567
567
  </term>
568
568
  <term id="term-automation3">
569
569
  <preferred><expression><name>Automation3</name></expression></preferred>
570
- <definition><verbaldefinition><p id='_'>Definition 3</p></verbaldefinition></definition>
570
+ <definition><verbal-definition><p id='_'>Definition 3</p></verbal-definition></definition>
571
571
  <termsource status="identical" type="authoritative">
572
572
  <origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
573
573
  <localityStack>
@@ -579,7 +579,7 @@ RSpec.describe Asciidoctor::Standoc do
579
579
  <title>Normative references</title>
580
580
  #{NORM_REF_BOILERPLATE}
581
581
  <bibitem type="standard" id="IEC60050-102">
582
- <fetched>#{Date.today}</fetched>
582
+ <fetched/>
583
583
  <title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
584
584
  <title type="title-part" format="text/plain" language="en" script="Latn">Part 102: Mathematics — General concepts and linear algebra</title>
585
585
  <title type='main' format='text/plain' language='en' script='Latn'>International Electrotechnical Vocabulary (IEV) — Part 102: Mathematics — General concepts and linear algebra</title>
@@ -618,7 +618,7 @@ RSpec.describe Asciidoctor::Standoc do
618
618
  </copyright>
619
619
  <place>Geneva</place>
620
620
  </bibitem><bibitem type="standard" id="IEC60050-103">
621
- <fetched>#{Date.today}</fetched>
621
+ <fetched/>
622
622
  <title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
623
623
  <title type="title-part" format="text/plain" language="en" script="Latn">Part 103: Mathematics — Functions</title>
624
624
  <title type="main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV) — Part 103: Mathematics — Functions</title>