metanorma-standoc 1.10.4.1 → 1.10.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +19 -23
  3. data/lib/asciidoctor/standoc/base.rb +11 -13
  4. data/lib/asciidoctor/standoc/basicdoc.rng +21 -4
  5. data/lib/asciidoctor/standoc/blocks.rb +27 -22
  6. data/lib/asciidoctor/standoc/blocks_notes.rb +17 -22
  7. data/lib/asciidoctor/standoc/cleanup.rb +38 -71
  8. data/lib/asciidoctor/standoc/cleanup_block.rb +5 -70
  9. data/lib/asciidoctor/standoc/cleanup_image.rb +6 -7
  10. data/lib/asciidoctor/standoc/cleanup_inline.rb +27 -98
  11. data/lib/asciidoctor/standoc/cleanup_maths.rb +113 -21
  12. data/lib/asciidoctor/standoc/cleanup_ref.rb +5 -0
  13. data/lib/asciidoctor/standoc/cleanup_reqt.rb +56 -18
  14. data/lib/asciidoctor/standoc/cleanup_section.rb +1 -0
  15. data/lib/asciidoctor/standoc/cleanup_section_names.rb +31 -14
  16. data/lib/asciidoctor/standoc/cleanup_table.rb +68 -0
  17. data/lib/asciidoctor/standoc/cleanup_terms.rb +1 -1
  18. data/lib/asciidoctor/standoc/cleanup_text.rb +73 -0
  19. data/lib/asciidoctor/standoc/cleanup_xref.rb +107 -0
  20. data/lib/asciidoctor/standoc/converter.rb +13 -0
  21. data/lib/asciidoctor/standoc/isodoc.rng +241 -61
  22. data/lib/asciidoctor/standoc/lists.rb +15 -15
  23. data/lib/asciidoctor/standoc/macros.rb +14 -43
  24. data/lib/asciidoctor/standoc/macros_note.rb +45 -0
  25. data/lib/asciidoctor/standoc/macros_terms.rb +33 -15
  26. data/lib/asciidoctor/standoc/reqt.rb +2 -2
  27. data/lib/asciidoctor/standoc/reqt.rng +23 -2
  28. data/lib/asciidoctor/standoc/table.rb +22 -20
  29. data/lib/asciidoctor/standoc/terms.rb +9 -1
  30. data/lib/asciidoctor/standoc/validate.rb +23 -14
  31. data/lib/asciidoctor/standoc/validate_section.rb +5 -2
  32. data/lib/metanorma/standoc/version.rb +1 -1
  33. data/metanorma-standoc.gemspec +1 -1
  34. data/spec/asciidoctor/base_spec.rb +0 -33
  35. data/spec/asciidoctor/blank_spec.rb +37 -0
  36. data/spec/asciidoctor/blocks_spec.rb +151 -30
  37. data/spec/asciidoctor/cleanup_blocks_spec.rb +1018 -0
  38. data/spec/asciidoctor/cleanup_sections_spec.rb +207 -0
  39. data/spec/asciidoctor/cleanup_spec.rb +193 -1078
  40. data/spec/asciidoctor/inline_spec.rb +36 -0
  41. data/spec/asciidoctor/isobib_cache_spec.rb +8 -8
  42. data/spec/asciidoctor/lists_spec.rb +6 -6
  43. data/spec/asciidoctor/macros_plantuml_spec.rb +1 -1
  44. data/spec/asciidoctor/macros_spec.rb +41 -26
  45. data/spec/asciidoctor/refs_dl_spec.rb +1 -1
  46. data/spec/asciidoctor/refs_spec.rb +220 -444
  47. data/spec/asciidoctor/section_spec.rb +1 -1
  48. data/spec/asciidoctor/validate_spec.rb +51 -0
  49. data/spec/assets/xref_error.adoc +1 -0
  50. data/spec/fixtures/datamodel_description_sections_tree.xml +24 -24
  51. data/spec/spec_helper.rb +5 -7
  52. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +231 -143
  53. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +152 -0
  54. data/spec/vcr_cassettes/isobib_get_123.yml +52 -36
  55. data/spec/vcr_cassettes/isobib_get_123_1.yml +103 -71
  56. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +112 -80
  57. data/spec/vcr_cassettes/isobib_get_123_2001.yml +50 -34
  58. data/spec/vcr_cassettes/isobib_get_124.yml +51 -35
  59. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +16 -16
  60. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +70 -46
  61. metadata +11 -4
@@ -1588,4 +1588,211 @@ RSpec.describe Asciidoctor::Standoc do
1588
1588
  expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1589
1589
  .to be_equivalent_to xmlpp(output)
1590
1590
  end
1591
+
1592
+ it "adds variant titles" do
1593
+ input = <<~INPUT
1594
+ #{ASCIIDOC_BLANK_HDR}
1595
+
1596
+ == Clause
1597
+ Text
1598
+
1599
+ === Subclause
1600
+
1601
+ [.variant-title,type=toc]
1602
+ Clause _A_ stem:[x]
1603
+
1604
+ [.variant-title,type=sub]
1605
+ "A" 'B'
1606
+
1607
+ Text
1608
+
1609
+ [appendix]
1610
+ == Clause
1611
+
1612
+ [.variant-title,type=toc]
1613
+ Clause _A_ stem:[y]
1614
+
1615
+ Text
1616
+ INPUT
1617
+ output = <<~OUTPUT
1618
+ #{BLANK_HDR}
1619
+ <sections>
1620
+ <clause id='_' inline-header='false' obligation='normative'>
1621
+ <title>Clause</title>
1622
+ <p id='_'>Text</p>
1623
+ <clause id='_' inline-header='false' obligation='normative'>
1624
+ <title>Subclause</title>
1625
+ <variant-title type='sub'>&#8220;A&#8221; &#8216;B&#8217;</variant-title>
1626
+ <variant-title type='toc'>
1627
+ Clause
1628
+ <em>A</em>
1629
+ <stem type='MathML'>
1630
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1631
+ <mi>x</mi>
1632
+ </math>
1633
+ </stem>
1634
+ </variant-title>
1635
+ <p id='_'>Text</p>
1636
+ </clause>
1637
+ </clause>
1638
+ </sections>
1639
+ <annex id='_' inline-header='false' obligation='normative'>
1640
+ <title>Clause</title>
1641
+ <variant-title type='toc'>
1642
+ Clause
1643
+ <em>A</em>
1644
+ <stem type='MathML'>
1645
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1646
+ <mi>y</mi>
1647
+ </math>
1648
+ </stem>
1649
+ </variant-title>
1650
+ <p id='_'>Text</p>
1651
+ </annex>
1652
+ </standard-document>
1653
+ OUTPUT
1654
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1655
+ .to be_equivalent_to xmlpp(output)
1656
+ end
1657
+
1658
+ it "processes TOC clause" do
1659
+ input = <<~INPUT
1660
+ #{ASCIIDOC_BLANK_HDR}
1661
+
1662
+ == Clause
1663
+ Text
1664
+
1665
+ [type=toc]
1666
+ === Table of contents
1667
+
1668
+ Text at the start
1669
+
1670
+ ==== Toc 1
1671
+
1672
+ * <<cl2>>
1673
+ ** <<a1>>
1674
+
1675
+ ==== Toc 2
1676
+
1677
+ * <<cl2,some text>>
1678
+ ** <<a1,some more text>>
1679
+
1680
+ [[cl2]]
1681
+ == Clause2
1682
+
1683
+ [.variant-title,type=toc]
1684
+ Clause _A_ stem:[x]
1685
+
1686
+ [.variant-title,type=sub]
1687
+ "A" 'B'
1688
+
1689
+ Text
1690
+
1691
+ [[a1]]
1692
+ [appendix]
1693
+ == Clause
1694
+
1695
+ [.variant-title,type=toc]
1696
+ Clause _A_ stem:[y]
1697
+
1698
+ Text
1699
+ INPUT
1700
+ output = <<~OUTPUT
1701
+ #{BLANK_HDR}
1702
+ <sections>
1703
+ <clause id='_' inline-header='false' obligation='normative'>
1704
+ <title>Clause</title>
1705
+ <p id='_'>Text</p>
1706
+ <clause id='_' type='toc' inline-header='false' obligation='normative'>
1707
+ <title>Table of contents</title>
1708
+ <p id='_'>Text at the start</p>
1709
+ <clause id='_' inline-header='false' obligation='normative'>
1710
+ <title>Toc 1</title>
1711
+ <toc>
1712
+ <ul id='_'>
1713
+ <li>
1714
+ <p id='_'>
1715
+ <xref target='cl2'>
1716
+ Clause
1717
+ <em>A</em>
1718
+ <stem type='MathML'>
1719
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1720
+ <mi>x</mi>
1721
+ </math>
1722
+ </stem>
1723
+ </xref>
1724
+ </p>
1725
+ <ul id='_'>
1726
+ <li>
1727
+ <p id='_'>
1728
+ <xref target='a1'>
1729
+ Clause
1730
+ <em>A</em>
1731
+ <stem type='MathML'>
1732
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1733
+ <mi>y</mi>
1734
+ </math>
1735
+ </stem>
1736
+ </xref>
1737
+ </p>
1738
+ </li>
1739
+ </ul>
1740
+ </li>
1741
+ </ul>
1742
+ </toc>
1743
+ </clause>
1744
+ <clause id='_' inline-header='false' obligation='normative'>
1745
+ <title>Toc 2</title>
1746
+ <toc>
1747
+ <ul id='_'>
1748
+ <li>
1749
+ <p id='_'>
1750
+ <xref target='cl2'>some text</xref>
1751
+ </p>
1752
+ <ul id='_'>
1753
+ <li>
1754
+ <p id='_'>
1755
+ <xref target='a1'>some more text</xref>
1756
+ </p>
1757
+ </li>
1758
+ </ul>
1759
+ </li>
1760
+ </ul>
1761
+ </toc>
1762
+ </clause>
1763
+ </clause>
1764
+ </clause>
1765
+ <clause id='cl2' inline-header='false' obligation='normative'>
1766
+ <title>Clause2</title>
1767
+ <variant-title type='sub'>&#8220;A&#8221; &#8216;B&#8217;</variant-title>
1768
+ <variant-title type='toc'>
1769
+ Clause
1770
+ <em>A</em>
1771
+ <stem type='MathML'>
1772
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1773
+ <mi>x</mi>
1774
+ </math>
1775
+ </stem>
1776
+ </variant-title>
1777
+ <p id='_'>Text</p>
1778
+ </clause>
1779
+ </sections>
1780
+ <annex id='a1' inline-header='false' obligation='normative'>
1781
+ <title>Clause</title>
1782
+ <variant-title type='toc'>
1783
+ Clause
1784
+ <em>A</em>
1785
+ <stem type='MathML'>
1786
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
1787
+ <mi>y</mi>
1788
+ </math>
1789
+ </stem>
1790
+ </variant-title>
1791
+ <p id='_'>Text</p>
1792
+ </annex>
1793
+ </standard-document>
1794
+ OUTPUT
1795
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1796
+ .to be_equivalent_to xmlpp(output)
1797
+ end
1591
1798
  end