metanorma-standoc 2.2.0.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/.github/workflows/release.yml +24 -0
- data/lib/metanorma/standoc/base.rb +16 -0
- data/lib/metanorma/standoc/biblio.rng +8 -5
- data/lib/metanorma/standoc/blocks.rb +26 -13
- data/lib/metanorma/standoc/cleanup_biblio.rb +16 -10
- data/lib/metanorma/standoc/cleanup_reqt.rb +3 -136
- data/lib/metanorma/standoc/converter.rb +0 -7
- data/lib/metanorma/standoc/front.rb +6 -1
- data/lib/metanorma/standoc/front_contributor.rb +0 -10
- data/lib/metanorma/standoc/macros_terms.rb +5 -4
- data/lib/metanorma/standoc/reqt.rb +24 -73
- data/lib/metanorma/standoc/section.rb +35 -3
- data/lib/metanorma/standoc/terms.rb +13 -7
- data/lib/metanorma/standoc/utils.rb +9 -43
- data/lib/metanorma/standoc/validate.rb +18 -0
- data/lib/metanorma/standoc/version.rb +1 -1
- data/lib/metanorma-standoc.rb +1 -1
- data/metanorma-standoc.gemspec +5 -4
- data/spec/assets/correct.png +0 -0
- data/spec/assets/corrupt.png +0 -0
- data/spec/metanorma/base_spec.rb +6 -7
- data/spec/metanorma/biblio_spec.rb +8 -8
- data/spec/metanorma/blocks_spec.rb +20 -266
- data/spec/metanorma/cleanup_blocks_spec.rb +0 -168
- data/spec/metanorma/macros_concept_spec.rb +1052 -0
- data/spec/metanorma/macros_spec.rb +0 -1126
- data/spec/metanorma/reqt_spec.rb +130 -0
- data/spec/metanorma/section_spec.rb +5 -0
- data/spec/metanorma/validate_spec.rb +49 -0
- data/spec/requirements/default/blocks_spec.rb +250 -0
- data/spec/requirements/default/cleanup_spec.rb +173 -0
- data/spec/requirements/modspec/cleanup_spec.rb +333 -0
- data/spec/requirements/modspec/validate_spec.rb +330 -0
- data/spec/vcr_cassettes/bsi16341.yml +52 -36
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +88 -88
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +10 -10
- data/spec/vcr_cassettes/hide_refs.yml +65 -65
- data/spec/vcr_cassettes/isobib_get_123.yml +12 -12
- data/spec/vcr_cassettes/isobib_get_123_1.yml +22 -22
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +30 -30
- data/spec/vcr_cassettes/isobib_get_123_2.yml +21 -21
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +11 -11
- data/spec/vcr_cassettes/isobib_get_124.yml +11 -11
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +34 -58
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +45 -45
- data/spec/vcr_cassettes/std-link.yml +11 -11
- metadata +50 -28
- data/lib/isodoc/html/htmlstyle.css +0 -998
@@ -201,643 +201,6 @@ RSpec.describe Metanorma::Standoc do
|
|
201
201
|
.to be_equivalent_to xmlpp(output)
|
202
202
|
end
|
203
203
|
|
204
|
-
it "processes the Metanorma::Standoc concept and related macros" do
|
205
|
-
input = <<~INPUT
|
206
|
-
#{ASCIIDOC_BLANK_HDR}
|
207
|
-
|
208
|
-
{{clause1}}
|
209
|
-
term:[clause1]
|
210
|
-
{{clause1,w\[o\]rd}}
|
211
|
-
term:[clause1,w[o]rd]
|
212
|
-
{{clause1,w\[o\]rd,term}}
|
213
|
-
{{blah}}
|
214
|
-
term:[blah]
|
215
|
-
{{blah,word}}
|
216
|
-
term:[blah,word]
|
217
|
-
{{blah,term,word}}
|
218
|
-
{{blah,term,word,xref}}
|
219
|
-
{{blah,term,word,xref,options="noital,noref,nolinkmention,nolinkref"}}
|
220
|
-
{{blah,term,word,xref,options="ital,ref,linkmention,linkref"}}
|
221
|
-
|
222
|
-
related:contrast[blah]
|
223
|
-
|
224
|
-
[[clause1]]
|
225
|
-
== Clause
|
226
|
-
Terms are defined here
|
227
|
-
INPUT
|
228
|
-
output = <<~OUTPUT
|
229
|
-
#{BLANK_HDR}
|
230
|
-
<preface>
|
231
|
-
<foreword id='_' obligation='informative'>
|
232
|
-
<title>Foreword</title>
|
233
|
-
<p id='_'>
|
234
|
-
<concept>
|
235
|
-
<strong>
|
236
|
-
term
|
237
|
-
<tt>clause1</tt>
|
238
|
-
not resolved via ID
|
239
|
-
<tt>clause1</tt>
|
240
|
-
</strong>
|
241
|
-
</concept>
|
242
|
-
<concept>
|
243
|
-
<strong>
|
244
|
-
term
|
245
|
-
<tt>clause1</tt>
|
246
|
-
not resolved via ID
|
247
|
-
<tt>clause1</tt>
|
248
|
-
</strong>
|
249
|
-
</concept>
|
250
|
-
<concept>
|
251
|
-
<strong>
|
252
|
-
term
|
253
|
-
<tt>clause1</tt>, display <tt>w[o]rd</tt>
|
254
|
-
not resolved via ID
|
255
|
-
<tt>clause1</tt>
|
256
|
-
</strong>
|
257
|
-
</concept>
|
258
|
-
<concept>
|
259
|
-
<strong>
|
260
|
-
term
|
261
|
-
<tt>clause1</tt>, display <tt>w[o]rd</tt>
|
262
|
-
not resolved via ID
|
263
|
-
<tt>clause1</tt>
|
264
|
-
</strong>
|
265
|
-
</concept>
|
266
|
-
<concept>
|
267
|
-
<strong>
|
268
|
-
term
|
269
|
-
<tt>clause1</tt>, display <tt>w[o]rd</tt>
|
270
|
-
not resolved via ID
|
271
|
-
<tt>clause1</tt>
|
272
|
-
</strong>
|
273
|
-
</concept>
|
274
|
-
<concept>
|
275
|
-
<strong>
|
276
|
-
term
|
277
|
-
<tt>blah</tt>
|
278
|
-
not resolved via ID
|
279
|
-
<tt>blah</tt>
|
280
|
-
</strong>
|
281
|
-
</concept>
|
282
|
-
<concept>
|
283
|
-
<strong>
|
284
|
-
term
|
285
|
-
<tt>blah</tt>
|
286
|
-
not resolved via ID
|
287
|
-
<tt>blah</tt>
|
288
|
-
</strong>
|
289
|
-
</concept>
|
290
|
-
<concept>
|
291
|
-
<strong>
|
292
|
-
term
|
293
|
-
<tt>blah</tt>
|
294
|
-
, display
|
295
|
-
<tt>word</tt>
|
296
|
-
not resolved via ID
|
297
|
-
<tt>blah</tt>
|
298
|
-
</strong>
|
299
|
-
</concept>
|
300
|
-
<concept>
|
301
|
-
<strong>
|
302
|
-
term
|
303
|
-
<tt>blah</tt>
|
304
|
-
, display
|
305
|
-
<tt>word</tt>
|
306
|
-
not resolved via ID
|
307
|
-
<tt>blah</tt>
|
308
|
-
</strong>
|
309
|
-
</concept>
|
310
|
-
<concept>
|
311
|
-
<strong>
|
312
|
-
term
|
313
|
-
<tt>blah</tt>
|
314
|
-
, display
|
315
|
-
<tt>term</tt>
|
316
|
-
not resolved via ID
|
317
|
-
<tt>blah</tt>
|
318
|
-
</strong>
|
319
|
-
</concept>
|
320
|
-
<concept>
|
321
|
-
<strong>
|
322
|
-
term
|
323
|
-
<tt>blah</tt>
|
324
|
-
, display
|
325
|
-
<tt>term</tt>
|
326
|
-
not resolved via ID
|
327
|
-
<tt>blah</tt>
|
328
|
-
</strong>
|
329
|
-
</concept>
|
330
|
-
<concept ital='false' ref='false' linkmention='false' linkref='false'>
|
331
|
-
<strong>
|
332
|
-
term
|
333
|
-
<tt>blah</tt>
|
334
|
-
, display
|
335
|
-
<tt>term</tt>
|
336
|
-
not resolved via ID
|
337
|
-
<tt>blah</tt>
|
338
|
-
</strong>
|
339
|
-
</concept>
|
340
|
-
<concept ital='true' ref='true' linkmention='true' linkref='true'>
|
341
|
-
<strong>
|
342
|
-
term
|
343
|
-
<tt>blah</tt>
|
344
|
-
, display
|
345
|
-
<tt>term</tt>
|
346
|
-
not resolved via ID
|
347
|
-
<tt>blah</tt>
|
348
|
-
</strong>
|
349
|
-
</concept>
|
350
|
-
</p>
|
351
|
-
<related type='contrast'>
|
352
|
-
<strong>
|
353
|
-
term
|
354
|
-
<tt>blah</tt>
|
355
|
-
not resolved via ID
|
356
|
-
<tt>blah</tt>
|
357
|
-
</strong>
|
358
|
-
</related>
|
359
|
-
</foreword>
|
360
|
-
</preface>
|
361
|
-
<sections>
|
362
|
-
<clause id='clause1' inline-header='false' obligation='normative'>
|
363
|
-
<title>Clause</title>
|
364
|
-
<p id='_'>Terms are defined here</p>
|
365
|
-
</clause>
|
366
|
-
</sections>
|
367
|
-
</standard-document>
|
368
|
-
OUTPUT
|
369
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
370
|
-
.to be_equivalent_to xmlpp(output)
|
371
|
-
end
|
372
|
-
|
373
|
-
it "processes the Metanorma::Standoc concept macros for acronyms" do
|
374
|
-
input = <<~INPUT
|
375
|
-
#{ASCIIDOC_BLANK_HDR}
|
376
|
-
|
377
|
-
{{Clause1}}
|
378
|
-
{{Clause1,Clause 1}}
|
379
|
-
{{Clause 2}}
|
380
|
-
{{Clause 2,Clause 1}}
|
381
|
-
{{<<Clause2>>,Clause 2}}
|
382
|
-
|
383
|
-
symbol:[Clause1]
|
384
|
-
symbol:[Clause1,word]
|
385
|
-
symbol:[Clause 2]
|
386
|
-
symbol:[Clause 2,word]
|
387
|
-
|
388
|
-
{{<<Clause2>>,word}}
|
389
|
-
{{<<Clause2>>,word,term}}
|
390
|
-
{{<<Clause2>>,word,term,xref}}
|
391
|
-
{{<<Clause2>>,word,term,xref,options="noital,noref,nolinkmention,nolinkref"}}
|
392
|
-
{{<<Clause2>>,word,term,xref,options="ital,ref,linkmention,linkref"}}
|
393
|
-
|
394
|
-
== Terms and definitions
|
395
|
-
=== Clause1
|
396
|
-
== Symbols and Abbreviated Terms
|
397
|
-
Clause1:: A
|
398
|
-
[[Clause2]]Clause 2:: C
|
399
|
-
INPUT
|
400
|
-
output = <<~OUTPUT
|
401
|
-
#{BLANK_HDR}
|
402
|
-
<preface>
|
403
|
-
<foreword id='_' obligation='informative'>
|
404
|
-
<title>Foreword</title>
|
405
|
-
<p id='_'>
|
406
|
-
<concept>
|
407
|
-
<refterm>Clause1</refterm>
|
408
|
-
<renderterm>Clause1</renderterm>
|
409
|
-
<xref target='term-Clause1'/>
|
410
|
-
</concept>
|
411
|
-
<concept>
|
412
|
-
<refterm>Clause1</refterm>
|
413
|
-
<renderterm>Clause 1</renderterm>
|
414
|
-
<xref target='term-Clause1'/>
|
415
|
-
</concept>
|
416
|
-
<concept>
|
417
|
-
<refterm>Clause 2</refterm>
|
418
|
-
<renderterm>Clause 2</renderterm>
|
419
|
-
<xref target='Clause2'/>
|
420
|
-
</concept>
|
421
|
-
<concept>
|
422
|
-
<refterm>Clause 2</refterm>
|
423
|
-
<renderterm>Clause 1</renderterm>
|
424
|
-
<xref target='Clause2'/>
|
425
|
-
</concept>
|
426
|
-
<concept>
|
427
|
-
<refterm>Clause 2</refterm>
|
428
|
-
<renderterm>Clause 2</renderterm>
|
429
|
-
<xref target='Clause2'/>
|
430
|
-
</concept>
|
431
|
-
</p><p id="_">
|
432
|
-
<concept>
|
433
|
-
<refterm>Clause1</refterm>
|
434
|
-
<renderterm>Clause1</renderterm>
|
435
|
-
<xref target='symbol-Clause1'/>
|
436
|
-
</concept>
|
437
|
-
<concept>
|
438
|
-
<refterm>Clause1</refterm>
|
439
|
-
<renderterm>word</renderterm>
|
440
|
-
<xref target='symbol-Clause1'/>
|
441
|
-
</concept>
|
442
|
-
<concept>
|
443
|
-
<refterm>Clause 2</refterm>
|
444
|
-
<renderterm>Clause 2</renderterm>
|
445
|
-
<xref target='Clause2'/>
|
446
|
-
</concept>
|
447
|
-
<concept>
|
448
|
-
<refterm>Clause 2</refterm>
|
449
|
-
<renderterm>word</renderterm>
|
450
|
-
<xref target='Clause2'/>
|
451
|
-
</concept>
|
452
|
-
</p><p id="_">
|
453
|
-
<concept>
|
454
|
-
<refterm>word</refterm>
|
455
|
-
<renderterm>word</renderterm>
|
456
|
-
<xref target='Clause2'/>
|
457
|
-
</concept>
|
458
|
-
<concept>
|
459
|
-
<refterm>word</refterm>
|
460
|
-
<renderterm>term</renderterm>
|
461
|
-
<xref target='Clause2'/>
|
462
|
-
</concept>
|
463
|
-
<concept>
|
464
|
-
<refterm>word</refterm>
|
465
|
-
<renderterm>term</renderterm>
|
466
|
-
<xref target='Clause2'>xref</xref>
|
467
|
-
</concept>
|
468
|
-
<concept ital='false' ref='false' linkmention='false' linkref='false'>
|
469
|
-
<refterm>word</refterm>
|
470
|
-
<renderterm>term</renderterm>
|
471
|
-
<xref target='Clause2'>xref</xref>
|
472
|
-
</concept>
|
473
|
-
<concept ital='true' ref='true' linkmention='true' linkref='true'>
|
474
|
-
<refterm>word</refterm>
|
475
|
-
<renderterm>term</renderterm>
|
476
|
-
<xref target='Clause2'>xref</xref>
|
477
|
-
</concept>
|
478
|
-
</p>
|
479
|
-
</foreword>
|
480
|
-
</preface>
|
481
|
-
<sections>
|
482
|
-
<terms id='_' obligation='normative'>
|
483
|
-
<title>Terms and definitions</title>
|
484
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
485
|
-
<term id='term-Clause1'>
|
486
|
-
<preferred><expression><name>Clause1</name></expression></preferred>
|
487
|
-
</term>
|
488
|
-
</terms>
|
489
|
-
<definitions id='_' obligation='normative'>
|
490
|
-
<title>Symbols and abbreviated terms</title>
|
491
|
-
<dl id='_'>
|
492
|
-
<dt id="symbol-Clause1">Clause1</dt>
|
493
|
-
<dd>
|
494
|
-
<p id='_'>A</p>
|
495
|
-
</dd>
|
496
|
-
<dt id='Clause2'>Clause 2</dt>
|
497
|
-
<dd>
|
498
|
-
<p id='_'>C</p>
|
499
|
-
</dd>
|
500
|
-
</dl>
|
501
|
-
</definitions>
|
502
|
-
</sections>
|
503
|
-
</standard-document>
|
504
|
-
OUTPUT
|
505
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
506
|
-
.to be_equivalent_to xmlpp(output)
|
507
|
-
end
|
508
|
-
|
509
|
-
it "processes the concept and related macros with xrefs" do
|
510
|
-
input = <<~INPUT
|
511
|
-
#{ASCIIDOC_BLANK_HDR}
|
512
|
-
{{<<clause1>>}}
|
513
|
-
{{<<clause1>>,w\[o\]rd}}
|
514
|
-
{{<<clause1>>,term,w\[o\]rd}}
|
515
|
-
{{<<clause1>>,term,w\[o\]rd,Clause #1}}
|
516
|
-
|
517
|
-
related:supersedes[<<clause1>>,term]
|
518
|
-
|
519
|
-
[[clause1]]
|
520
|
-
== Clause
|
521
|
-
Terms are defined here
|
522
|
-
INPUT
|
523
|
-
output = <<~OUTPUT
|
524
|
-
#{BLANK_HDR}
|
525
|
-
<preface>
|
526
|
-
<foreword id='_' obligation='informative'>
|
527
|
-
<title>Foreword</title>
|
528
|
-
<p id='_'>
|
529
|
-
<concept>
|
530
|
-
<xref target='clause1'/>
|
531
|
-
</concept>
|
532
|
-
<concept>
|
533
|
-
<refterm>w[o]rd</refterm>
|
534
|
-
<renderterm>w[o]rd</renderterm>
|
535
|
-
<xref target='clause1'/>
|
536
|
-
</concept>
|
537
|
-
<concept>
|
538
|
-
<refterm>term</refterm>
|
539
|
-
<renderterm>w[o]rd</renderterm>
|
540
|
-
<xref target='clause1'/>
|
541
|
-
</concept>
|
542
|
-
<concept>
|
543
|
-
<refterm>term</refterm>
|
544
|
-
<renderterm>w[o]rd</renderterm>
|
545
|
-
<xref target='clause1'>Clause #1</xref>
|
546
|
-
</concept>
|
547
|
-
</p>
|
548
|
-
<related type='supersedes'>
|
549
|
-
<preferred>
|
550
|
-
<expression>
|
551
|
-
<name>term</name>
|
552
|
-
</expression>
|
553
|
-
</preferred>
|
554
|
-
<xref target='clause1'/>
|
555
|
-
</related>
|
556
|
-
</foreword>
|
557
|
-
</preface>
|
558
|
-
<sections>
|
559
|
-
<clause id='clause1' inline-header='false' obligation='normative'>
|
560
|
-
<title>Clause</title>
|
561
|
-
<p id='_'>Terms are defined here</p>
|
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
|
-
|
570
|
-
it "processes the concept and related macros with erefs" do
|
571
|
-
input = <<~INPUT
|
572
|
-
#{ASCIIDOC_BLANK_HDR}
|
573
|
-
{{<<blah>>}}
|
574
|
-
{{<<blah>>,word}}
|
575
|
-
{{<<blah>>,term,word}}
|
576
|
-
{{<<blah>>,term,word,Clause #1}}
|
577
|
-
{{<<blah,clause=3.1>>}}
|
578
|
-
{{<<blah,clause=3.1>>,word}}
|
579
|
-
{{<<blah,clause=3.1>>,term,word}}
|
580
|
-
{{<<blah,clause=3.1,figure=a>>}}
|
581
|
-
{{<<blah,clause=3.1,figure=a>>,word}}
|
582
|
-
{{<<blah,clause=3.1,figure=a>>,term,word,Clause #1}}
|
583
|
-
|
584
|
-
related:narrower[<<blah,clause=3.1,figure=a>>,term]
|
585
|
-
|
586
|
-
[bibliography]
|
587
|
-
== Bibliography
|
588
|
-
* [[[blah,blah]]] _Blah_
|
589
|
-
INPUT
|
590
|
-
output = <<~OUTPUT
|
591
|
-
#{BLANK_HDR}
|
592
|
-
<preface>
|
593
|
-
<foreword id='_' obligation='informative'>
|
594
|
-
<title>Foreword</title>
|
595
|
-
<p id='_'>
|
596
|
-
<concept>
|
597
|
-
<eref bibitemid='blah'/>
|
598
|
-
</concept>
|
599
|
-
<concept>
|
600
|
-
<refterm>word</refterm>
|
601
|
-
<renderterm>word</renderterm>
|
602
|
-
<eref bibitemid='blah'/>
|
603
|
-
</concept>
|
604
|
-
<concept>
|
605
|
-
<refterm>term</refterm>
|
606
|
-
<renderterm>word</renderterm>
|
607
|
-
<eref bibitemid='blah'/>
|
608
|
-
</concept>
|
609
|
-
<concept>
|
610
|
-
<refterm>term</refterm>
|
611
|
-
<renderterm>word</renderterm>
|
612
|
-
<eref bibitemid='blah'>Clause #1</eref>
|
613
|
-
</concept>
|
614
|
-
<concept>
|
615
|
-
<eref bibitemid='blah'>
|
616
|
-
<localityStack>
|
617
|
-
<locality type='clause'>
|
618
|
-
<referenceFrom>3.1</referenceFrom>
|
619
|
-
</locality>
|
620
|
-
</localityStack>
|
621
|
-
</eref>
|
622
|
-
</concept>
|
623
|
-
<concept>
|
624
|
-
<refterm>word</refterm>
|
625
|
-
<renderterm>word</renderterm>
|
626
|
-
<eref bibitemid='blah'>
|
627
|
-
<localityStack>
|
628
|
-
<locality type='clause'>
|
629
|
-
<referenceFrom>3.1</referenceFrom>
|
630
|
-
</locality>
|
631
|
-
</localityStack>
|
632
|
-
</eref>
|
633
|
-
</concept>
|
634
|
-
<concept>
|
635
|
-
<refterm>term</refterm>
|
636
|
-
<renderterm>word</renderterm>
|
637
|
-
<eref bibitemid='blah'>
|
638
|
-
<localityStack>
|
639
|
-
<locality type='clause'>
|
640
|
-
<referenceFrom>3.1</referenceFrom>
|
641
|
-
</locality>
|
642
|
-
</localityStack>
|
643
|
-
</eref>
|
644
|
-
</concept>
|
645
|
-
<concept>
|
646
|
-
<eref bibitemid='blah'>
|
647
|
-
<localityStack>
|
648
|
-
<locality type='clause'>
|
649
|
-
<referenceFrom>3.1</referenceFrom>
|
650
|
-
</locality>
|
651
|
-
<locality type='figure'>
|
652
|
-
<referenceFrom>a</referenceFrom>
|
653
|
-
</locality>
|
654
|
-
</localityStack>
|
655
|
-
</eref>
|
656
|
-
</concept>
|
657
|
-
<concept>
|
658
|
-
<refterm>word</refterm>
|
659
|
-
<renderterm>word</renderterm>
|
660
|
-
<eref bibitemid='blah'>
|
661
|
-
<localityStack>
|
662
|
-
<locality type='clause'>
|
663
|
-
<referenceFrom>3.1</referenceFrom>
|
664
|
-
</locality>
|
665
|
-
<locality type='figure'>
|
666
|
-
<referenceFrom>a</referenceFrom>
|
667
|
-
</locality>
|
668
|
-
</localityStack>
|
669
|
-
</eref>
|
670
|
-
</concept>
|
671
|
-
<concept>
|
672
|
-
<refterm>term</refterm>
|
673
|
-
<renderterm>word</renderterm>
|
674
|
-
<eref bibitemid='blah'>
|
675
|
-
<localityStack>
|
676
|
-
<locality type='clause'>
|
677
|
-
<referenceFrom>3.1</referenceFrom>
|
678
|
-
</locality>
|
679
|
-
<locality type='figure'>
|
680
|
-
<referenceFrom>a</referenceFrom>
|
681
|
-
</locality>
|
682
|
-
</localityStack>
|
683
|
-
Clause #1
|
684
|
-
</eref>
|
685
|
-
</concept>
|
686
|
-
</p>
|
687
|
-
<related type='narrower'>
|
688
|
-
<preferred>
|
689
|
-
<expression>
|
690
|
-
<name>term</name>
|
691
|
-
</expression>
|
692
|
-
</preferred>
|
693
|
-
<eref bibitemid='blah'>
|
694
|
-
<localityStack>
|
695
|
-
<locality type='clause'>
|
696
|
-
<referenceFrom>3.1</referenceFrom>
|
697
|
-
</locality>
|
698
|
-
<locality type='figure'>
|
699
|
-
<referenceFrom>a</referenceFrom>
|
700
|
-
</locality>
|
701
|
-
</localityStack>
|
702
|
-
</eref>
|
703
|
-
</related>
|
704
|
-
</foreword>
|
705
|
-
</preface>
|
706
|
-
<sections> </sections>
|
707
|
-
<bibliography>
|
708
|
-
<references id='_' normative='false' obligation='informative'>
|
709
|
-
<title>Bibliography</title>
|
710
|
-
<bibitem id='blah'>
|
711
|
-
<formattedref format='application/x-isodoc+xml'>
|
712
|
-
<em>Blah</em>
|
713
|
-
</formattedref>
|
714
|
-
<docidentifier>blah</docidentifier>
|
715
|
-
</bibitem>
|
716
|
-
</references>
|
717
|
-
</bibliography>
|
718
|
-
</standard-document>
|
719
|
-
OUTPUT
|
720
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
721
|
-
.to be_equivalent_to xmlpp(output)
|
722
|
-
end
|
723
|
-
|
724
|
-
it "processes the concept and related macros with termbase" do
|
725
|
-
input = <<~INPUT
|
726
|
-
#{ASCIIDOC_BLANK_HDR}
|
727
|
-
{{<<IEV:135-13-13>>}}
|
728
|
-
{{<<IEV:135-13-13>>,word}}
|
729
|
-
{{<<IEV:135-13-13>>,term,word}}
|
730
|
-
{{<<IEV:135-13-13>>,term,word,Clause #1}}
|
731
|
-
|
732
|
-
related:see[<<IEV:135-13-13>>,term]
|
733
|
-
INPUT
|
734
|
-
output = <<~OUTPUT
|
735
|
-
#{BLANK_HDR}
|
736
|
-
<sections>
|
737
|
-
<p id='_'>
|
738
|
-
<concept>
|
739
|
-
<termref base='IEV' target='135-13-13'/>
|
740
|
-
</concept>
|
741
|
-
<concept>
|
742
|
-
<refterm>word</refterm>
|
743
|
-
<renderterm>word</renderterm>
|
744
|
-
<termref base='IEV' target='135-13-13'/>
|
745
|
-
</concept>
|
746
|
-
<concept>
|
747
|
-
<refterm>term</refterm>
|
748
|
-
<renderterm>word</renderterm>
|
749
|
-
<termref base='IEV' target='135-13-13'/>
|
750
|
-
</concept>
|
751
|
-
<concept>
|
752
|
-
<refterm>term</refterm>
|
753
|
-
<renderterm>word</renderterm>
|
754
|
-
<termref base='IEV' target='135-13-13'>Clause #1</termref>
|
755
|
-
</concept>
|
756
|
-
</p>
|
757
|
-
<related type='see'>
|
758
|
-
<preferred>
|
759
|
-
<expression>
|
760
|
-
<name>term</name>
|
761
|
-
</expression>
|
762
|
-
</preferred>
|
763
|
-
<termref base='IEV' target='135-13-13'/>
|
764
|
-
</related>
|
765
|
-
</sections>
|
766
|
-
</standard-document>
|
767
|
-
OUTPUT
|
768
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
769
|
-
.to be_equivalent_to xmlpp(output)
|
770
|
-
end
|
771
|
-
|
772
|
-
it "processes the concept macros with disambiguation for math symbols" do
|
773
|
-
input = <<~INPUT
|
774
|
-
#{ASCIIDOC_BLANK_HDR}
|
775
|
-
[[clause1]]
|
776
|
-
|
777
|
-
== Symbols and Abbreviated Terms
|
778
|
-
stem:[|~ x ~|]:: A function that returns the smallest integer greater than or equal to stem:[x]; also known as the _ceiling_ function.
|
779
|
-
stem:[|__ x __|]:: A function that returns the largest integer less than or equal to stem:[x]; also known as the _floor_ function.
|
780
|
-
INPUT
|
781
|
-
output = <<~OUTPUT
|
782
|
-
#{BLANK_HDR}
|
783
|
-
<sections>
|
784
|
-
<definitions id='clause1' obligation='normative'>
|
785
|
-
<title>Symbols and abbreviated terms</title>
|
786
|
-
<dl id='_'>
|
787
|
-
<dt id='symbol-__x230a_-x-__x230b_'>
|
788
|
-
<stem type='MathML'>
|
789
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
790
|
-
<mo>⌊</mo>
|
791
|
-
<mi>x</mi>
|
792
|
-
<mo>⌋</mo>
|
793
|
-
</math>
|
794
|
-
</stem>
|
795
|
-
</dt>
|
796
|
-
<dd>
|
797
|
-
<p id='_'>
|
798
|
-
A function that returns the largest integer less than or equal to
|
799
|
-
<stem type='MathML'>
|
800
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
801
|
-
<mi>x</mi>
|
802
|
-
</math>
|
803
|
-
</stem>
|
804
|
-
; also known as the
|
805
|
-
<em>floor</em>
|
806
|
-
function.
|
807
|
-
</p>
|
808
|
-
</dd>
|
809
|
-
<dt id='symbol-__x2308_-x-__x2309_'>
|
810
|
-
<stem type='MathML'>
|
811
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
812
|
-
<mo>⌈</mo>
|
813
|
-
<mi>x</mi>
|
814
|
-
<mo>⌉</mo>
|
815
|
-
</math>
|
816
|
-
</stem>
|
817
|
-
</dt>
|
818
|
-
<dd>
|
819
|
-
<p id='_'>
|
820
|
-
A function that returns the smallest integer greater than or equal
|
821
|
-
to
|
822
|
-
<stem type='MathML'>
|
823
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
824
|
-
<mi>x</mi>
|
825
|
-
</math>
|
826
|
-
</stem>
|
827
|
-
; also known as the
|
828
|
-
<em>ceiling</em>
|
829
|
-
function.
|
830
|
-
</p>
|
831
|
-
</dd>
|
832
|
-
</dl>
|
833
|
-
</definitions>
|
834
|
-
</sections>
|
835
|
-
</standard-document>
|
836
|
-
OUTPUT
|
837
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
838
|
-
.to be_equivalent_to xmlpp(output)
|
839
|
-
end
|
840
|
-
|
841
204
|
it "processes the TODO custom admonition" do
|
842
205
|
input = <<~INPUT
|
843
206
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -1570,102 +933,6 @@ RSpec.describe Metanorma::Standoc do
|
|
1570
933
|
.to be_equivalent_to xmlpp(output)
|
1571
934
|
end
|
1572
935
|
|
1573
|
-
it "processes embed macro with document in a different flavour" do
|
1574
|
-
require "metanorma-iso"
|
1575
|
-
input = <<~INPUT
|
1576
|
-
#{ASCIIDOC_BLANK_HDR}
|
1577
|
-
|
1578
|
-
[[clause1]]
|
1579
|
-
== Clause 1
|
1580
|
-
|
1581
|
-
embed::spec/assets/iso.adoc[]
|
1582
|
-
INPUT
|
1583
|
-
output = <<~OUTPUT
|
1584
|
-
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type='semantic' version='#{Metanorma::Standoc::VERSION}'>
|
1585
|
-
<bibdata type='standard'>
|
1586
|
-
<title language='en' format='text/plain'>Document title</title>
|
1587
|
-
<language>en</language>
|
1588
|
-
<script>Latn</script>
|
1589
|
-
<status>
|
1590
|
-
<stage>published</stage>
|
1591
|
-
</status>
|
1592
|
-
<copyright>
|
1593
|
-
<from>2022</from>
|
1594
|
-
</copyright>
|
1595
|
-
<ext>
|
1596
|
-
<doctype>standard</doctype>
|
1597
|
-
</ext>
|
1598
|
-
<relation type='derivedFrom'>
|
1599
|
-
<bibitem>
|
1600
|
-
<title language='en' format='text/plain' type='main'>
|
1601
|
-
Medical devices — Quality management systems — Requirements for
|
1602
|
-
regulatory purposes
|
1603
|
-
</title>
|
1604
|
-
<title language='en' format='text/plain' type='title-main'>
|
1605
|
-
Medical devices — Quality management systems — Requirements for
|
1606
|
-
regulatory purposes
|
1607
|
-
</title>
|
1608
|
-
<title language='fr' format='text/plain' type='main'>
|
1609
|
-
Dispositifs médicaux — Systèmes de management de la qualité —
|
1610
|
-
Exigences à des fins réglementaires
|
1611
|
-
</title>
|
1612
|
-
<title language='fr' format='text/plain' type='title-main'>
|
1613
|
-
Dispositifs médicaux — Systèmes de management de la qualité —
|
1614
|
-
Exigences à des fins réglementaires
|
1615
|
-
</title>
|
1616
|
-
<contributor>
|
1617
|
-
<role type='author'/>
|
1618
|
-
<organization>
|
1619
|
-
<name>International Organization for Standardization</name>
|
1620
|
-
<abbreviation>ISO</abbreviation>
|
1621
|
-
</organization>
|
1622
|
-
</contributor>
|
1623
|
-
<contributor>
|
1624
|
-
<role type='publisher'/>
|
1625
|
-
<organization>
|
1626
|
-
<name>International Organization for Standardization</name>
|
1627
|
-
<abbreviation>ISO</abbreviation>
|
1628
|
-
</organization>
|
1629
|
-
</contributor>
|
1630
|
-
<language>en</language>
|
1631
|
-
<script>Latn</script>
|
1632
|
-
<status>
|
1633
|
-
<stage abbreviation='IS'>60</stage>
|
1634
|
-
<substage>60</substage>
|
1635
|
-
</status>
|
1636
|
-
<copyright>
|
1637
|
-
<from>2022</from>
|
1638
|
-
<owner>
|
1639
|
-
<organization>
|
1640
|
-
<name>International Organization for Standardization</name>
|
1641
|
-
<abbreviation>ISO</abbreviation>
|
1642
|
-
</organization>
|
1643
|
-
</owner>
|
1644
|
-
</copyright>
|
1645
|
-
<ext>
|
1646
|
-
<doctype>standard</doctype>
|
1647
|
-
<editorialgroup>
|
1648
|
-
<agency>ISO</agency>
|
1649
|
-
</editorialgroup>
|
1650
|
-
<approvalgroup>
|
1651
|
-
<agency>ISO</agency>
|
1652
|
-
</approvalgroup>
|
1653
|
-
<stagename>International standard</stagename>
|
1654
|
-
</ext>
|
1655
|
-
</bibitem>
|
1656
|
-
</relation>
|
1657
|
-
</bibdata>
|
1658
|
-
<sections>
|
1659
|
-
<clause id='clause1' inline-header='false' obligation='normative'>
|
1660
|
-
<title>Clause 1</title>
|
1661
|
-
</clause>
|
1662
|
-
</sections>
|
1663
|
-
</standard-document>
|
1664
|
-
OUTPUT
|
1665
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1666
|
-
.to be_equivalent_to xmlpp(output)
|
1667
|
-
end
|
1668
|
-
|
1669
936
|
it "processes std-link macro" do
|
1670
937
|
VCR.use_cassette("std-link", match_requests_on: %i[method uri body]) do
|
1671
938
|
input = <<~INPUT
|
@@ -1805,399 +1072,6 @@ RSpec.describe Metanorma::Standoc do
|
|
1805
1072
|
end
|
1806
1073
|
end
|
1807
1074
|
|
1808
|
-
describe "term inline macros" do
|
1809
|
-
subject(:convert) do
|
1810
|
-
xmlpp(
|
1811
|
-
strip_guid(
|
1812
|
-
Asciidoctor.convert(
|
1813
|
-
input, *OPTIONS
|
1814
|
-
),
|
1815
|
-
),
|
1816
|
-
)
|
1817
|
-
end
|
1818
|
-
let(:input) do
|
1819
|
-
<<~XML
|
1820
|
-
#{ASCIIDOC_BLANK_HDR}
|
1821
|
-
== Terms and Definitions
|
1822
|
-
|
1823
|
-
=== name
|
1824
|
-
|
1825
|
-
== Main
|
1826
|
-
|
1827
|
-
term:[name,name2] is a term
|
1828
|
-
|
1829
|
-
{{name,name2}} is a term
|
1830
|
-
|
1831
|
-
related:equivalent[name]
|
1832
|
-
XML
|
1833
|
-
end
|
1834
|
-
let(:output) do
|
1835
|
-
<<~XML
|
1836
|
-
#{BLANK_HDR}
|
1837
|
-
<sections>
|
1838
|
-
<terms id='_' obligation='normative'>
|
1839
|
-
<title>Terms and definitions</title>
|
1840
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
1841
|
-
<term id='term-name'>
|
1842
|
-
<preferred><expression><name>name</name></expression></preferred>
|
1843
|
-
</term>
|
1844
|
-
</terms>
|
1845
|
-
<clause id='_' inline-header='false' obligation='normative'>
|
1846
|
-
<title>Main</title>
|
1847
|
-
<p id='_'>
|
1848
|
-
<concept>
|
1849
|
-
<refterm>name</refterm>
|
1850
|
-
<renderterm>name2</renderterm>
|
1851
|
-
<xref target='term-name'/>
|
1852
|
-
</concept>
|
1853
|
-
is a term
|
1854
|
-
</p>
|
1855
|
-
<p id='_'>
|
1856
|
-
<concept>
|
1857
|
-
<refterm>name</refterm>
|
1858
|
-
<renderterm>name2</renderterm>
|
1859
|
-
<xref target='term-name'/>
|
1860
|
-
</concept>
|
1861
|
-
is a term
|
1862
|
-
</p>
|
1863
|
-
<related type='equivalent'>
|
1864
|
-
<preferred>
|
1865
|
-
<expression>
|
1866
|
-
<name>name</name>
|
1867
|
-
</expression>
|
1868
|
-
</preferred>
|
1869
|
-
<xref target='term-name'>name</xref>
|
1870
|
-
</related>
|
1871
|
-
</clause>
|
1872
|
-
</sections>
|
1873
|
-
</standard-document>
|
1874
|
-
XML
|
1875
|
-
end
|
1876
|
-
|
1877
|
-
it "converts macro into the correct xml" do
|
1878
|
-
expect(convert).to(be_equivalent_to(xmlpp(output)))
|
1879
|
-
end
|
1880
|
-
|
1881
|
-
context "default params" do
|
1882
|
-
let(:input) do
|
1883
|
-
<<~XML
|
1884
|
-
#{ASCIIDOC_BLANK_HDR}
|
1885
|
-
|
1886
|
-
== Terms and Definitions
|
1887
|
-
|
1888
|
-
=== name
|
1889
|
-
|
1890
|
-
== Main
|
1891
|
-
|
1892
|
-
term:[name] is a term
|
1893
|
-
|
1894
|
-
{{name}} is a term
|
1895
|
-
XML
|
1896
|
-
end
|
1897
|
-
let(:output) do
|
1898
|
-
<<~XML
|
1899
|
-
#{BLANK_HDR}
|
1900
|
-
<sections>
|
1901
|
-
<terms id='_' obligation='normative'>
|
1902
|
-
<title>Terms and definitions</title>
|
1903
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
1904
|
-
<term id='term-name'>
|
1905
|
-
<preferred><expression><name>name</name></expression></preferred>
|
1906
|
-
</term>
|
1907
|
-
</terms>
|
1908
|
-
<clause id='_' inline-header='false' obligation='normative'>
|
1909
|
-
<title>Main</title>
|
1910
|
-
<p id='_'>
|
1911
|
-
<concept>
|
1912
|
-
<refterm>name</refterm>
|
1913
|
-
<renderterm>name</renderterm>
|
1914
|
-
<xref target='term-name'/>
|
1915
|
-
</concept>
|
1916
|
-
is a term
|
1917
|
-
</p>
|
1918
|
-
<p id='_'>
|
1919
|
-
<concept>
|
1920
|
-
<refterm>name</refterm>
|
1921
|
-
<renderterm>name</renderterm>
|
1922
|
-
<xref target='term-name'/>
|
1923
|
-
</concept>
|
1924
|
-
is a term
|
1925
|
-
</p>
|
1926
|
-
</clause>
|
1927
|
-
</sections>
|
1928
|
-
</standard-document>
|
1929
|
-
XML
|
1930
|
-
end
|
1931
|
-
|
1932
|
-
it "uses `name` as termref name" do
|
1933
|
-
expect(convert).to(be_equivalent_to(xmlpp(output)))
|
1934
|
-
end
|
1935
|
-
end
|
1936
|
-
|
1937
|
-
context "terms with index terms" do
|
1938
|
-
let(:input) do
|
1939
|
-
<<~XML
|
1940
|
-
#{ASCIIDOC_BLANK_HDR}
|
1941
|
-
|
1942
|
-
== Terms and Definitions
|
1943
|
-
|
1944
|
-
=== name(((name)))
|
1945
|
-
|
1946
|
-
== Main
|
1947
|
-
|
1948
|
-
term:[name] is a term
|
1949
|
-
|
1950
|
-
{{name}} is a term
|
1951
|
-
XML
|
1952
|
-
end
|
1953
|
-
let(:output) do
|
1954
|
-
<<~XML
|
1955
|
-
#{BLANK_HDR}
|
1956
|
-
<sections>
|
1957
|
-
<terms id='_' obligation='normative'>
|
1958
|
-
<title>Terms and definitions</title>
|
1959
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
1960
|
-
<term id='term-name'>
|
1961
|
-
<preferred><expression><name>name
|
1962
|
-
<index>
|
1963
|
-
<primary>name</primary>
|
1964
|
-
</index>
|
1965
|
-
</name>
|
1966
|
-
</expression></preferred>
|
1967
|
-
</term>
|
1968
|
-
</terms>
|
1969
|
-
<clause id='_' inline-header='false' obligation='normative'>
|
1970
|
-
<title>Main</title>
|
1971
|
-
<p id='_'>
|
1972
|
-
<concept>
|
1973
|
-
<refterm>name</refterm>
|
1974
|
-
<renderterm>name</renderterm>
|
1975
|
-
<xref target='term-name'/>
|
1976
|
-
</concept>
|
1977
|
-
is a term
|
1978
|
-
</p>
|
1979
|
-
<p id='_'>
|
1980
|
-
<concept>
|
1981
|
-
<refterm>name</refterm>
|
1982
|
-
<renderterm>name</renderterm>
|
1983
|
-
<xref target='term-name'/>
|
1984
|
-
</concept>
|
1985
|
-
is a term
|
1986
|
-
</p>
|
1987
|
-
</clause>
|
1988
|
-
</sections>
|
1989
|
-
</standard-document>
|
1990
|
-
XML
|
1991
|
-
end
|
1992
|
-
|
1993
|
-
it "strips index terms in terms anchors" do
|
1994
|
-
expect(convert).to(be_equivalent_to(xmlpp(output)))
|
1995
|
-
end
|
1996
|
-
end
|
1997
|
-
|
1998
|
-
context "multiply exising ids in document" do
|
1999
|
-
let(:input) do
|
2000
|
-
<<~XML
|
2001
|
-
#{ASCIIDOC_BLANK_HDR}
|
2002
|
-
|
2003
|
-
== Terms and Definitions
|
2004
|
-
|
2005
|
-
=== name
|
2006
|
-
=== name2
|
2007
|
-
|
2008
|
-
[[term-name]]
|
2009
|
-
== Main
|
2010
|
-
|
2011
|
-
paragraph
|
2012
|
-
|
2013
|
-
[[term-name2]]
|
2014
|
-
== Second
|
2015
|
-
|
2016
|
-
term:[name] is a term
|
2017
|
-
term:[name2] is a term
|
2018
|
-
{{name}} is a term
|
2019
|
-
{{name2}} is a term
|
2020
|
-
XML
|
2021
|
-
end
|
2022
|
-
let(:output) do
|
2023
|
-
<<~XML
|
2024
|
-
#{BLANK_HDR}
|
2025
|
-
<sections>
|
2026
|
-
<terms id='_' obligation='normative'>
|
2027
|
-
<title>Terms and definitions</title>
|
2028
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
2029
|
-
<term id='term-name-1'>
|
2030
|
-
<preferred><expression><name>name</name></expression></preferred>
|
2031
|
-
</term>
|
2032
|
-
<term id='term-name2-1'>
|
2033
|
-
<preferred><expression><name>name2</name></expression></preferred>
|
2034
|
-
</term>
|
2035
|
-
</terms>
|
2036
|
-
<clause id='term-name' inline-header='false' obligation='normative'>
|
2037
|
-
<title>Main</title>
|
2038
|
-
<p id='_'>paragraph</p>
|
2039
|
-
</clause>
|
2040
|
-
<clause id='term-name2' inline-header='false' obligation='normative'>
|
2041
|
-
<title>Second</title>
|
2042
|
-
<p id='_'>
|
2043
|
-
<concept>
|
2044
|
-
<refterm>name</refterm>
|
2045
|
-
<renderterm>name</renderterm>
|
2046
|
-
<xref target='term-name-1'/>
|
2047
|
-
</concept>
|
2048
|
-
is a term
|
2049
|
-
<concept>
|
2050
|
-
<refterm>name2</refterm>
|
2051
|
-
<renderterm>name2</renderterm>
|
2052
|
-
<xref target='term-name2-1'/>
|
2053
|
-
</concept>
|
2054
|
-
is a term
|
2055
|
-
<concept>
|
2056
|
-
<refterm>name</refterm>
|
2057
|
-
<renderterm>name</renderterm>
|
2058
|
-
<xref target='term-name-1'/>
|
2059
|
-
</concept>
|
2060
|
-
is a term
|
2061
|
-
<concept>
|
2062
|
-
<refterm>name2</refterm>
|
2063
|
-
<renderterm>name2</renderterm>
|
2064
|
-
<xref target='term-name2-1'/>
|
2065
|
-
</concept>
|
2066
|
-
is a term
|
2067
|
-
</p>
|
2068
|
-
</clause>
|
2069
|
-
</sections>
|
2070
|
-
</standard-document>
|
2071
|
-
XML
|
2072
|
-
end
|
2073
|
-
|
2074
|
-
it "generates unique ids which do not match existing ids" do
|
2075
|
-
expect(convert).to(be_equivalent_to(xmlpp(output)))
|
2076
|
-
end
|
2077
|
-
end
|
2078
|
-
|
2079
|
-
context "when missing actual ref" do
|
2080
|
-
let(:input) do
|
2081
|
-
<<~XML
|
2082
|
-
#{ASCIIDOC_BLANK_HDR}
|
2083
|
-
|
2084
|
-
== Terms and Definitions
|
2085
|
-
|
2086
|
-
=== name identity
|
2087
|
-
|
2088
|
-
[[name-check]]
|
2089
|
-
=== name check
|
2090
|
-
|
2091
|
-
paragraph
|
2092
|
-
|
2093
|
-
term:[name check] is a term
|
2094
|
-
|
2095
|
-
term:[name identity] is a term
|
2096
|
-
|
2097
|
-
Moreover, term:[missing] is a term
|
2098
|
-
|
2099
|
-
|
2100
|
-
{{name check}} is a term
|
2101
|
-
|
2102
|
-
{{name identity}} is a term
|
2103
|
-
|
2104
|
-
Moreover, {{missing}} is a term
|
2105
|
-
|
2106
|
-
related:equivalent[missing]
|
2107
|
-
XML
|
2108
|
-
end
|
2109
|
-
let(:output) do
|
2110
|
-
<<~XML
|
2111
|
-
#{BLANK_HDR}
|
2112
|
-
<sections>
|
2113
|
-
<terms id='_' obligation='normative'>
|
2114
|
-
<title>Terms and definitions</title>
|
2115
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
2116
|
-
<term id='term-name-identity'>
|
2117
|
-
<preferred><expression><name>name identity</name></expression></preferred>
|
2118
|
-
</term>
|
2119
|
-
<term id='name-check'>
|
2120
|
-
<preferred><expression><name>name check</name></expression></preferred>
|
2121
|
-
<related type='equivalent'>
|
2122
|
-
<strong>
|
2123
|
-
term
|
2124
|
-
<tt>missing</tt>
|
2125
|
-
not resolved via ID
|
2126
|
-
<tt>missing</tt>
|
2127
|
-
</strong>
|
2128
|
-
</related>
|
2129
|
-
<definition><verbal-definition>
|
2130
|
-
<p id='_'>paragraph</p>
|
2131
|
-
<p id='_'>
|
2132
|
-
<concept>
|
2133
|
-
<refterm>name check</refterm>
|
2134
|
-
<renderterm>name check</renderterm>
|
2135
|
-
<xref target='name-check'/>
|
2136
|
-
</concept>
|
2137
|
-
is a term
|
2138
|
-
</p>
|
2139
|
-
<p id='_'>
|
2140
|
-
<concept>
|
2141
|
-
<refterm>name identity</refterm>
|
2142
|
-
<renderterm>name identity</renderterm>
|
2143
|
-
<xref target='term-name-identity'/>
|
2144
|
-
</concept>
|
2145
|
-
is a term
|
2146
|
-
</p>
|
2147
|
-
<p id='_'>
|
2148
|
-
Moreover,
|
2149
|
-
<concept>
|
2150
|
-
<strong>
|
2151
|
-
term
|
2152
|
-
<tt>missing</tt>
|
2153
|
-
not resolved via ID
|
2154
|
-
<tt>missing</tt>
|
2155
|
-
</strong>
|
2156
|
-
</concept>
|
2157
|
-
is a term
|
2158
|
-
</p>
|
2159
|
-
<p id='_'>
|
2160
|
-
<concept>
|
2161
|
-
<refterm>name check</refterm>
|
2162
|
-
<renderterm>name check</renderterm>
|
2163
|
-
<xref target='name-check'/>
|
2164
|
-
</concept>
|
2165
|
-
is a term
|
2166
|
-
</p>
|
2167
|
-
<p id='_'>
|
2168
|
-
<concept>
|
2169
|
-
<refterm>name identity</refterm>
|
2170
|
-
<renderterm>name identity</renderterm>
|
2171
|
-
<xref target='term-name-identity'/>
|
2172
|
-
</concept>
|
2173
|
-
is a term
|
2174
|
-
</p>
|
2175
|
-
<p id='_'>
|
2176
|
-
Moreover,
|
2177
|
-
<concept>
|
2178
|
-
<strong>
|
2179
|
-
term
|
2180
|
-
<tt>missing</tt>
|
2181
|
-
not resolved via ID
|
2182
|
-
<tt>missing</tt>
|
2183
|
-
</strong>
|
2184
|
-
</concept>
|
2185
|
-
is a term
|
2186
|
-
</p>
|
2187
|
-
</verbal-definition></definition>
|
2188
|
-
</term>
|
2189
|
-
</terms>
|
2190
|
-
</sections>
|
2191
|
-
</standard-document>
|
2192
|
-
XML
|
2193
|
-
end
|
2194
|
-
|
2195
|
-
it "generates unique ids which do not match existing ids" do
|
2196
|
-
expect(convert).to(be_equivalent_to(xmlpp(output)))
|
2197
|
-
end
|
2198
|
-
end
|
2199
|
-
end
|
2200
|
-
|
2201
1075
|
describe "lutaml_figure macro" do
|
2202
1076
|
let(:example_file) { fixtures_path("test.xmi") }
|
2203
1077
|
let(:input) do
|