metanorma-standoc 1.5.3 → 1.6.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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +66 -0
- data/README.adoc +1 -3
- data/lib/asciidoctor/standoc/base.rb +6 -1
- data/lib/asciidoctor/standoc/basicdoc.rng +4 -11
- data/lib/asciidoctor/standoc/cleanup.rb +78 -12
- data/lib/asciidoctor/standoc/cleanup_block.rb +41 -4
- data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +14 -0
- data/lib/asciidoctor/standoc/cleanup_footnotes.rb +25 -0
- data/lib/asciidoctor/standoc/cleanup_inline.rb +6 -2
- data/lib/asciidoctor/standoc/cleanup_ref.rb +3 -4
- data/lib/asciidoctor/standoc/converter.rb +58 -3
- data/lib/asciidoctor/standoc/front.rb +9 -3
- data/lib/asciidoctor/standoc/front_contributor.rb +43 -11
- data/lib/asciidoctor/standoc/inline.rb +18 -40
- data/lib/asciidoctor/standoc/isodoc.rng +27 -50
- data/lib/asciidoctor/standoc/lists.rb +4 -2
- data/lib/asciidoctor/standoc/macros.rb +28 -2
- data/lib/asciidoctor/standoc/ref.rb +46 -48
- data/lib/asciidoctor/standoc/ref_sect.rb +16 -8
- data/lib/asciidoctor/standoc/section.rb +5 -9
- data/lib/liquid/custom_blocks/with_json_nested_context.rb +18 -0
- data/lib/liquid/custom_blocks/with_yaml_nested_context.rb +19 -0
- data/lib/metanorma/standoc.rb +0 -5
- data/lib/metanorma/standoc/version.rb +20 -1
- data/metanorma-standoc.gemspec +7 -3
- data/spec/asciidoctor-standoc/base_spec.rb +246 -9
- data/spec/asciidoctor-standoc/blocks_spec.rb +1 -1
- data/spec/asciidoctor-standoc/cleanup_sections_spec.rb +1514 -0
- data/spec/asciidoctor-standoc/cleanup_spec.rb +384 -1547
- data/spec/asciidoctor-standoc/inline_spec.rb +128 -4
- data/spec/asciidoctor-standoc/isobib_cache_spec.rb +15 -22
- data/spec/asciidoctor-standoc/lists_spec.rb +10 -1
- data/spec/asciidoctor-standoc/macros_json2text_spec.rb +1 -1
- data/spec/asciidoctor-standoc/macros_lutaml_spec.rb +80 -0
- data/spec/asciidoctor-standoc/macros_spec.rb +258 -0
- data/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +1 -1
- data/spec/asciidoctor-standoc/refs_dl_spec.rb +8 -8
- data/spec/asciidoctor-standoc/refs_spec.rb +362 -104
- data/spec/asciidoctor-standoc/validate_spec.rb +26 -0
- data/spec/fixtures/diagram_definitions.lutaml +22 -0
- data/spec/fixtures/test.exp +121 -0
- data/spec/spec_helper.rb +34 -1
- data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +201 -3
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +47 -231
- data/spec/vcr_cassettes/isobib_get_123.yml +14 -60
- data/spec/vcr_cassettes/isobib_get_123_1.yml +24 -116
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +361 -0
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +14 -60
- data/spec/vcr_cassettes/isobib_get_124.yml +12 -58
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +8 -8
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +292 -162
- metadata +59 -17
- data/.github/workflows/macos.yml +0 -46
- data/.github/workflows/ubuntu.yml +0 -49
- data/.github/workflows/windows.yml +0 -53
- data/lib/asciidoctor/standoc/base_structured_text_preprocessor.rb +0 -123
- data/lib/asciidoctor/standoc/json2_text_preprocessor.rb +0 -43
- data/lib/asciidoctor/standoc/yaml2_text_preprocessor.rb +0 -43
- data/lib/metanorma/standoc/latexml_requirement.rb +0 -62
- data/lib/metanorma/standoc/requirement.rb +0 -13
@@ -369,4 +369,30 @@ it "err file succesfully created for docfile path" do
|
|
369
369
|
expect(File.read("test/test.err")).to include "Hanging paragraph in clause"
|
370
370
|
end
|
371
371
|
|
372
|
+
it "Warning if no block for footnoteblock" do
|
373
|
+
FileUtils.rm_f "test.err"
|
374
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
375
|
+
= Document title
|
376
|
+
Author
|
377
|
+
:docfile: test.adoc
|
378
|
+
|
379
|
+
footnoteblock:[id1]
|
380
|
+
|
381
|
+
[[id2]]
|
382
|
+
[NOTE]
|
383
|
+
--
|
384
|
+
|===
|
385
|
+
|a |b
|
386
|
+
|
387
|
+
|c |d
|
388
|
+
|===
|
389
|
+
|
390
|
+
* A
|
391
|
+
* B
|
392
|
+
* C
|
393
|
+
--
|
394
|
+
INPUT
|
395
|
+
expect(File.read("test.err")).to include 'Could not resolve footnoteblock:[id1]'
|
396
|
+
end
|
397
|
+
|
372
398
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
diagram MyView {
|
2
|
+
title "my diagram"
|
3
|
+
|
4
|
+
enum AddressClassProfile {
|
5
|
+
imlicistAttributeProfile: CharacterString [0..1] {
|
6
|
+
definition
|
7
|
+
this is multiline with `ascidoc`
|
8
|
+
comments
|
9
|
+
and list
|
10
|
+
end definition
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
class AttributeProfile {
|
15
|
+
+addressClassProfile: CharacterString [0..1]
|
16
|
+
imlicistAttributeProfile: CharacterString [0..1] {
|
17
|
+
definition this is attribute definition
|
18
|
+
with multiply lines
|
19
|
+
end definition
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
(*
|
2
|
+
$Id: test.exp,v 1.3 2020/07/30 05:18:54 ftanaka Exp $
|
3
|
+
ISO 10303 TC184/SC4/WG12 N10658
|
4
|
+
|
5
|
+
EXPRESS Source:
|
6
|
+
ISO 10303-59 ed3 Quality of product shape data - Annotated 3d model data quality criteria schema
|
7
|
+
|
8
|
+
The following permission notice and disclaimer shall be included in all copies of this EXPRESS schema ("the Schema"),
|
9
|
+
and derivations of the Schema:
|
10
|
+
|
11
|
+
Copyright ISO 2020 All rights reserved
|
12
|
+
Permission is hereby granted, free of charge in perpetuity, to any person obtaining a copy of the Schema,
|
13
|
+
to use, copy, modify, merge and distribute free of charge, copies of the Schema for the purposes of developing,
|
14
|
+
implementing, installing and using software based on the Schema, and to permit persons to whom the Schema is furnished to do so,
|
15
|
+
subject to the following conditions:
|
16
|
+
|
17
|
+
THE SCHEMA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
18
|
+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
20
|
+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SCHEMA OR THE
|
22
|
+
USE OR OTHER DEALINGS IN THE SCHEMA.
|
23
|
+
|
24
|
+
In addition, any modified copy of the Schema shall include the following notice:
|
25
|
+
|
26
|
+
THIS SCHEMA HAS BEEN MODIFIED FROM THE SCHEMA DEFINED IN
|
27
|
+
ISO 10303-59 ed3 Quality of product shape data - Annotated 3d model data quality criteria schema
|
28
|
+
AND SHOULD NOT BE INTERPRETED AS COMPLYING WITH THAT STANDARD
|
29
|
+
*)
|
30
|
+
|
31
|
+
SCHEMA annotated_3d_model_data_quality_criteria_schema '{iso standard 10303 part(59) version(3) object(1) annotated_3d_model_data_quality_criteria_schema(6)}';
|
32
|
+
|
33
|
+
(* Need select eleemnts for measure_value *)
|
34
|
+
REFERENCE FROM measure_schema
|
35
|
+
(measure_value);
|
36
|
+
|
37
|
+
REFERENCE FROM product_data_quality_criteria_schema
|
38
|
+
(data_quality_criteria_representation,
|
39
|
+
data_quality_criterion,
|
40
|
+
data_quality_measurement_requirement,
|
41
|
+
detailed_report_request_with_number_of_data,
|
42
|
+
summary_report_request);
|
43
|
+
|
44
|
+
REFERENCE FROM representation_schema
|
45
|
+
(representation,
|
46
|
+
representation_item);
|
47
|
+
|
48
|
+
REFERENCE FROM shape_data_quality_criteria_schema
|
49
|
+
(shape_data_quality_assessment_specification_select,
|
50
|
+
shape_measurement_accuracy);
|
51
|
+
|
52
|
+
REFERENCE FROM support_resource_schema
|
53
|
+
(identifier,
|
54
|
+
label,
|
55
|
+
text);
|
56
|
+
|
57
|
+
TYPE a3m_accuracy_associated_target_select = EXTENSIBLE SELECT;
|
58
|
+
END_TYPE;
|
59
|
+
|
60
|
+
TYPE a3m_data_quality_accuracy_type_name = EXTENSIBLE ENUMERATION;
|
61
|
+
END_TYPE;
|
62
|
+
|
63
|
+
TYPE a3m_data_quality_inspected_element_type_name = EXTENSIBLE ENUMERATION;
|
64
|
+
END_TYPE;
|
65
|
+
|
66
|
+
TYPE a3m_data_quality_measured_data_type_name = EXTENSIBLE ENUMERATION;
|
67
|
+
END_TYPE;
|
68
|
+
|
69
|
+
TYPE a3m_data_quality_type_name_for_location_of_extreme_value = EXTENSIBLE ENUMERATION;
|
70
|
+
END_TYPE;
|
71
|
+
|
72
|
+
TYPE summary_stats_value_type = ENUMERATION OF
|
73
|
+
(average_value,
|
74
|
+
max_value,
|
75
|
+
min_value);
|
76
|
+
END_TYPE;
|
77
|
+
|
78
|
+
ENTITY a3m_data_quality_criteria_representation
|
79
|
+
SUBTYPE OF (data_quality_criteria_representation);
|
80
|
+
WHERE
|
81
|
+
WR1: SIZEOF( QUERY( q <* SELF\representation.items|
|
82
|
+
'ANNOTATED_3D_MODEL_DATA_QUALITY_CRITERIA_SCHEMA.' +
|
83
|
+
'A3M_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0;
|
84
|
+
END_ENTITY;
|
85
|
+
|
86
|
+
ENTITY a3m_data_quality_criterion
|
87
|
+
ABSTRACT SUPERTYPE
|
88
|
+
SUBTYPE OF(data_quality_criterion, data_quality_measurement_requirement);
|
89
|
+
assessment_specification : shape_data_quality_assessment_specification_select;
|
90
|
+
measured_data_type : a3m_data_quality_measured_data_type_name;
|
91
|
+
inspected_elements_types: LIST[1:?] OF a3m_data_quality_inspected_element_type_name;
|
92
|
+
accuracy_types : LIST [0:?] OF a3m_data_quality_accuracy_type_name;
|
93
|
+
location_of_extreme_value_types: LIST[0:?] OF a3m_data_quality_type_name_for_location_of_extreme_value;
|
94
|
+
END_ENTITY;
|
95
|
+
|
96
|
+
ENTITY a3m_data_quality_criterion_specific_applied_value
|
97
|
+
ABSTRACT SUPERTYPE
|
98
|
+
SUBTYPE OF(representation_item);
|
99
|
+
criterion_to_assign_the_value: a3m_data_quality_criterion;
|
100
|
+
applied_value : measure_value;
|
101
|
+
END_ENTITY;
|
102
|
+
|
103
|
+
ENTITY a3m_data_quality_target_accuracy_association;
|
104
|
+
id : identifier;
|
105
|
+
name : label;
|
106
|
+
description : OPTIONAL text;
|
107
|
+
accuracy_specification : shape_measurement_accuracy;
|
108
|
+
target_to_associate : a3m_accuracy_associated_target_select;
|
109
|
+
END_ENTITY;
|
110
|
+
|
111
|
+
ENTITY a3m_detailed_report_request
|
112
|
+
SUBTYPE OF(detailed_report_request_with_number_of_data);
|
113
|
+
value_type_requested : summary_stats_value_type;
|
114
|
+
END_ENTITY;
|
115
|
+
|
116
|
+
ENTITY a3m_summary_report_request_with_representative_value
|
117
|
+
SUBTYPE OF(summary_report_request);
|
118
|
+
value_type_requested : summary_stats_value_type;
|
119
|
+
END_ENTITY;
|
120
|
+
|
121
|
+
END_SCHEMA;
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,11 @@ require "vcr"
|
|
3
3
|
VCR.configure do |config|
|
4
4
|
config.cassette_library_dir = "spec/vcr_cassettes"
|
5
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
|
+
}
|
6
11
|
end
|
7
12
|
|
8
13
|
require "simplecov"
|
@@ -135,7 +140,25 @@ HDR
|
|
135
140
|
|
136
141
|
BLANK_HDR = <<~"HDR".freeze
|
137
142
|
<?xml version="1.0" encoding="UTF-8"?>
|
138
|
-
<standard-document xmlns="https://www.metanorma.org/ns/standoc">
|
143
|
+
<standard-document xmlns="https://www.metanorma.org/ns/standoc" version="#{Metanorma::Standoc::VERSION}" type="semantic">
|
144
|
+
<bibdata type="standard">
|
145
|
+
<title language="en" format="text/plain">Document title</title>
|
146
|
+
<language>en</language>
|
147
|
+
<script>Latn</script>
|
148
|
+
<status><stage>published</stage></status>
|
149
|
+
<copyright>
|
150
|
+
<from>#{Time.new.year}</from>
|
151
|
+
</copyright>
|
152
|
+
<ext>
|
153
|
+
<doctype>article</doctype>
|
154
|
+
</ext>
|
155
|
+
</bibdata>
|
156
|
+
HDR
|
157
|
+
|
158
|
+
BLANK_METANORMA_HDR = <<~"HDR".freeze
|
159
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
160
|
+
<?xml version="1.0" encoding="UTF-8"?><html><body>
|
161
|
+
<standard-document xmlns="https://www.metanorma.org/ns/standoc" version="#{Metanorma::Standoc::VERSION}" type="semantic">
|
139
162
|
<bibdata type="standard">
|
140
163
|
<title language="en" format="text/plain">Document title</title>
|
141
164
|
<language>en</language>
|
@@ -248,3 +271,13 @@ def mock_open_uri(code)
|
|
248
271
|
File.read file, encoding: "utf-8"
|
249
272
|
end.at_least :once
|
250
273
|
end
|
274
|
+
|
275
|
+
def metanorma_process(input)
|
276
|
+
Metanorma::Input::Asciidoc
|
277
|
+
.new
|
278
|
+
.process(input, "test.adoc", :standoc)
|
279
|
+
end
|
280
|
+
|
281
|
+
def xml_string_conent(xml)
|
282
|
+
strip_guid(Nokogiri::HTML(xml).to_s)
|
283
|
+
end
|
@@ -17,7 +17,8 @@ RSpec.shared_examples "structured data 2 text preprocessor" do
|
|
17
17
|
[{ "name" => "spaghetti",
|
18
18
|
"desc" => "wheat noodles of 9mm diameter",
|
19
19
|
"symbol" => "SPAG",
|
20
|
-
"symbol_def" =>
|
20
|
+
"symbol_def" =>
|
21
|
+
"the situation is message like spaghetti at a kid's meal" }]
|
21
22
|
end
|
22
23
|
let(:input) do
|
23
24
|
<<~TEXT
|
@@ -449,8 +450,10 @@ RSpec.shared_examples "structured data 2 text preprocessor" do
|
|
449
450
|
"target_script" => "Latn",
|
450
451
|
"system" =>
|
451
452
|
{ "id" => "2002",
|
452
|
-
"specification" =>
|
453
|
-
|
453
|
+
"specification" =>
|
454
|
+
"Academica Sinica -- Chinese Tongyong Pinyin (2002)" },
|
455
|
+
"notes" =>
|
456
|
+
"NOTE: OGC 11-122r1 code `zho_Hani2Latn_AcadSin_2002`" } } }
|
454
457
|
end
|
455
458
|
let(:input) do
|
456
459
|
<<~TEXT
|
@@ -579,5 +582,200 @@ RSpec.shared_examples "structured data 2 text preprocessor" do
|
|
579
582
|
).to(be_equivalent_to(xmlpp(output)))
|
580
583
|
end
|
581
584
|
end
|
585
|
+
|
586
|
+
context "Date time objects support" do
|
587
|
+
let(:example_content) do
|
588
|
+
{
|
589
|
+
"date" => Date.parse("1889-09-28"),
|
590
|
+
"time" => Time.gm(2020, 10, 15, 5, 34),
|
591
|
+
}
|
592
|
+
end
|
593
|
+
let(:input) do
|
594
|
+
<<~TEXT
|
595
|
+
= Document title
|
596
|
+
Author
|
597
|
+
:docfile: test.adoc
|
598
|
+
:nodoc:
|
599
|
+
:novalid:
|
600
|
+
:no-isobib:
|
601
|
+
:imagesdir: spec/assets
|
602
|
+
|
603
|
+
[#{extention}2text,#{example_file},my_context]
|
604
|
+
----
|
605
|
+
{{my_context.time}}
|
606
|
+
|
607
|
+
{{my_context.date}}
|
608
|
+
----
|
609
|
+
TEXT
|
610
|
+
end
|
611
|
+
let(:output) do
|
612
|
+
<<~TEXT
|
613
|
+
#{BLANK_HDR}
|
614
|
+
<sections>
|
615
|
+
<p id='_'>1889-09-28</p>
|
616
|
+
<p id='_'>2020-10-15 05:34:00 UTC</p>
|
617
|
+
</sections>
|
618
|
+
</standard-document>
|
619
|
+
TEXT
|
620
|
+
end
|
621
|
+
|
622
|
+
it "renders liquid markup" do
|
623
|
+
expect(
|
624
|
+
xmlpp(
|
625
|
+
strip_guid(
|
626
|
+
Asciidoctor.convert(input,
|
627
|
+
backend: :standoc,
|
628
|
+
header_footer: true)
|
629
|
+
)
|
630
|
+
)
|
631
|
+
).to(be_equivalent_to(xmlpp(output)))
|
632
|
+
end
|
633
|
+
end
|
634
|
+
|
635
|
+
context "Nested files support" do
|
636
|
+
let(:example_content) do
|
637
|
+
{
|
638
|
+
"date" => Date.parse("1889-09-28"),
|
639
|
+
"time" => Time.gm(2020, 10, 15, 5, 34),
|
640
|
+
}
|
641
|
+
end
|
642
|
+
let(:parent_file) { "parent_file.#{extention}" }
|
643
|
+
let(:parent_file_content) { [nested_file, nested_file_2] }
|
644
|
+
let(:parent_file_2) { "parent_file_2.#{extention}" }
|
645
|
+
let(:parent_file_2_content) { ["name", "description"] }
|
646
|
+
let(:parent_file_3) { "parent_file_3.#{extention}" }
|
647
|
+
let(:parent_file_3_content) { ["one", "two"] }
|
648
|
+
let(:nested_file) { "nested_file.#{extention}" }
|
649
|
+
let(:nested_file_content) do
|
650
|
+
{
|
651
|
+
"name" => "nested file-main",
|
652
|
+
"description" => "nested description-main",
|
653
|
+
"one" => "nested one-main",
|
654
|
+
"two" => "nested two-main",
|
655
|
+
}
|
656
|
+
end
|
657
|
+
let(:nested_file_2) { "nested_file_2.#{extention}" }
|
658
|
+
let(:nested_file_2_content) do
|
659
|
+
{
|
660
|
+
"name" => "nested2 name-main",
|
661
|
+
"description" => "nested2 description-main",
|
662
|
+
"one" => "nested2 one-main",
|
663
|
+
"two" => "nested2 two-main",
|
664
|
+
}
|
665
|
+
end
|
666
|
+
let(:input) do
|
667
|
+
<<~TEXT
|
668
|
+
= Document title
|
669
|
+
Author
|
670
|
+
:docfile: test.adoc
|
671
|
+
:nodoc:
|
672
|
+
:novalid:
|
673
|
+
:no-isobib:
|
674
|
+
:imagesdir: spec/assets
|
675
|
+
|
676
|
+
[#{extention}2text,#{parent_file},paths]
|
677
|
+
----
|
678
|
+
{% for path in paths %}
|
679
|
+
|
680
|
+
[#{extention}2text,#{parent_file_2},attribute_names]
|
681
|
+
---
|
682
|
+
{% for name in attribute_names %}
|
683
|
+
|
684
|
+
[#{extention}2text,{{ path }},data]
|
685
|
+
--
|
686
|
+
|
687
|
+
== {{ data[name] | split: "-" | last }}: {{ data[name] }}
|
688
|
+
|
689
|
+
--
|
690
|
+
|
691
|
+
{% endfor %}
|
692
|
+
---
|
693
|
+
|
694
|
+
[#{extention}2text,#{parent_file_3},attribute_names]
|
695
|
+
---
|
696
|
+
{% for name in attribute_names %}
|
697
|
+
|
698
|
+
[#{extention}2text,{{ path }},data]
|
699
|
+
--
|
700
|
+
|
701
|
+
== {{ data[name] }}
|
702
|
+
|
703
|
+
--
|
704
|
+
|
705
|
+
{% endfor %}
|
706
|
+
---
|
707
|
+
|
708
|
+
{% endfor %}
|
709
|
+
----
|
710
|
+
TEXT
|
711
|
+
end
|
712
|
+
let(:output) do
|
713
|
+
<<~TEXT
|
714
|
+
#{BLANK_HDR}
|
715
|
+
<sections>
|
716
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
717
|
+
<title>main: nested file-main</title>
|
718
|
+
</clause>
|
719
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
720
|
+
<title>main: nested description-main</title>
|
721
|
+
</clause>
|
722
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
723
|
+
<title>nested one-main</title>
|
724
|
+
</clause>
|
725
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
726
|
+
<title>nested two-main</title>
|
727
|
+
</clause>
|
728
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
729
|
+
<title>main: nested2 name-main</title>
|
730
|
+
</clause>
|
731
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
732
|
+
<title>main: nested2 description-main</title>
|
733
|
+
</clause>
|
734
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
735
|
+
<title>nested2 one-main</title>
|
736
|
+
</clause>
|
737
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
738
|
+
<title>nested2 two-main</title>
|
739
|
+
</clause>
|
740
|
+
</sections>
|
741
|
+
</standard-document>
|
742
|
+
TEXT
|
743
|
+
end
|
744
|
+
let(:file_list) do
|
745
|
+
{
|
746
|
+
parent_file => parent_file_content,
|
747
|
+
parent_file_2 => parent_file_2_content,
|
748
|
+
parent_file_3 => parent_file_3_content,
|
749
|
+
nested_file => nested_file_content,
|
750
|
+
nested_file_2 => nested_file_2_content,
|
751
|
+
}
|
752
|
+
end
|
753
|
+
|
754
|
+
before do
|
755
|
+
file_list.each_pair do |file, content|
|
756
|
+
File.open(file, "w") do |n|
|
757
|
+
n.puts(transform_to_type(content))
|
758
|
+
end
|
759
|
+
end
|
760
|
+
end
|
761
|
+
|
762
|
+
after do
|
763
|
+
file_list.keys.each do |file|
|
764
|
+
FileUtils.rm_rf(file)
|
765
|
+
end
|
766
|
+
end
|
767
|
+
|
768
|
+
it "renders liquid markup" do
|
769
|
+
expect(
|
770
|
+
xmlpp(
|
771
|
+
strip_guid(
|
772
|
+
Asciidoctor.convert(input,
|
773
|
+
backend: :standoc,
|
774
|
+
header_footer: true)
|
775
|
+
)
|
776
|
+
)
|
777
|
+
).to(be_equivalent_to(xmlpp(output)))
|
778
|
+
end
|
779
|
+
end
|
582
780
|
end
|
583
781
|
end
|