metanorma-iso 2.0.8 → 2.1.1
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/lib/html2doc/lists.rb +37 -0
- data/lib/isodoc/iso/base_convert.rb +1 -1
- data/lib/isodoc/iso/html/html_iso_titlepage.html +5 -0
- data/lib/isodoc/iso/html/isodoc-dis.css +304 -242
- data/lib/isodoc/iso/html/isodoc-dis.scss +379 -260
- data/lib/isodoc/iso/html/word_iso_intro-dis.html +7 -0
- data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +4 -3
- data/lib/isodoc/iso/html/word_iso_titlepage.html +10 -4
- data/lib/isodoc/iso/html/wordstyle-dis.css +168 -48
- data/lib/isodoc/iso/html/wordstyle-dis.scss +158 -43
- data/lib/isodoc/iso/html_convert.rb +2 -2
- data/lib/isodoc/iso/i18n-en.yaml +1 -0
- data/lib/isodoc/iso/i18n-fr.yaml +1 -0
- data/lib/isodoc/iso/i18n-ru.yaml +1 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc/iso/init.rb +17 -1
- data/lib/isodoc/iso/iso.amendment.xsl +1697 -426
- data/lib/isodoc/iso/iso.international-standard.xsl +1697 -426
- data/lib/isodoc/iso/metadata.rb +13 -19
- data/lib/isodoc/iso/presentation_inline.rb +90 -0
- data/lib/isodoc/iso/presentation_xml_convert.rb +41 -100
- data/lib/isodoc/iso/presentation_xref.rb +126 -0
- data/lib/isodoc/iso/sections.rb +2 -2
- data/lib/isodoc/iso/word_cleanup.rb +16 -2
- data/lib/isodoc/iso/word_convert.rb +29 -12
- data/lib/isodoc/iso/word_dis_convert.rb +183 -0
- data/lib/isodoc/iso/xref.rb +46 -25
- data/lib/metanorma/iso/biblio.rng +37 -8
- data/lib/metanorma/iso/boilerplate-fr.xml +1 -1
- data/lib/metanorma/iso/boilerplate-ru.xml +1 -3
- data/lib/metanorma/iso/boilerplate.xml +1 -3
- data/lib/metanorma/iso/cleanup.rb +2 -1
- data/lib/metanorma/iso/isodoc.rng +56 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/lib/metanorma-iso.rb +1 -0
- data/lib/relaton/render/config.yml +4 -0
- data/lib/relaton/render/general.rb +13 -0
- data/metanorma-iso.gemspec +1 -1
- data/spec/isodoc/amd_spec.rb +31 -30
- data/spec/isodoc/blocks_spec.rb +286 -179
- data/spec/isodoc/i18n_spec.rb +187 -21
- data/spec/isodoc/inline_spec.rb +35 -42
- data/spec/isodoc/iso_spec.rb +1 -1
- data/spec/isodoc/metadata_spec.rb +17 -17
- data/spec/isodoc/postproc_spec.rb +28 -3
- data/spec/isodoc/ref_spec.rb +66 -69
- data/spec/isodoc/section_spec.rb +78 -76
- data/spec/isodoc/table_spec.rb +2 -2
- data/spec/isodoc/terms_spec.rb +2 -2
- data/spec/isodoc/word_dis_spec.rb +760 -0
- data/spec/isodoc/xref_spec.rb +51 -51
- data/spec/metanorma/base_spec.rb +10 -10
- data/spec/spec_helper.rb +11 -1
- data/spec/vcr_cassettes/withdrawn_iso.yml +26 -26
- metadata +11 -5
- data/spec/vcr_cassettes/docrels.yml +0 -385
@@ -0,0 +1,183 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module Iso
|
3
|
+
class WordDISConvert < WordConvert
|
4
|
+
def default_file_locations(_options)
|
5
|
+
{
|
6
|
+
wordstylesheet: html_doc_path("wordstyle-dis.scss"),
|
7
|
+
standardstylesheet: html_doc_path("isodoc-dis.scss"),
|
8
|
+
header: html_doc_path("header-dis.html"),
|
9
|
+
wordcoverpage: html_doc_path("word_iso_titlepage-dis.html"),
|
10
|
+
wordintropage: html_doc_path("word_iso_intro-dis.html"),
|
11
|
+
ulstyle: "l3",
|
12
|
+
olstyle: "l2",
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(options)
|
17
|
+
@libdir ||= File.dirname(__FILE__) # rubocop:disable Lint/DisjunctiveAssignmentInConstructor
|
18
|
+
options.merge!(default_file_locations(options))
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
22
|
+
def init_dis; end
|
23
|
+
|
24
|
+
def style_cleanup(docxml)
|
25
|
+
super
|
26
|
+
dis_styles(docxml)
|
27
|
+
end
|
28
|
+
|
29
|
+
STYLESMAP = {
|
30
|
+
AltTerms: "AdmittedTerm",
|
31
|
+
TableFootnote: "Tablefootnote",
|
32
|
+
formula: "Formula",
|
33
|
+
note: "Note",
|
34
|
+
example: "Example",
|
35
|
+
admonition: "Admonition",
|
36
|
+
admonitiontitle: "AdmonitionTitle",
|
37
|
+
sourcetitle: "SourceTitle",
|
38
|
+
tabletitle: "TableTitle",
|
39
|
+
titlepagesbhead: "TablePageSubhead",
|
40
|
+
NormRef: "RefNorm",
|
41
|
+
Biblio: "BiblioEntry",
|
42
|
+
MsoNormal: "MsoBodyText",
|
43
|
+
FigureTitle: "Figuretitle",
|
44
|
+
zzwarning: "zzWarning",
|
45
|
+
zzwarninghdr: "zzWarningHdr",
|
46
|
+
quoteattribution: "QuoteAttribution",
|
47
|
+
}.freeze
|
48
|
+
|
49
|
+
def dis_styles(docxml)
|
50
|
+
STYLESMAP.each do |k, v|
|
51
|
+
docxml.xpath("//*[@class = '#{k}']").each { |s| s["class"] = v }
|
52
|
+
end
|
53
|
+
docxml.xpath("//h1[@class = 'ForewordTitle' or @class = 'IntroTitle']")
|
54
|
+
.each { |h| h.name = "p" }
|
55
|
+
dis_styles1(docxml)
|
56
|
+
docxml.xpath("//p[not(@class)]").each { |p| p["class"] = "MsoBodyText" }
|
57
|
+
end
|
58
|
+
|
59
|
+
def dis_styles1(docxml)
|
60
|
+
code_style(docxml)
|
61
|
+
figure_style(docxml)
|
62
|
+
example_style(docxml)
|
63
|
+
end
|
64
|
+
|
65
|
+
def example_style(docxml)
|
66
|
+
docxml.xpath("//div[@class = 'Example']").each do |d|
|
67
|
+
d.xpath("./p").each_with_index do |p, i|
|
68
|
+
next if p["class"] && p["class"] != "Example"
|
69
|
+
|
70
|
+
p["class"] = (i.zero? ? "Example" : "Examplecontinued")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def figure_name_attrs(_node)
|
76
|
+
{ class: "FigureTitle", style: "text-align:center;" }
|
77
|
+
end
|
78
|
+
|
79
|
+
def table_title_attrs(_node)
|
80
|
+
{ class: "Tabletitle", style: "text-align:center;" }
|
81
|
+
end
|
82
|
+
|
83
|
+
def word_annex_cleanup1(docxml, lvl)
|
84
|
+
docxml.xpath("//h#{lvl}[ancestor::*[@class = 'Section3']]").each do |h2|
|
85
|
+
h2.name = "p"
|
86
|
+
h2["class"] = "a#{lvl}"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def span_parse(node, out)
|
91
|
+
out.span **{ class: node["class"] } do |x|
|
92
|
+
node.children.each { |n| parse(n, x) }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def word_toc_preface(level)
|
97
|
+
<<~TOC.freeze
|
98
|
+
<span lang="EN-GB"><span
|
99
|
+
style='mso-element:field-begin'></span><span
|
100
|
+
style='mso-spacerun:yes'> </span>TOC \\o "2-#{level}" \\h \\z \\t
|
101
|
+
"Heading 1;1;ANNEX;1;Biblio Title;1;Foreword Title;1;Intro Title;1;ANNEXN;1;ANNEXZ;1;na2;1;na3;1;na4;1;na5;1;na6;1;Title;1;Base_Heading;1;Box-title;1;Front Head;1;Index Head;1;AMEND Terms Heading;1;AMEND Heading 1 Unnumbered;1"
|
102
|
+
<span style='mso-element:field-separator'></span></span>
|
103
|
+
TOC
|
104
|
+
end
|
105
|
+
|
106
|
+
def render_identifier(ident)
|
107
|
+
ret = super
|
108
|
+
ret[:sdo] = std_docid_semantic(ret[:sdo])
|
109
|
+
ret
|
110
|
+
end
|
111
|
+
|
112
|
+
FIGURE_NESTED_STYLES =
|
113
|
+
{ Note: "Figurenote", example: "Figureexample" }.freeze
|
114
|
+
|
115
|
+
def figure_style(docxml)
|
116
|
+
docxml.xpath("//div[@class = 'figure']").each do |f|
|
117
|
+
FIGURE_NESTED_STYLES.each do |k, v|
|
118
|
+
f.xpath(".//*[@class = '#{k}']").each { |n| n["class"] = v }
|
119
|
+
end
|
120
|
+
f.xpath("./img").each do |i|
|
121
|
+
i.replace("<p class='FigureGraphic'>#{i.to_xml}</p>")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def code_style(doc)
|
127
|
+
span_style((doc.xpath("//tt//b") - doc.xpath("//tt//i//b")),
|
128
|
+
"ISOCodebold")
|
129
|
+
span_style((doc.xpath("//tt//i") - doc.xpath("//tt//b//i")),
|
130
|
+
"ISOCodeitalic")
|
131
|
+
span_style((doc.xpath("//b//tt") - doc.xpath("//b//i//tt")),
|
132
|
+
"ISOCodebold")
|
133
|
+
span_style((doc.xpath("//i//tt") - doc.xpath("//i//b//tt")),
|
134
|
+
"ISOCodeitalic")
|
135
|
+
span_style(doc.xpath("//tt"), "ISOCode")
|
136
|
+
end
|
137
|
+
|
138
|
+
def span_style(xpath, style)
|
139
|
+
xpath.each do |elem|
|
140
|
+
elem.name = "span"
|
141
|
+
elem["class"] = style
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
def make_tr_attr(cell, row, totalrows, header)
|
146
|
+
super.merge(header: header)
|
147
|
+
end
|
148
|
+
|
149
|
+
def word_cleanup(docxml)
|
150
|
+
word_table_cell_para(docxml)
|
151
|
+
super
|
152
|
+
end
|
153
|
+
|
154
|
+
def word_table_cell_para(docxml)
|
155
|
+
docxml.xpath("//td | //th").each do |t|
|
156
|
+
s = t["header"] == "true" ? "Tableheader" : "Tablebody"
|
157
|
+
t.delete("header")
|
158
|
+
if t.at("./p |./div")
|
159
|
+
t.xpath("./p | ./div").each { |p| p["class"] = s }
|
160
|
+
else
|
161
|
+
t.children = "<div class='#{s}'>#{t.children.to_xml}</div>"
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def toWord(result, filename, dir, header)
|
167
|
+
result = from_xhtml(word_cleanup(to_xhtml(result)))
|
168
|
+
.gsub(/-DOUBLE_HYPHEN_ESCAPE-/, "--")
|
169
|
+
@wordstylesheet = wordstylesheet_update
|
170
|
+
::Html2Doc::IsoDIS.new(
|
171
|
+
filename: filename,
|
172
|
+
imagedir: @localdir,
|
173
|
+
stylesheet: @wordstylesheet&.path,
|
174
|
+
header_file: header&.path, dir: dir,
|
175
|
+
asciimathdelims: [@openmathdelim, @closemathdelim],
|
176
|
+
liststyles: { ul: @ulstyle, ol: @olstyle }
|
177
|
+
).process(result)
|
178
|
+
header&.unlink
|
179
|
+
@wordstylesheet.unlink if @wordstylesheet.is_a?(Tempfile)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
data/lib/isodoc/iso/xref.rb
CHANGED
@@ -10,36 +10,48 @@ module IsoDoc
|
|
10
10
|
else
|
11
11
|
initial_anchor_names1(doc)
|
12
12
|
end
|
13
|
-
|
13
|
+
if @parse_settings.empty? || @parse_settings[:clauses]
|
14
|
+
introduction_names(doc.at(ns("//introduction")))
|
15
|
+
end
|
14
16
|
end
|
15
17
|
|
16
18
|
def initial_anchor_names_amd(doc)
|
17
|
-
|
18
|
-
|
19
|
+
if @parse_settings.empty? || @parse_settings[:clauses]
|
20
|
+
doc.xpath(ns("//preface/*")).each do |c|
|
21
|
+
c.element? and preface_names(c)
|
22
|
+
end
|
23
|
+
doc.xpath(ns("//sections/clause")).each do |c|
|
24
|
+
c.element? and preface_names(c)
|
25
|
+
end
|
19
26
|
end
|
20
|
-
|
21
|
-
|
22
|
-
|
27
|
+
if @parse_settings.empty?
|
28
|
+
sequential_asset_names(doc.xpath(ns("//preface/*")))
|
29
|
+
middle_section_asset_names(doc)
|
30
|
+
termnote_anchor_names(doc)
|
31
|
+
termexample_anchor_names(doc)
|
23
32
|
end
|
24
|
-
middle_section_asset_names(doc)
|
25
|
-
termnote_anchor_names(doc)
|
26
|
-
termexample_anchor_names(doc)
|
27
33
|
end
|
28
34
|
|
29
35
|
def initial_anchor_names1(doc)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
n = section_names(
|
36
|
+
if @parse_settings.empty? || @parse_settings[:clauses]
|
37
|
+
doc.xpath(ns("//preface/*")).each do |c|
|
38
|
+
c.element? and preface_names(c)
|
39
|
+
end
|
40
|
+
# potentially overridden in middle_section_asset_names()
|
41
|
+
sequential_asset_names(doc.xpath(ns("//preface/*")))
|
42
|
+
n = Counter.new
|
43
|
+
n = section_names(doc.at(ns("//clause[@type = 'scope']")), n, 1)
|
44
|
+
n = section_names(doc.at(ns(@klass.norm_ref_xpath)), n, 1)
|
45
|
+
doc.xpath(ns("//sections/clause[not(@type = 'scope')] | "\
|
46
|
+
"//sections/terms | //sections/definitions")).each do |c|
|
47
|
+
n = section_names(c, n, 1)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
if @parse_settings.empty?
|
51
|
+
middle_section_asset_names(doc)
|
52
|
+
termnote_anchor_names(doc)
|
53
|
+
termexample_anchor_names(doc)
|
39
54
|
end
|
40
|
-
middle_section_asset_names(doc)
|
41
|
-
termnote_anchor_names(doc)
|
42
|
-
termexample_anchor_names(doc)
|
43
55
|
end
|
44
56
|
|
45
57
|
# we can reference 0-number clauses in introduction
|
@@ -68,6 +80,7 @@ module IsoDoc
|
|
68
80
|
@anchors[c["id"]] = anchor_struct(i.print, nil, @labels["appendix"],
|
69
81
|
"clause")
|
70
82
|
@anchors[c["id"]][:level] = 2
|
83
|
+
@anchors[c["id"]][:subtype] = "annex"
|
71
84
|
@anchors[c["id"]][:container] = clause["id"]
|
72
85
|
j = Counter.new
|
73
86
|
c.xpath(ns("./clause | ./references")).each do |c1|
|
@@ -78,10 +91,11 @@ module IsoDoc
|
|
78
91
|
end
|
79
92
|
end
|
80
93
|
|
94
|
+
# subclauses are not prefixed with "Clause"
|
95
|
+
# retaining sybtupe for the semantics
|
81
96
|
def section_names1(clause, num, level)
|
82
97
|
@anchors[clause["id"]] =
|
83
|
-
{ label: num, level: level, xref: num }
|
84
|
-
# subclauses are not prefixed with "Clause"
|
98
|
+
{ label: num, level: level, xref: num, subtype: "clause" }
|
85
99
|
i = Counter.new
|
86
100
|
clause.xpath(ns("./clause | ./terms | ./term | ./definitions | "\
|
87
101
|
"./references"))
|
@@ -92,7 +106,8 @@ module IsoDoc
|
|
92
106
|
end
|
93
107
|
|
94
108
|
def annex_names1(clause, num, level)
|
95
|
-
@anchors[clause["id"]] = { label: num, xref: num, level: level
|
109
|
+
@anchors[clause["id"]] = { label: num, xref: num, level: level,
|
110
|
+
subtype: "annex" }
|
96
111
|
i = Counter.new
|
97
112
|
clause.xpath(ns("./clause | ./references")).each do |c|
|
98
113
|
i.increment(c)
|
@@ -166,7 +181,13 @@ module IsoDoc
|
|
166
181
|
|
167
182
|
def back_anchor_names(docxml)
|
168
183
|
super
|
169
|
-
|
184
|
+
if @parse_settings.empty? || @parse_settings[:clauses]
|
185
|
+
docxml.xpath(ns("//indexsect")).each { |b| preface_names(b) }
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
def annex_name_lbl(clause, num)
|
190
|
+
super.sub(%r{<br/>(.*)$}, "<br/><span class='obligation'>\\1</span>")
|
170
191
|
end
|
171
192
|
end
|
172
193
|
end
|
@@ -851,17 +851,46 @@
|
|
851
851
|
</define>
|
852
852
|
<define name="bplace">
|
853
853
|
<element name="place">
|
854
|
-
<
|
855
|
-
<
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
854
|
+
<choice>
|
855
|
+
<text/>
|
856
|
+
<group>
|
857
|
+
<ref name="bibliocity"/>
|
858
|
+
<zeroOrMore>
|
859
|
+
<ref name="biblioregion"/>
|
860
|
+
</zeroOrMore>
|
861
|
+
<zeroOrMore>
|
862
|
+
<ref name="bibliocountry"/>
|
863
|
+
</zeroOrMore>
|
864
|
+
</group>
|
865
|
+
</choice>
|
866
|
+
</element>
|
867
|
+
</define>
|
868
|
+
<define name="bibliocity">
|
869
|
+
<element name="city">
|
862
870
|
<text/>
|
863
871
|
</element>
|
864
872
|
</define>
|
873
|
+
<define name="biblioregion">
|
874
|
+
<element name="region">
|
875
|
+
<ref name="RegionType"/>
|
876
|
+
</element>
|
877
|
+
</define>
|
878
|
+
<define name="bibliocountry">
|
879
|
+
<element name="country">
|
880
|
+
<ref name="RegionType"/>
|
881
|
+
</element>
|
882
|
+
</define>
|
883
|
+
<define name="RegionType">
|
884
|
+
<optional>
|
885
|
+
<attribute name="iso"/>
|
886
|
+
</optional>
|
887
|
+
<optional>
|
888
|
+
<attribute name="recommended">
|
889
|
+
<data type="boolean"/>
|
890
|
+
</attribute>
|
891
|
+
</optional>
|
892
|
+
<text/>
|
893
|
+
</define>
|
865
894
|
<define name="bprice">
|
866
895
|
<element name="price">
|
867
896
|
<attribute name="currency"/>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<boilerplate>
|
2
2
|
<copyright-statement>
|
3
3
|
<clause>
|
4
|
-
|
4
|
+
<p id="boilerplate-year">© <span class="std_publisher">{{ agency }}</span> <span class="std_docNumber">{{ docyear }}</span></p>
|
5
5
|
|
6
6
|
<p id="boilerplate-message">
|
7
7
|
Droits de reproduction réservés. Sauf indication contraire, ou requise dans le cadre de sa mise en œuvre,
|
@@ -1,9 +1,7 @@
|
|
1
1
|
<boilerplate>
|
2
2
|
<copyright-statement>
|
3
3
|
<clause>
|
4
|
-
|
5
|
-
© {{ agency }} {{ docyear }}
|
6
|
-
</p>
|
4
|
+
<p id="boilerplate-year">© <span class="std_publisher">{{ agency }}</span> <span class="std_docNumber">{{ docyear }}</span></p>
|
7
5
|
|
8
6
|
<p id="boilerplate-message">
|
9
7
|
Все права защищены. Если иначе не определено или не требуется в контексте его реализации, никакая часть этой публикации не может быть воспроизведена или использована иначе в любой форме или каким-либо образом, электронным или механическим, включая фотокопирование, или публикацию в Интернете или интранете, без предварительного письменного разрешения. Разрешение может быть запрошено ISO по адресу, указанному ниже, или у органа — члена ISO страны запрашивающего.
|
@@ -1,9 +1,7 @@
|
|
1
1
|
<boilerplate>
|
2
2
|
<copyright-statement>
|
3
3
|
<clause>
|
4
|
-
|
5
|
-
© {{ agency }} {{ docyear }}
|
6
|
-
</p>
|
4
|
+
<p id="boilerplate-year">© <span class="std_publisher">{{ agency }}</span> <span class="std_docNumber">{{ docyear }}</span></p>
|
7
5
|
|
8
6
|
<p id="boilerplate-message">
|
9
7
|
All rights
|
@@ -40,7 +40,8 @@ module Metanorma
|
|
40
40
|
xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']"\
|
41
41
|
"/organization").each_with_object([]) do |x, prefix|
|
42
42
|
x1 = x.at("abbreviation")&.text || x.at("name")&.text
|
43
|
-
(x1 == "ISO" and prefix.unshift("ISO")) or prefix << x1
|
43
|
+
#(x1 == "ISO" and prefix.unshift("ISO")) or prefix << x1
|
44
|
+
prefix << x1
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
@@ -32,6 +32,43 @@
|
|
32
32
|
<ref name="DocumentType"/>
|
33
33
|
</element>
|
34
34
|
</define>
|
35
|
+
<define name="admonition">
|
36
|
+
<element name="admonition">
|
37
|
+
<attribute name="type">
|
38
|
+
<ref name="AdmonitionType"/>
|
39
|
+
</attribute>
|
40
|
+
<optional>
|
41
|
+
<attribute name="class"/>
|
42
|
+
</optional>
|
43
|
+
<attribute name="id">
|
44
|
+
<data type="ID"/>
|
45
|
+
</attribute>
|
46
|
+
<optional>
|
47
|
+
<attribute name="uri">
|
48
|
+
<data type="anyURI"/>
|
49
|
+
</attribute>
|
50
|
+
</optional>
|
51
|
+
<optional>
|
52
|
+
<attribute name="coverpage">
|
53
|
+
<data type="boolean"/>
|
54
|
+
</attribute>
|
55
|
+
</optional>
|
56
|
+
<optional>
|
57
|
+
<attribute name="notag">
|
58
|
+
<data type="boolean"/>
|
59
|
+
</attribute>
|
60
|
+
</optional>
|
61
|
+
<optional>
|
62
|
+
<ref name="tname"/>
|
63
|
+
</optional>
|
64
|
+
<zeroOrMore>
|
65
|
+
<ref name="paragraph-with-footnote"/>
|
66
|
+
</zeroOrMore>
|
67
|
+
<zeroOrMore>
|
68
|
+
<ref name="note"/>
|
69
|
+
</zeroOrMore>
|
70
|
+
</element>
|
71
|
+
</define>
|
35
72
|
<define name="index">
|
36
73
|
<element name="index">
|
37
74
|
<optional>
|
@@ -851,6 +888,16 @@
|
|
851
888
|
<ref name="MultilingualRenderingType"/>
|
852
889
|
</attribute>
|
853
890
|
</optional>
|
891
|
+
<optional>
|
892
|
+
<attribute name="coverpage">
|
893
|
+
<data type="boolean"/>
|
894
|
+
</attribute>
|
895
|
+
</optional>
|
896
|
+
<optional>
|
897
|
+
<attribute name="notag">
|
898
|
+
<data type="boolean"/>
|
899
|
+
</attribute>
|
900
|
+
</optional>
|
854
901
|
<oneOrMore>
|
855
902
|
<choice>
|
856
903
|
<ref name="paragraph"/>
|
@@ -1178,6 +1225,7 @@
|
|
1178
1225
|
<ref name="concept"/>
|
1179
1226
|
<ref name="add"/>
|
1180
1227
|
<ref name="del"/>
|
1228
|
+
<ref name="span"/>
|
1181
1229
|
</choice>
|
1182
1230
|
</define>
|
1183
1231
|
<define name="add">
|
@@ -1204,6 +1252,14 @@
|
|
1204
1252
|
</choice>
|
1205
1253
|
</element>
|
1206
1254
|
</define>
|
1255
|
+
<define name="span">
|
1256
|
+
<element name="span">
|
1257
|
+
<attribute name="class"/>
|
1258
|
+
<oneOrMore>
|
1259
|
+
<ref name="TextElement"/>
|
1260
|
+
</oneOrMore>
|
1261
|
+
</element>
|
1262
|
+
</define>
|
1207
1263
|
<define name="concept">
|
1208
1264
|
<element name="concept">
|
1209
1265
|
<optional>
|
data/lib/metanorma-iso.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative "isodoc/iso/pdf_convert"
|
|
7
7
|
require_relative "isodoc/iso/sts_convert"
|
8
8
|
require_relative "isodoc/iso/isosts_convert"
|
9
9
|
require_relative "isodoc/iso/presentation_xml_convert"
|
10
|
+
require_relative "html2doc/lists"
|
10
11
|
require "asciidoctor/extensions"
|
11
12
|
|
12
13
|
if defined? Metanorma
|
@@ -0,0 +1,4 @@
|
|
1
|
+
template:
|
2
|
+
# skip standardidentifier, it is inserted in front of formattedref within metanorma
|
3
|
+
standard: "<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}."
|
4
|
+
website: "{{ creatornames }} ({{ role }}) . <em><span_class='stddocTitle'>{{ title }}</span></em> [website]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{ place }}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. {{ standardidentifier | first }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
|
data/metanorma-iso.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
30
30
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
31
31
|
|
32
|
-
spec.add_dependency "metanorma-standoc", "~> 2.
|
32
|
+
spec.add_dependency "metanorma-standoc", "~> 2.1.0"
|
33
33
|
spec.add_dependency "mnconvert", "~> 1.14"
|
34
34
|
spec.add_dependency "ruby-jing"
|
35
35
|
spec.add_dependency "tokenizer", "~> 0.3.0"
|