metanorma-standoc 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d40164559c6167d8a76a56feec14ad218ad6b3151419dd7f5069859daf39945
4
- data.tar.gz: 55b683b4abb435f27648c042092526121b9235cebe9dfc95ce633efe9af3e057
3
+ metadata.gz: a96726969ceffd8d3d05779e0f81db28972e6932a670cf93745a5006e881f392
4
+ data.tar.gz: 2d042cb06685449297536817bf622421222e0de78f285ca7c4ceab8f847127bb
5
5
  SHA512:
6
- metadata.gz: 94f95a9f73f40f7037fccda3c15f7608e570f3cef8903aa3f11e4540d370bf9f84809dd2566fdf27106a263c5cf16fcef2757be434ff9d85f7ee424224240012
7
- data.tar.gz: 17579d0d6cd9d1401a847d0cc9fe519a95b6708d181f621a8592b615d2b09ef9376452c20aa8e8baaa55ca3b6630a1a28c26dc38d557304f10086ab369b23188
6
+ metadata.gz: 440f9483f3b0cfa94769d357b40a314d26068975371bf2b54c7a0689cdd2bfdd2fb1cc4c877e097666b3d6c36545c09b7e40809d80aa095a132e810de6a02ede
7
+ data.tar.gz: c39511c530a2530eb7ec4c430bc8917041d270f2643993609a844930415150e9b701a56ab31b550e79312f7a854205ff920e7d7e6f07acb90d995920681ee789
@@ -169,6 +169,15 @@ module Asciidoctor
169
169
  end
170
170
  end
171
171
 
172
+ def term_children_cleanup(xmldoc)
173
+ xmldoc.xpath("//term").each do |t|
174
+ ex = t.xpath("./termexample")
175
+ t.xpath("./termnote").each { |n| t << n.remove }
176
+ t.xpath("./termexample").each { |n| t << n.remove }
177
+ t.xpath("./termsource").each { |n| t << n.remove }
178
+ end
179
+ end
180
+
172
181
  def termdef_cleanup(xmldoc)
173
182
  termdef_unnest_cleanup(xmldoc)
174
183
  termdef_stem_cleanup(xmldoc)
@@ -176,6 +185,7 @@ module Asciidoctor
176
185
  termdefinition_cleanup(xmldoc)
177
186
  termdef_boilerplate_cleanup(xmldoc)
178
187
  termdef_subclause_cleanup(xmldoc)
188
+ term_children_cleanup(xmldoc)
179
189
  termdocsource_cleanup(xmldoc)
180
190
  end
181
191
 
@@ -22,7 +22,8 @@ module Asciidoctor
22
22
 
23
23
  def sectiontype(node)
24
24
  ret = node&.attr("heading")&.downcase || node.title.downcase
25
- return ret if ret == "symbols and abbreviated terms"
25
+ return ret if ["symbols and abbreviated terms", "abbreviations",
26
+ "abbreviated terms", "symbols"].include? ret
26
27
  return nil unless node.level == 1
27
28
  return nil if @seen_headers.include? ret
28
29
  @seen_headers << ret
@@ -44,7 +45,10 @@ module Asciidoctor
44
45
  @term_def = true
45
46
  term_def_parse(a, xml, node, true)
46
47
  @term_def = false
47
- when "symbols and abbreviated terms"
48
+ when "symbols and abbreviated terms",
49
+ "symbols",
50
+ "abbreviated terms",
51
+ "abbreviations"
48
52
  symbols_parse(a, xml, node)
49
53
  when "bibliography" then bibliography_parse(a, xml, node)
50
54
  else
@@ -110,6 +114,7 @@ module Asciidoctor
110
114
 
111
115
  # subclause contains subclauses
112
116
  def term_def_subclause_parse(attrs, xml, node)
117
+ return clause_parse(attrs, xml, node) if node.role == "nonterm"
113
118
  sub = node.find_by(context: :section) { |s| s.level == node.level + 1 }
114
119
  sub.empty? || (return term_def_parse(attrs, xml, node, false))
115
120
  node.title.casecmp("symbols and abbreviated terms").zero? &&
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Standoc
3
- VERSION = "1.0.2".freeze
3
+ VERSION = "1.0.3".freeze
4
4
  end
5
5
  end
@@ -695,6 +695,52 @@ r = 1 %</stem>
695
695
  OUTPUT
696
696
  end
697
697
 
698
+ it "rearranges term note, term example, term source" do
699
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
700
+ #{ASCIIDOC_BLANK_HDR}
701
+
702
+ == Terms and definitions
703
+
704
+ === Term
705
+
706
+ [.source]
707
+ <<ISO2191,section=1>>
708
+
709
+ NOTE: Note
710
+
711
+ [example]
712
+ Example 1
713
+
714
+ NOTE: Note 2
715
+
716
+ [example]
717
+ Example 2
718
+ INPUT
719
+ #{BLANK_HDR}
720
+ <sections>
721
+ <terms id="_" obligation="normative">
722
+ <title>Terms and definitions</title>
723
+ <term id="_"><preferred>Term</preferred>
724
+
725
+
726
+
727
+ <termnote id="_">
728
+ <p id="_">Note</p>
729
+ </termnote><termnote id="_">
730
+ <p id="_">Note 2</p>
731
+ </termnote><termexample id="_">
732
+ <p id="_">Example 1</p>
733
+ </termexample><termexample id="_">
734
+ <p id="_">Example 2</p>
735
+ </termexample><termsource status="identical">
736
+ <origin bibitemid="ISO2191" type="inline" citeas=""><locality type="section"><referenceFrom>1</referenceFrom></locality></origin>
737
+ </termsource></term>
738
+ </terms>
739
+ </sections>
740
+ </standard-document>
741
+ OUTPUT
742
+ end
743
+
698
744
  it "extends clause levels past 5" do
699
745
  expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
700
746
  #{ASCIIDOC_BLANK_HDR}
@@ -24,6 +24,9 @@ RSpec.describe Asciidoctor::Standoc do
24
24
 
25
25
  == Terms, Definitions, Symbols and Abbreviated Terms
26
26
 
27
+ [.nonterm]
28
+ === Introduction
29
+
27
30
  === Normal Terms
28
31
 
29
32
  ==== Term2
@@ -53,10 +56,13 @@ RSpec.describe Asciidoctor::Standoc do
53
56
  <preface><foreword obligation="informative">
54
57
  <title>Foreword</title>
55
58
  <p id="_">Text</p>
56
- </foreword><introduction id="_" obligation="informative"><title>Introduction</title><clause id="_" inline-header="false" obligation="informative">
59
+ </foreword><introduction id="_" obligation="informative">
60
+ <title>Introduction</title>
61
+ <clause id="_" inline-header="false" obligation="informative">
57
62
  <title>Introduction Subsection</title>
58
63
  </clause>
59
64
  </introduction></preface><sections>
65
+
60
66
  <clause id="_" inline-header="false" obligation="normative">
61
67
  <title>Scope</title>
62
68
  <p id="_">Text</p>
@@ -68,7 +74,10 @@ RSpec.describe Asciidoctor::Standoc do
68
74
  <preferred>Term1</preferred>
69
75
  </term>
70
76
  </terms>
71
- <clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><terms id="_" obligation="normative">
77
+ <clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><clause id="_" inline-header="false" obligation="normative">
78
+ <title>Introduction</title>
79
+ </clause>
80
+ <terms id="_" obligation="normative">
72
81
  <title>Normal Terms</title>
73
82
  <term id="_">
74
83
  <preferred>Term2</preferred>
@@ -83,9 +92,8 @@ RSpec.describe Asciidoctor::Standoc do
83
92
  <title>Clause 4.2</title>
84
93
  </clause></clause>
85
94
  <clause id="_" inline-header="false" obligation="normative">
86
- <title>Terms and Definitions</title>
87
- </clause>
88
-
95
+ <title>Terms and Definitions</title>
96
+ </clause>
89
97
 
90
98
  </sections><annex id="_" inline-header="false" obligation="normative">
91
99
  <title>Annex</title>
@@ -99,8 +107,7 @@ RSpec.describe Asciidoctor::Standoc do
99
107
  <references id="_" obligation="informative">
100
108
  <title>Bibliography Subsection</title>
101
109
  </references>
102
- </clause>
103
- </bibliography>
110
+ </clause></bibliography>
104
111
  </standard-document>
105
112
  OUTPUT
106
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-25 00:00:00.000000000 Z
11
+ date: 2018-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor