metanorma-standoc 2.2.5 → 2.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/html/htmlstyle.css +1 -1
  3. data/lib/metanorma/standoc/base.rb +4 -5
  4. data/lib/metanorma/standoc/basicdoc.rng +0 -27
  5. data/lib/metanorma/standoc/biblio-standoc.rng +164 -0
  6. data/lib/metanorma/standoc/biblio.rng +50 -18
  7. data/lib/metanorma/standoc/cleanup.rb +18 -17
  8. data/lib/metanorma/standoc/cleanup_amend.rb +2 -2
  9. data/lib/metanorma/standoc/cleanup_asciibib.rb +110 -0
  10. data/lib/metanorma/standoc/cleanup_biblio.rb +7 -112
  11. data/lib/metanorma/standoc/cleanup_block.rb +7 -6
  12. data/lib/metanorma/standoc/cleanup_boilerplate.rb +6 -6
  13. data/lib/metanorma/standoc/cleanup_inline.rb +2 -2
  14. data/lib/metanorma/standoc/cleanup_maths.rb +12 -4
  15. data/lib/metanorma/standoc/cleanup_section.rb +19 -9
  16. data/lib/metanorma/standoc/cleanup_symbols.rb +14 -7
  17. data/lib/metanorma/standoc/cleanup_text.rb +19 -6
  18. data/lib/metanorma/standoc/cleanup_toc.rb +1 -2
  19. data/lib/metanorma/standoc/cleanup_xref.rb +55 -14
  20. data/lib/metanorma/standoc/inline.rb +29 -12
  21. data/lib/metanorma/standoc/isodoc-compile.rng +7 -0
  22. data/lib/metanorma/standoc/isodoc.rng +69 -207
  23. data/lib/metanorma/standoc/ref_utility.rb +1 -0
  24. data/lib/metanorma/standoc/render.rb +10 -1
  25. data/lib/metanorma/standoc/section.rb +10 -3
  26. data/lib/metanorma/standoc/utils.rb +6 -1
  27. data/lib/metanorma/standoc/validate.rb +9 -9
  28. data/lib/metanorma/standoc/version.rb +1 -1
  29. data/metanorma-standoc.gemspec +5 -3
  30. metadata +7 -141
  31. data/.github/workflows/rake.yml +0 -15
  32. data/.github/workflows/release.yml +0 -24
  33. data/Rakefile +0 -8
  34. data/bin/rspec +0 -18
  35. data/spec/assets/a1.adoc +0 -8
  36. data/spec/assets/a2.adoc +0 -10
  37. data/spec/assets/a3.adoc +0 -9
  38. data/spec/assets/a3a.adoc +0 -7
  39. data/spec/assets/a4.adoc +0 -4
  40. data/spec/assets/boilerplate.xml +0 -4
  41. data/spec/assets/codes.yml +0 -695
  42. data/spec/assets/correct.png +0 -0
  43. data/spec/assets/corrupt.png +0 -0
  44. data/spec/assets/header.html +0 -7
  45. data/spec/assets/html-override.css +0 -1
  46. data/spec/assets/html.scss +0 -13
  47. data/spec/assets/htmlcover.html +0 -4
  48. data/spec/assets/htmlintro.html +0 -5
  49. data/spec/assets/i18n.yaml +0 -17
  50. data/spec/assets/iso.adoc +0 -10
  51. data/spec/assets/iso.headless.html +0 -33
  52. data/spec/assets/iso.xml +0 -8
  53. data/spec/assets/iso123.rxl +0 -107
  54. data/spec/assets/rice_image1.png +0 -0
  55. data/spec/assets/scripts.html +0 -3
  56. data/spec/assets/std.css +0 -2
  57. data/spec/assets/word-override.css +0 -1
  58. data/spec/assets/word.scss +0 -13
  59. data/spec/assets/wordcover.html +0 -3
  60. data/spec/assets/wordintro.html +0 -4
  61. data/spec/assets/xref_error.adoc +0 -8
  62. data/spec/examples/103_01_02.html +0 -247
  63. data/spec/examples/codes_table.html +0 -3174
  64. data/spec/examples/datamodel/address_class_profile.adoc +0 -5
  65. data/spec/examples/datamodel/address_class_profile.presentation.xml +0 -14
  66. data/spec/examples/datamodel/address_component_profile.adoc +0 -5
  67. data/spec/examples/datamodel/blank_definition_profile.adoc +0 -5
  68. data/spec/examples/datamodel/common_models_diagram.adoc +0 -5
  69. data/spec/examples/datamodel/models/models/AddressClassProfile.yml +0 -90
  70. data/spec/examples/datamodel/models/models/AddressComponentProfile.yml +0 -63
  71. data/spec/examples/datamodel/models/models/AddressComponentSpecification.yml +0 -15
  72. data/spec/examples/datamodel/models/models/AddressProfile.yml +0 -36
  73. data/spec/examples/datamodel/models/models/AttributeProfile.yml +0 -32
  74. data/spec/examples/datamodel/models/models/InterchangeAddressClassProfile.yml +0 -79
  75. data/spec/examples/datamodel/models/models/Localization copy.yml +0 -23
  76. data/spec/examples/datamodel/models/models/Localization.yml +0 -23
  77. data/spec/examples/datamodel/models/models/ProfileCompliantAddress.yml +0 -36
  78. data/spec/examples/datamodel/models/models/ProfileCompliantAddressComponent.yml +0 -15
  79. data/spec/examples/datamodel/models/models/Signature.yml +0 -20
  80. data/spec/examples/datamodel/models/models/SignatureBlankDefinition.yml +0 -20
  81. data/spec/examples/datamodel/models/models/TextDirectionCode copy.yml +0 -16
  82. data/spec/examples/datamodel/models/models/TextDirectionCode.yml +0 -16
  83. data/spec/examples/datamodel/models/models/Validity.yml +0 -14
  84. data/spec/examples/datamodel/models/models/iso19160-1/Address.yml +0 -22
  85. data/spec/examples/datamodel/models/models/iso19160-1/AddressComponent.yml +0 -2
  86. data/spec/examples/datamodel/models/style.uml.inc +0 -37
  87. data/spec/examples/datamodel/models/views/CommonModels.yml +0 -9
  88. data/spec/examples/datamodel/models/views/TopDown.yml +0 -62
  89. data/spec/examples/datamodel/top_down_diagram.adoc +0 -5
  90. data/spec/examples/english.yaml +0 -69
  91. data/spec/examples/iso_123_.xml +0 -46
  92. data/spec/examples/iso_123_all_parts.xml +0 -46
  93. data/spec/examples/iso_123_no_year_note.xml +0 -47
  94. data/spec/examples/iso_124_.xml +0 -42
  95. data/spec/examples/iso_216_.xml +0 -48
  96. data/spec/examples/iso_iec_12382_.xml +0 -49
  97. data/spec/examples/rice.adoc +0 -715
  98. data/spec/examples/rice.preview.html +0 -1877
  99. data/spec/examples/rice.sh +0 -4
  100. data/spec/examples/rice_images/rice_image1.png +0 -0
  101. data/spec/examples/rice_images/rice_image2.png +0 -0
  102. data/spec/examples/rice_images/rice_image3_1.png +0 -0
  103. data/spec/examples/rice_images/rice_image3_2.png +0 -0
  104. data/spec/examples/rice_images/rice_image3_3.png +0 -0
  105. data/spec/fixtures/action_schemaexpg1.svg +0 -122
  106. data/spec/fixtures/datamodel_description_sections_tree.xml +0 -327
  107. data/spec/fixtures/diagram_definitions.lutaml +0 -22
  108. data/spec/fixtures/macros_datamodel/address_class_profile.xml +0 -149
  109. data/spec/fixtures/macros_datamodel/address_component_profile.xml +0 -71
  110. data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +0 -51
  111. data/spec/fixtures/macros_datamodel/common_models_diagram.xml +0 -7
  112. data/spec/fixtures/macros_datamodel/top_down_diagram.xml +0 -7
  113. data/spec/fixtures/test.exp +0 -121
  114. data/spec/fixtures/test.xmi +0 -9250
  115. data/spec/metanorma/base_spec.rb +0 -1125
  116. data/spec/metanorma/biblio_spec.rb +0 -1004
  117. data/spec/metanorma/blank_spec.rb +0 -37
  118. data/spec/metanorma/blocks_spec.rb +0 -1784
  119. data/spec/metanorma/cleanup_blocks_spec.rb +0 -1099
  120. data/spec/metanorma/cleanup_sections_spec.rb +0 -1850
  121. data/spec/metanorma/cleanup_spec.rb +0 -1920
  122. data/spec/metanorma/cleanup_terms_spec.rb +0 -1543
  123. data/spec/metanorma/datamodel/attributes_table_preprocessor_spec.rb +0 -111
  124. data/spec/metanorma/datamodel/diagram_preprocessor_spec.rb +0 -72
  125. data/spec/metanorma/inline_spec.rb +0 -724
  126. data/spec/metanorma/isobib_cache_spec.rb +0 -742
  127. data/spec/metanorma/lists_spec.rb +0 -232
  128. data/spec/metanorma/macros_concept_spec.rb +0 -1052
  129. data/spec/metanorma/macros_json2text_spec.rb +0 -10
  130. data/spec/metanorma/macros_plantuml_spec.rb +0 -402
  131. data/spec/metanorma/macros_spec.rb +0 -1183
  132. data/spec/metanorma/macros_yaml2text_spec.rb +0 -10
  133. data/spec/metanorma/processor_spec.rb +0 -96
  134. data/spec/metanorma/refs_spec.rb +0 -2807
  135. data/spec/metanorma/reqt_spec.rb +0 -130
  136. data/spec/metanorma/section_spec.rb +0 -1325
  137. data/spec/metanorma/table_spec.rb +0 -474
  138. data/spec/metanorma/validate_spec.rb +0 -886
  139. data/spec/spec_helper.rb +0 -290
  140. data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +0 -781
  141. data/spec/vcr_cassettes/bsi16341.yml +0 -488
  142. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +0 -611
  143. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +0 -149
  144. data/spec/vcr_cassettes/hide_refs.yml +0 -587
  145. data/spec/vcr_cassettes/isobib_get_123.yml +0 -149
  146. data/spec/vcr_cassettes/isobib_get_123_1.yml +0 -295
  147. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +0 -385
  148. data/spec/vcr_cassettes/isobib_get_123_2.yml +0 -295
  149. data/spec/vcr_cassettes/isobib_get_123_2001.yml +0 -149
  150. data/spec/vcr_cassettes/isobib_get_124.yml +0 -149
  151. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +0 -351
  152. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +0 -560
  153. data/spec/vcr_cassettes/std-link.yml +0 -149
data/spec/spec_helper.rb DELETED
@@ -1,290 +0,0 @@
1
- require "vcr"
2
-
3
- VCR.configure do |config|
4
- config.cassette_library_dir = "spec/vcr_cassettes"
5
- config.hook_into :webmock
6
- config.default_cassette_options = {
7
- clean_outdated_http_interactions: true,
8
- re_record_interval: 1512000,
9
- record: :once,
10
- }
11
- end
12
-
13
- require "simplecov"
14
- SimpleCov.start do
15
- add_filter "/spec/"
16
- end
17
-
18
- require "bundler/setup"
19
- require "asciidoctor"
20
- require "metanorma-standoc"
21
- require "rspec/matchers"
22
- require "equivalent-xml"
23
- require "metanorma/standoc"
24
- require "rexml/document"
25
-
26
- Dir[File.expand_path("./support/**/**/*.rb", __dir__)]
27
- .sort.each { |f| require f }
28
-
29
- RSpec.configure do |config|
30
- # Enable flags like --only-failures and --next-failure
31
- config.example_status_persistence_file_path = ".rspec_status"
32
-
33
- # Disable RSpec exposing methods globally on `Module` and `main`
34
- config.disable_monkey_patching!
35
-
36
- config.expect_with :rspec do |c|
37
- c.syntax = :expect
38
- end
39
-
40
- config.around :each do |example|
41
- example.run
42
- rescue SystemExit
43
- fail "Unexpected exit encountered"
44
- end
45
- end
46
-
47
- OPTIONS = [backend: :standoc, header_footer: true, agree_to_terms: true].freeze
48
-
49
- def strip_guid(xml)
50
- xml.gsub(%r{ id="_[^"]+"}, ' id="_"')
51
- .gsub(%r{ target="_[^"]+"}, ' target="_"')
52
- end
53
-
54
- def strip_src(xml)
55
- xml.gsub(/\ssrc="[^"]+"/, ' src="_"')
56
- end
57
-
58
- def xmlpp(xml)
59
- s = ""
60
- f = REXML::Formatters::Pretty.new(2)
61
- f.compact = true
62
- f.write(REXML::Document.new(xml
63
- .gsub(%r{<fetched>[^<]+</fetched>}, "<fetched/>")), s)
64
- s
65
- end
66
-
67
- ASCIIDOC_BLANK_HDR = <<~"HDR".freeze
68
- = Document title
69
- Author
70
- :docfile: test.adoc
71
- :nodoc:
72
- :novalid:
73
- :no-isobib:
74
- :data-uri-image: false
75
-
76
- HDR
77
-
78
- DUMBQUOTE_BLANK_HDR = <<~"HDR".freeze
79
- = Document title
80
- Author
81
- :docfile: test.adoc
82
- :nodoc:
83
- :novalid:
84
- :no-isobib:
85
- :smartquotes: false
86
-
87
- HDR
88
-
89
- ISOBIB_BLANK_HDR = <<~"HDR".freeze
90
- = Document title
91
- Author
92
- :docfile: test.adoc
93
- :nodoc:
94
- :novalid:
95
- :no-isobib-cache:
96
-
97
- HDR
98
-
99
- FLUSH_CACHE_ISOBIB_BLANK_HDR = <<~"HDR".freeze
100
- = Document title
101
- Author
102
- :docfile: test.adoc
103
- :nodoc:
104
- :novalid:
105
- :flush-caches:
106
-
107
- HDR
108
-
109
- CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
110
- = Document title
111
- Author
112
- :docfile: test.adoc
113
- :nodoc:
114
- :novalid:
115
-
116
- HDR
117
-
118
- LOCAL_CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
119
- = Document title
120
- Author
121
- :docfile: test.adoc
122
- :nodoc:
123
- :novalid:
124
- :local-cache:
125
-
126
- HDR
127
-
128
- LOCAL_ONLY_CACHED_ISOBIB_BLANK_HDR = <<~"HDR".freeze
129
- = Document title
130
- Author
131
- :docfile: test.adoc
132
- :nodoc:
133
- :novalid:
134
- :local-cache-only:
135
-
136
- HDR
137
-
138
- VALIDATING_BLANK_HDR = <<~"HDR".freeze
139
- = Document title
140
- Author
141
- :docfile: test.adoc
142
- :nodoc:
143
- :no-isobib:
144
-
145
- HDR
146
-
147
- NORM_REF_BOILERPLATE = <<~"HDR".freeze
148
- <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
149
- HDR
150
-
151
- BLANK_HDR = <<~"HDR".freeze
152
- <?xml version="1.0" encoding="UTF-8"?>
153
- <standard-document xmlns="https://www.metanorma.org/ns/standoc" version="#{Metanorma::Standoc::VERSION}" type="semantic">
154
- <bibdata type="standard">
155
- <title language="en" format="text/plain">Document title</title>
156
- <language>en</language>
157
- <script>Latn</script>
158
- <status><stage>published</stage></status>
159
- <copyright>
160
- <from>#{Time.new.year}</from>
161
- </copyright>
162
- <ext>
163
- <doctype>standard</doctype>
164
- </ext>
165
- </bibdata>
166
- HDR
167
-
168
- BLANK_METANORMA_HDR = <<~"HDR".freeze
169
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
170
- <?xml version="1.0" encoding="UTF-8"?><html><body>
171
- <standard-document xmlns="https://www.metanorma.org/ns/standoc" version="#{Metanorma::Standoc::VERSION}" type="semantic">
172
- <bibdata type="standard">
173
- <title language="en" format="text/plain">Document title</title>
174
- <language>en</language>
175
- <script>Latn</script>
176
- <status><stage>published</stage></status>
177
- <copyright>
178
- <from>#{Time.new.year}</from>
179
- </copyright>
180
- <ext>
181
- <doctype>article</doctype>
182
- </ext>
183
- </bibdata>
184
- HDR
185
-
186
- HTML_HDR = <<~HDR.freeze
187
- <html xmlns:epub="http://www.idpf.org/2007/ops">
188
- <head>
189
- <title>test</title>
190
- </head>
191
- <body lang="EN-US" link="blue" vlink="#954F72">
192
- <div class="title-section">
193
- <p>&#160;</p>
194
- </div>
195
- <br/>
196
- <div class="prefatory-section">
197
- <p>&#160;</p>
198
- </div>
199
- <br/>
200
- <div class="main-section">
201
- HDR
202
-
203
- WORD_HDR = <<~HDR.freeze
204
- <html xmlns:epub="http://www.idpf.org/2007/ops">
205
- <head>
206
- <title>test</title>
207
- </head>
208
- <body lang="EN-US" link="blue" vlink="#954F72">
209
- <div class="WordSection1">
210
- <p>&#160;</p>
211
- </div>
212
- <br clear="all" class="section"/>
213
- <div class="WordSection2">
214
- <p>&#160;</p>
215
- </div>
216
- <br clear="all" class="section"/>
217
- <div class="WordSection3">
218
- HDR
219
-
220
- def examples_path(path)
221
- File.join(File.expand_path("./examples", __dir__), path)
222
- end
223
-
224
- def fixtures_path(path)
225
- File.join(File.expand_path("./fixtures", __dir__), path)
226
- end
227
-
228
- def stub_fetch_ref(**opts)
229
- xml = ""
230
-
231
- hit = double("hit")
232
- expect(hit).to receive(:[]).with("title") do
233
- Nokogiri::XML(xml).at("//docidentifier").content
234
- end.at_least(:once)
235
-
236
- hit_instance = double("hit_instance")
237
- expect(hit_instance).to receive(:hit).and_return(hit).at_least(:once)
238
- expect(hit_instance).to receive(:to_xml) do |builder, opt|
239
- expect(builder).to be_instance_of Nokogiri::XML::Builder
240
- expect(opt).to eq opts
241
- builder << xml
242
- end.at_least :once
243
-
244
- hit_page = double("hit_page")
245
- expect(hit_page).to receive(:first).and_return(hit_instance).at_least :once
246
-
247
- hit_pages = double("hit_pages")
248
- expect(hit_pages).to receive(:first).and_return(hit_page).at_least :once
249
-
250
- expect(RelatonIso::IsoBibliography).to receive(:search)
251
- .and_wrap_original do |search, *args|
252
- code = args[0]
253
- expect(code).to be_instance_of String
254
- xml = get_xml(search, code, opts)
255
- hit_pages
256
- end.at_least :once
257
- end
258
-
259
- private
260
-
261
- def get_xml(search, code, opts)
262
- c = code.gsub(%r{[/\s:-]}, "_").sub(%r{_+$}, "").downcase
263
- file = examples_path("#{[c, opts.keys.join('_')].join '_'}.xml")
264
- if File.exist? file
265
- File.read file
266
- else
267
- xml = search.call(code)&.first&.first&.to_xml nil, opts
268
- File.write file, xml
269
- xml
270
- end
271
- end
272
-
273
- def mock_open_uri(code)
274
- expect(OpenURI).to receive(:open_uri).and_wrap_original do |m, *args|
275
- # expect(args[0]).to be_instance_of String
276
- file = examples_path("#{code.tr('-', '_')}.html")
277
- File.write file, m.call(*args).read unless File.exist? file
278
- File.read file, encoding: "utf-8"
279
- end.at_least :once
280
- end
281
-
282
- def metanorma_process(input)
283
- Metanorma::Input::Asciidoc
284
- .new
285
- .process(input, "test.adoc", :standoc)
286
- end
287
-
288
- def xml_string_conent(xml)
289
- strip_guid(Nokogiri::HTML(xml).to_s)
290
- end