metanorma-iso 2.0.8 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/html2doc/lists.rb +37 -0
  3. data/lib/isodoc/iso/base_convert.rb +1 -1
  4. data/lib/isodoc/iso/html/html_iso_titlepage.html +5 -0
  5. data/lib/isodoc/iso/html/isodoc-dis.css +304 -242
  6. data/lib/isodoc/iso/html/isodoc-dis.scss +379 -260
  7. data/lib/isodoc/iso/html/word_iso_intro-dis.html +7 -0
  8. data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +4 -3
  9. data/lib/isodoc/iso/html/word_iso_titlepage.html +10 -4
  10. data/lib/isodoc/iso/html/wordstyle-dis.css +168 -48
  11. data/lib/isodoc/iso/html/wordstyle-dis.scss +158 -43
  12. data/lib/isodoc/iso/html_convert.rb +2 -2
  13. data/lib/isodoc/iso/i18n-en.yaml +1 -0
  14. data/lib/isodoc/iso/i18n-fr.yaml +1 -0
  15. data/lib/isodoc/iso/i18n-ru.yaml +1 -0
  16. data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -0
  17. data/lib/isodoc/iso/init.rb +17 -1
  18. data/lib/isodoc/iso/iso.amendment.xsl +1697 -426
  19. data/lib/isodoc/iso/iso.international-standard.xsl +1697 -426
  20. data/lib/isodoc/iso/metadata.rb +13 -19
  21. data/lib/isodoc/iso/presentation_inline.rb +90 -0
  22. data/lib/isodoc/iso/presentation_xml_convert.rb +41 -100
  23. data/lib/isodoc/iso/presentation_xref.rb +126 -0
  24. data/lib/isodoc/iso/sections.rb +2 -2
  25. data/lib/isodoc/iso/word_cleanup.rb +16 -2
  26. data/lib/isodoc/iso/word_convert.rb +29 -12
  27. data/lib/isodoc/iso/word_dis_convert.rb +183 -0
  28. data/lib/isodoc/iso/xref.rb +46 -25
  29. data/lib/metanorma/iso/biblio.rng +37 -8
  30. data/lib/metanorma/iso/boilerplate-fr.xml +1 -1
  31. data/lib/metanorma/iso/boilerplate-ru.xml +1 -3
  32. data/lib/metanorma/iso/boilerplate.xml +1 -3
  33. data/lib/metanorma/iso/cleanup.rb +2 -1
  34. data/lib/metanorma/iso/isodoc.rng +56 -0
  35. data/lib/metanorma/iso/version.rb +1 -1
  36. data/lib/metanorma-iso.rb +1 -0
  37. data/lib/relaton/render/config.yml +4 -0
  38. data/lib/relaton/render/general.rb +13 -0
  39. data/metanorma-iso.gemspec +1 -1
  40. data/spec/isodoc/amd_spec.rb +31 -30
  41. data/spec/isodoc/blocks_spec.rb +286 -179
  42. data/spec/isodoc/i18n_spec.rb +187 -21
  43. data/spec/isodoc/inline_spec.rb +35 -42
  44. data/spec/isodoc/iso_spec.rb +1 -1
  45. data/spec/isodoc/metadata_spec.rb +17 -17
  46. data/spec/isodoc/postproc_spec.rb +28 -3
  47. data/spec/isodoc/ref_spec.rb +66 -69
  48. data/spec/isodoc/section_spec.rb +78 -76
  49. data/spec/isodoc/table_spec.rb +2 -2
  50. data/spec/isodoc/terms_spec.rb +2 -2
  51. data/spec/isodoc/word_dis_spec.rb +760 -0
  52. data/spec/isodoc/xref_spec.rb +51 -51
  53. data/spec/metanorma/base_spec.rb +10 -10
  54. data/spec/spec_helper.rb +11 -1
  55. data/spec/vcr_cassettes/withdrawn_iso.yml +26 -26
  56. metadata +11 -5
  57. 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'>&#xA0;</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
@@ -10,36 +10,48 @@ module IsoDoc
10
10
  else
11
11
  initial_anchor_names1(doc)
12
12
  end
13
- introduction_names(doc.at(ns("//introduction")))
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
- doc.xpath(ns("//preface/*")).each do |c|
18
- c.element? and preface_names(c)
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
- sequential_asset_names(doc.xpath(ns("//preface/*")))
21
- doc.xpath(ns("//sections/clause")).each do |c|
22
- c.element? and preface_names(c)
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
- doc.xpath(ns("//preface/*")).each { |c| c.element? and preface_names(c) }
31
- # potentially overridden in middle_section_asset_names()
32
- sequential_asset_names(doc.xpath(ns("//preface/*")))
33
- n = Counter.new
34
- n = section_names(doc.at(ns("//clause[@type = 'scope']")), n, 1)
35
- n = section_names(doc.at(ns(@klass.norm_ref_xpath)), n, 1)
36
- doc.xpath(ns("//sections/clause[not(@type = 'scope')] | "\
37
- "//sections/terms | //sections/definitions")).each do |c|
38
- n = section_names(c, n, 1)
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
- docxml.xpath(ns("//indexsect")).each { |b| preface_names(b) }
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
- <optional>
855
- <attribute name="uri">
856
- <data type="anyURI"/>
857
- </attribute>
858
- </optional>
859
- <optional>
860
- <attribute name="region"/>
861
- </optional>
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
- <p id="boilerplate-year">&#xa9; {{ agency }} {{ docyear }}</p>
4
+ <p id="boilerplate-year">&#xa9; <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
- <p id="boilerplate-year">
5
- &#xa9; {{ agency }} {{ docyear }}
6
- </p>
4
+ <p id="boilerplate-year">&#xa9; <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
- <p id="boilerplate-year">
5
- &#xa9; {{ agency }} {{ docyear }}
6
- </p>
4
+ <p id="boilerplate-year">&#xa9; <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>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.0.8".freeze
3
+ VERSION = "2.1.1".freeze
4
4
  end
5
5
  end
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}}]. "
@@ -0,0 +1,13 @@
1
+ require "relaton-render"
2
+
3
+ module Relaton
4
+ module Render
5
+ module Iso
6
+ class General < ::Relaton::Render::IsoDoc::General
7
+ def config_loc
8
+ YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -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.0.0"
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"