metanorma-standoc 2.3.8 → 2.4.0

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: 00ae5b84e04807e4d13ce97c2be80f47fc46a0004c8a1630d59f041597627f9e
4
- data.tar.gz: 1e67f2c42a5b84081e44a6ad63b0cce70d980cc8478014de53355cf4b74e5e24
3
+ metadata.gz: 11179b51c3de0cefbd6cd55d2cd3e6945e0d72cb379ec9a32ed792b1239444fd
4
+ data.tar.gz: e3c6231ecd99e4f631da9173b1c89f10213428c331147b54efa1eccf8833a017
5
5
  SHA512:
6
- metadata.gz: 65608377bcc5b0b06e6895f6d9ed842c956def5cf77e28e25d4db3ae554b062f0e798afa2a964a18265396c22243d6aeebea98e913b4c269ddf09c04e3f06f92
7
- data.tar.gz: 01aff668829eb7d52cec2e94e9b9da8b06353b56847a615b543e6fa2cfefad4fe8e9a9cc0f72e266b74e4f7535671f23ed34b31da43b6cddffe14ba189165e4c
6
+ metadata.gz: d000c768270a37dacc417c3d29cab591a708bf7e7b47c51bbded56120c711c6bc82257335a44f34401cfb06d96dd8c64cb410d1664064534147fee3bf7525d85
7
+ data.tar.gz: 11799198a90c8b67a358365115cebf4594bfd1be0d58cbc193db94fa95096f98cbbd5974fb65f8b6dbc07349d6a76080591ed6703979d448ee768cd8e5f1ceae
@@ -125,6 +125,10 @@ a.FootnoteRef + a.FootnoteRef:before {
125
125
  content: ", ";
126
126
  vertical-align: super; }
127
127
 
128
+ a.TableFootnoteRef + a.TableFootnoteRef:before {
129
+ content: ", ";
130
+ vertical-align: super; }
131
+
128
132
  .addition {
129
133
  color: blue; }
130
134
 
@@ -59,6 +59,7 @@ module Metanorma
59
59
  @index_terms = node.attr("index-terms")
60
60
  @boilerplateauthority = node.attr("boilerplate-authority")
61
61
  @embed_hdr = node.attr("embed_hdr")
62
+ @embed_id = node.attr("embed_id")
62
63
  @document_scheme = node.attr("document-scheme")
63
64
  @xrefstyle = node.attr("xrefstyle")
64
65
  @source_linenums = node.attr("source-linenums-option") == "true"
@@ -82,14 +83,20 @@ module Metanorma
82
83
  end
83
84
 
84
85
  def init_toc(node)
85
- @htmltoclevels = node.attr("htmltoclevels")
86
- @doctoclevels = node.attr("doctoclevels")
87
- @toclevels = node.attr("toclevels")
86
+ @htmltoclevels = node.attr("htmltoclevels") ||
87
+ node.attr("toclevels") || toc_default[:html_levels]
88
+ @doctoclevels = node.attr("doctoclevels") ||
89
+ node.attr("toclevels") || toc_default[:word_levels]
90
+ @toclevels = node.attr("toclevels") || toc_default[:word_levels]
88
91
  @tocfigures = node.attr("toc-figures")
89
92
  @toctables = node.attr("toc-tables")
90
93
  @tocrecommendations = node.attr("toc-recommendations")
91
94
  end
92
95
 
96
+ def toc_default
97
+ { word_levels: 2, html_levels: 2 }
98
+ end
99
+
93
100
  def init_output(node)
94
101
  @fontheader = default_fonts(node)
95
102
  @log = Metanorma::Utils::Log.new
@@ -216,6 +216,9 @@
216
216
  <optional>
217
217
  <ref name="fullname"/>
218
218
  </optional>
219
+ <zeroOrMore>
220
+ <ref name="credential"/>
221
+ </zeroOrMore>
219
222
  <zeroOrMore>
220
223
  <ref name="affiliation"/>
221
224
  </zeroOrMore>
@@ -232,6 +235,11 @@
232
235
  <ref name="FullNameType"/>
233
236
  </element>
234
237
  </define>
238
+ <define name="credential">
239
+ <element name="credential">
240
+ <text/>
241
+ </element>
242
+ </define>
235
243
  <define name="FullNameType">
236
244
  <choice>
237
245
  <group>
@@ -305,7 +313,9 @@
305
313
  <zeroOrMore>
306
314
  <ref name="affiliationdescription"/>
307
315
  </zeroOrMore>
308
- <ref name="organization"/>
316
+ <optional>
317
+ <ref name="organization"/>
318
+ </optional>
309
319
  </element>
310
320
  </define>
311
321
  <define name="affiliationname">
@@ -1,4 +1,3 @@
1
- require "htmlentities"
2
1
  require "uri" if /^2\./.match?(RUBY_VERSION)
3
2
  require_relative "./blocks_notes"
4
3
 
@@ -8,6 +7,7 @@ module Metanorma
8
7
  def id_attr(node = nil)
9
8
  { id: Metanorma::Utils::anchor_or_uuid(node),
10
9
  tag: node&.attr("tag"),
10
+ columns: node&.attr("columns"),
11
11
  "multilingual-rendering": node&.attr("multilingual-rendering") }
12
12
  end
13
13
 
@@ -43,11 +43,15 @@ module Metanorma
43
43
  result
44
44
  end
45
45
 
46
+ def form_attrs(node)
47
+ attr_code(id_attr(node)
48
+ .merge(class: node.attr("class"),
49
+ name: node.attr("name"), action: node.attr("action")))
50
+ end
51
+
46
52
  def form(node)
47
53
  noko do |xml|
48
- xml.form **attr_code(id_attr(node)
49
- .merge(class: node.attr("class"),
50
- name: node.attr("name"), action: node.attr("action"))) do |f|
54
+ xml.form **form_attrs(node) do |f|
51
55
  f << node.content
52
56
  end
53
57
  end
@@ -108,8 +112,7 @@ module Metanorma
108
112
  end
109
113
 
110
114
  def example_to_requirement(node, role)
111
- return unless @reqt_models.requirement_roles.key?(role&.to_sym)
112
-
115
+ @reqt_models.requirement_roles.key?(role&.to_sym) or return
113
116
  # need to call here for proper recursion ordering
114
117
  select_requirement_model(node)
115
118
  requirement(node,
@@ -169,8 +172,7 @@ module Metanorma
169
172
  end
170
173
 
171
174
  def figure_title(node, out)
172
- return if node.title.nil?
173
-
175
+ node.title.nil? and return
174
176
  out.name { |name| name << node.title }
175
177
  end
176
178
 
@@ -196,8 +198,7 @@ module Metanorma
196
198
  end
197
199
 
198
200
  def paragraph(node)
199
- return termsource(node) if node.role == "source"
200
-
201
+ node.role == "source" and return termsource(node)
201
202
  noko do |xml|
202
203
  xml.p **para_attrs(node) do |xml_t|
203
204
  xml_t << node.content
@@ -26,7 +26,8 @@ module Metanorma
26
26
  def cleanup(xmldoc)
27
27
  element_name_cleanup(xmldoc)
28
28
  passthrough_cleanup(xmldoc)
29
- sections_cleanup(xmldoc) # feeds: obligations_cleanup, toc_cleanup
29
+ sections_cleanup(xmldoc) # feeds: obligations_cleanup, toc_cleanup,
30
+ # floatingtitle_cleanup
30
31
  obligations_cleanup(xmldoc)
31
32
  para_index_cleanup(xmldoc)
32
33
  block_index_cleanup(xmldoc)
@@ -60,6 +61,7 @@ module Metanorma
60
61
  quotesource_cleanup(xmldoc)
61
62
  callout_cleanup(xmldoc)
62
63
  footnote_cleanup(xmldoc)
64
+ ol_cleanup(xmldoc)
63
65
  mathml_cleanup(xmldoc)
64
66
  script_cleanup(xmldoc)
65
67
  docidentifier_cleanup(xmldoc) # feeds: bibdata_cleanup
@@ -100,8 +100,7 @@ module Metanorma
100
100
  # it is moved inside its preceding block if it is not delimited
101
101
  # (so there was no way of making that block include the note)
102
102
  def note_cleanup(xmldoc)
103
- q = "//note[following-sibling::*[not(local-name() = 'note')]]"
104
- xmldoc.xpath(q).each do |n|
103
+ xmldoc.xpath("//note").each do |n|
105
104
  next if n["keep-separate"] == "true" || !n.ancestors("table").empty?
106
105
 
107
106
  prev = n.previous_element || next
@@ -221,6 +220,14 @@ module Metanorma
221
220
  foll.children.first.previous = para.remove.children
222
221
  end
223
222
  end
223
+
224
+ def ol_cleanup(doc)
225
+ doc.xpath("//ol[@explicit-type]").each do |x|
226
+ x.delete("explicit-type")
227
+ @log.add("Bibliography", x,
228
+ "Style override set for ordered list")
229
+ end
230
+ end
224
231
  end
225
232
  end
226
233
  end
@@ -22,10 +22,8 @@ module Metanorma
22
22
  @log.add("Crossreferences", nil,
23
23
  "term source #{s['bibitemid']} not referenced")
24
24
  end
25
- a = if source.empty? && term.nil?
26
- @i18n.no_terms_boilerplate
27
- else
28
- term_defs_boilerplate_cont(source, term, isodoc)
25
+ a = if source.empty? && term.nil? then @i18n.no_terms_boilerplate
26
+ else term_defs_boilerplate_cont(source, term, isodoc)
29
27
  end
30
28
  a and div.next = a
31
29
  end
@@ -81,7 +79,7 @@ module Metanorma
81
79
  xmldoc.xpath(xpath).each do |f|
82
80
  f.xpath(".//clause[@type = 'boilerplate'] | " \
83
81
  ".//note[@type = 'boilerplate']").each do |c|
84
- c&.at("./title")&.remove
82
+ c.at("./title")&.remove
85
83
  c.replace(c.children)
86
84
  end
87
85
  end
@@ -89,13 +87,12 @@ module Metanorma
89
87
 
90
88
  def termdef_boilerplate_insert(xmldoc, isodoc, once = false)
91
89
  xmldoc.xpath(self.class::TERM_CLAUSE).each do |f|
92
- next if f.at("./clause[@type = 'boilerplate'] | " \
93
- "./note[@type = 'boilerplate']")
94
-
90
+ f.at("./clause[@type = 'boilerplate'] | " \
91
+ "./note[@type = 'boilerplate']") and next
95
92
  term_defs_boilerplate(f.at("./title"),
96
93
  xmldoc.xpath(".//termdocsource"),
97
94
  f.at(".//term"), f.at(".//p"), isodoc)
98
- break if once
95
+ once and break
99
96
  end
100
97
  end
101
98
 
@@ -109,8 +106,7 @@ module Metanorma
109
106
  end
110
107
 
111
108
  def initial_boilerplate(xml, isodoc)
112
- return if xml.at("//boilerplate")
113
-
109
+ xml.at("//boilerplate") and return
114
110
  preface = xml.at("//preface") || xml.at("//sections") ||
115
111
  xml.at("//annex") || xml.at("//references") or return
116
112
  b = boilerplate(xml, isodoc) or return
@@ -123,10 +119,8 @@ module Metanorma
123
119
 
124
120
  def boilerplate(xml, conv)
125
121
  file = boilerplate_file(xml)
126
- if @boilerplateauthority
127
- file = File.join(@localdir,
128
- @boilerplateauthority)
129
- end
122
+ @boilerplateauthority and
123
+ file = File.join(@localdir, @boilerplateauthority)
130
124
  (!file.nil? and File.exist?(file)) or return
131
125
  conv.populate_template(File.read(file, encoding: "UTF-8"), nil)
132
126
  end
@@ -134,7 +128,8 @@ module Metanorma
134
128
  def bibdata_cleanup(xmldoc)
135
129
  bibdata_anchor_cleanup(xmldoc)
136
130
  bibdata_docidentifier_cleanup(xmldoc)
137
- bibdata_embed_hdr_cleanup(xmldoc)
131
+ bibdata_embed_hdr_cleanup(xmldoc) # feeds bibdata_embed_id_cleanup
132
+ bibdata_embed_id_cleanup(xmldoc)
138
133
  biblio_indirect_erefs(xmldoc, @internal_eref_namespaces&.uniq)
139
134
  end
140
135
 
@@ -147,8 +142,7 @@ module Metanorma
147
142
  def bibdata_docidentifier_cleanup(xmldoc)
148
143
  ins = xmldoc.at("//bibdata/docidentifier")
149
144
  xmldoc.xpath("//bibdata/docidentifier").each_with_index do |b, i|
150
- next if i.zero?
151
-
145
+ i.zero? and next
152
146
  ins.next = b.remove
153
147
  ins = ins.next
154
148
  end
@@ -212,8 +206,7 @@ module Metanorma
212
206
  end
213
207
 
214
208
  def bibdata_embed_hdr_cleanup(xmldoc)
215
- return if @embed_hdr.nil? || @embed_hdr.empty?
216
-
209
+ (@embed_hdr.nil? || @embed_hdr.empty?) and return
217
210
  xmldoc.at("//bibdata") << "<relation type='derivedFrom'>" \
218
211
  "#{hdr2bibitem(@embed_hdr.first)}</relation>"
219
212
  end
@@ -241,6 +234,19 @@ module Metanorma
241
234
  bibitem << "<relation type='derivedFrom'>#{x}</relation>"
242
235
  end
243
236
  end
237
+
238
+ def bibdata_embed_id_cleanup(xmldoc)
239
+ @embed_id.nil? and return
240
+ bibdata = xmldoc.at("//bibdata")
241
+ #require "debug"; binding.b
242
+ @embed_id.each do |d|
243
+ bibdata = bibdata.at("./relation[@type = 'derivedFrom']/bibitem")
244
+ ident = bibdata.at("./docidentifier[@primary = 'true']") ||
245
+ bibdata.at("./docidentifier")
246
+ xmldoc.xpath("//xref[@target = '#{d}'][normalize-space(text()) = '']")
247
+ .each { |x| x << ident.text }
248
+ end
249
+ end
244
250
  end
245
251
  end
246
252
  end
@@ -80,7 +80,7 @@ module Metanorma
80
80
  types = MIME::Types.type_for(path) or return false
81
81
  types.first == "image/svg+xml" or return false
82
82
  svg = File.read(path, encoding: "utf-8") or return false
83
- img.replace(Nokogiri::XML(svg).root.to_xml)
83
+ img.replace(Nokogiri::XML(svg).root)
84
84
  true
85
85
  end
86
86
 
@@ -13,20 +13,31 @@ module Metanorma
13
13
  end
14
14
 
15
15
  def strip_initial_space(elem)
16
- return unless elem.children[0].text?
17
-
16
+ elem.children[0].text? or return
18
17
  if /\S/.match?(elem.children[0].text)
19
- elem.children[0].content = elem.children[0].text.gsub(/^ /, "")
18
+ elem.children[0].content = elem.children[0].text.lstrip
20
19
  else
21
20
  elem.children[0].remove
22
21
  end
23
22
  end
24
23
 
25
24
  def bookmark_cleanup(xmldoc)
25
+ redundant_bookmark_cleanup(xmldoc)
26
26
  li_bookmark_cleanup(xmldoc)
27
27
  dt_bookmark_cleanup(xmldoc)
28
28
  end
29
29
 
30
+ def redundant_bookmark_cleanup(xmldoc)
31
+ xmldoc.xpath("//bookmark").each do |b|
32
+ p = b
33
+ while !p.xml? && p = p.parent
34
+ p["id"] == b["id"] or next
35
+ b.remove
36
+ break
37
+ end
38
+ end
39
+ end
40
+
30
41
  def bookmark_to_id(elem, bookmark)
31
42
  parent = bookmark.parent
32
43
  elem["id"] = bookmark.remove["id"]
@@ -103,8 +114,8 @@ module Metanorma
103
114
  end
104
115
 
105
116
  def concept_eref_cleanup(elem)
106
- t = elem&.at("./xrefrender")&.remove&.children&.to_xml
107
- l = elem&.at("./locality")&.remove&.children&.to_xml
117
+ t = elem.at("./xrefrender")&.remove&.children&.to_xml
118
+ l = elem.at("./locality")&.remove&.children&.to_xml
108
119
  elem.add_child "<eref bibitemid='#{elem['key']}'>#{l}</eref>"
109
120
  extract_localities(elem.elements[-1])
110
121
  elem.elements[-1].add_child(t) if t
@@ -11,18 +11,31 @@ module Metanorma
11
11
  if xml.at("//foreword | //introduction | //acknowledgements | " \
12
12
  "//*[@preface]")
13
13
  preface = sect.add_previous_sibling("<preface/>").first
14
- f = xml.at("//foreword") and preface.add_child f.remove
15
- f = xml.at("//introduction") and preface.add_child f.remove
14
+ f = xml.at("//foreword") and to_preface(preface, f)
15
+ f = xml.at("//introduction") and to_preface(preface, f)
16
16
  move_clauses_into_preface(xml, preface)
17
- f = xml.at("//acknowledgements") and preface.add_child f.remove
17
+ f = xml.at("//acknowledgements") and to_preface(preface, f)
18
18
  end
19
19
  make_abstract(xml, sect)
20
20
  end
21
21
 
22
22
  def move_clauses_into_preface(xml, preface)
23
23
  xml.xpath("//*[@preface]").each do |c|
24
- c.delete("preface")
25
- preface.add_child c.remove
24
+ to_preface(preface, c)
25
+ end
26
+ end
27
+
28
+ def to_preface(preface, clause)
29
+ clause.delete("preface")
30
+ preface.add_child clause.remove
31
+ end
32
+
33
+ def make_colophon(xml)
34
+ xml.at("//clause[@colophon]") or return
35
+ colophon = xml.root.add_child("<colophon/>").first
36
+ xml.xpath("//*[@colophon]").each do |c|
37
+ c.delete("colophon")
38
+ colophon.add_child c.remove
26
39
  end
27
40
  end
28
41
 
@@ -73,10 +86,12 @@ module Metanorma
73
86
 
74
87
  def sections_order_cleanup(xml)
75
88
  s = xml.at("//sections")
89
+ pop_floating_title(xml)
76
90
  make_preface(xml, s)
77
91
  make_annexes(xml)
78
92
  make_indexsect(xml, s)
79
93
  make_bibliography(xml, s)
94
+ make_colophon(xml)
80
95
  xml.xpath("//sections/annex").reverse_each { |r| s.next = r.remove }
81
96
  end
82
97
 
@@ -200,7 +215,6 @@ module Metanorma
200
215
  end
201
216
 
202
217
  def floatingtitle_cleanup(xmldoc)
203
- pop_floating_title(xmldoc)
204
218
  floating_title_preface2sections(xmldoc)
205
219
  end
206
220
 
@@ -17,7 +17,7 @@ module Metanorma
17
17
  doc.xpath(xpath).each_with_index do |node, i|
18
18
  first && !i.zero? and next
19
19
  title = get_or_make_title(node)
20
- fn = title.xpath("./fn")
20
+ fn = title.xpath("./fn | ./bookmark")
21
21
  fn.each(&:remove)
22
22
  title.children = text
23
23
  fn.each { |n| title << n }
@@ -4,11 +4,14 @@ module Metanorma
4
4
  # Indices sort after letter but before any following
5
5
  # letter (x, x_m, x_1, xa); we use colon to force that sort order.
6
6
  # Numbers sort *after* letters; we use thorn to force that sort order.
7
+ # Capitals sort before their corresponding lowercase.
7
8
  def symbol_key(sym)
8
- @c.decode(asciimath_key(sym).text.downcase)
9
+ @c.decode(asciimath_key(sym).text)
9
10
  .gsub(/[\[\]{}<>()]/, "").gsub(/\s/m, "")
10
11
  .gsub(/[[:punct:]]|[_^]/, ":\\0").gsub(/`/, "")
11
12
  .gsub(/[0-9]+/, "þ\\0")
13
+ .tr("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
14
+ "ABCFEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
12
15
  end
13
16
 
14
17
  def asciimath_key(sym)
@@ -74,7 +74,7 @@ module Metanorma
74
74
  end
75
75
 
76
76
  def term_children_cleanup(xmldoc)
77
- xmldoc.xpath("//terms[terms]").each { |t| t.name = "clause" }
77
+ xmldoc.xpath("//terms[terms][not(term)]").each { |t| t.name = "clause" }
78
78
  xmldoc.xpath("//term").each do |t|
79
79
  %w(termnote termexample termsource term).each do |w|
80
80
  t.xpath("./#{w}").each { |n| t << n.remove }
@@ -86,9 +86,9 @@ module Metanorma
86
86
 
87
87
  def toc_metadata1(ins)
88
88
  [[@toclevels, "TOC Heading Levels"],
89
- [@toclevels, "TOC Heading Levels"],
90
- [@toclevels, "TOC Heading Levels"]].each do |n|
91
- n[0] and ins << "<presentation-metadata><name>#{n[1]}</name>"\
89
+ [@htmltoclevels, "HTML TOC Heading Levels"],
90
+ [@doctoclevels, "DOC TOC Heading Levels"]].each do |n|
91
+ n[0] and ins << "<presentation-metadata><name>#{n[1]}</name>" \
92
92
  "<value>#{n[0]}</value></presentation-metadata>"
93
93
  end
94
94
  end
@@ -9,12 +9,17 @@ module Metanorma
9
9
  module Standoc
10
10
  module Front
11
11
  def metadata_id(node, xml)
12
+ id = node.attr("docidentifier") || metadata_id_build(node)
13
+ xml.docidentifier id
14
+ xml.docnumber node.attr("docnumber")
15
+ end
16
+
17
+ def metadata_id_build(node)
12
18
  part, subpart = node&.attr("partnumber")&.split(/-/)
13
19
  id = node.attr("docnumber") || ""
14
20
  id += "-#{part}" if part
15
21
  id += "-#{subpart}" if subpart
16
- xml.docidentifier id
17
- xml.docnumber node.attr("docnumber")
22
+ id
18
23
  end
19
24
 
20
25
  def metadata_other_id(node, xml)
@@ -69,7 +74,7 @@ module Metanorma
69
74
 
70
75
  def metadata_date1(node, xml, type)
71
76
  date = node.attr("#{type}-date")
72
- date and xml.date **{ type: type } do |d|
77
+ date and xml.date type: type do |d|
73
78
  d.on date
74
79
  end
75
80
  end
@@ -87,7 +92,7 @@ module Metanorma
87
92
 
88
93
  type, date = node.attr(a).split(/ /, 2)
89
94
  type or next
90
- xml.date **{ type: type } do |d|
95
+ xml.date type: type do |d|
91
96
  d.on date
92
97
  end
93
98
  end
@@ -134,7 +139,7 @@ module Metanorma
134
139
 
135
140
  def metadata_getrelation1(doc, xml, type, desc)
136
141
  id = doc.split(/,\s*/)
137
- xml.relation **{ type: relation_normalise(type) } do |r|
142
+ xml.relation type: relation_normalise(type) do |r|
138
143
  desc.nil? or r.description desc.gsub(/-/, " ")
139
144
  fetch_ref(r, doc, nil, **{}) or r.bibitem do |b|
140
145
  b.title id[1] || "--"
@@ -86,6 +86,7 @@ module Metanorma
86
86
  personal_role(node, c, suffix)
87
87
  c.person do |p|
88
88
  person_name(node, xml, suffix, p)
89
+ person_credentials(node, xml, suffix, p)
89
90
  person_affiliation(node, xml, suffix, p)
90
91
  personal_contact(node, suffix, p)
91
92
  end
@@ -104,9 +105,17 @@ module Metanorma
104
105
  end
105
106
  end
106
107
 
108
+ def person_credentials(node, _xml, suffix, person)
109
+ c = node.attr("contributor-credentials#{suffix}") and
110
+ person.credentials c
111
+ end
112
+
107
113
  def person_affiliation(node, _xml, suffix, person)
108
- node.attr("affiliation#{suffix}") and person.affiliation do |a|
109
- a.organization do |o|
114
+ aff = node.attr("affiliation#{suffix}")
115
+ pos = node.attr("contributor-position#{suffix}")
116
+ (aff || pos) and person.affiliation do |a|
117
+ pos and a.name { |n| n << pos }
118
+ aff and a.organization do |o|
110
119
  person_organization(node, suffix, o)
111
120
  end
112
121
  end
@@ -1,5 +1,4 @@
1
1
  require "asciidoctor/extensions"
2
- require "htmlentities"
3
2
  require "unicode2latex"
4
3
  require "mime/types"
5
4
  require "base64"
@@ -139,13 +138,6 @@ module Metanorma
139
138
  noko { |xml| xml.hr }.join
140
139
  end
141
140
 
142
- def xml_encode(text)
143
- @c.encode(text, :basic, :hexadecimal)
144
- .gsub(/&amp;gt;/, ">").gsub(/&amp;lt;/, "<").gsub(/&amp;amp;/, "&")
145
- .gsub(/&gt;/, ">").gsub(/&lt;/, "<").gsub(/&amp;/, "&")
146
- .gsub(/&quot;/, '"').gsub(/&#xa;/, "\n").gsub(/&amp;#/, "&#")
147
- end
148
-
149
141
  def latex_parse1(text)
150
142
  lxm_input = Unicode2LaTeX.unicode2latex(@c.decode(text))
151
143
  results = Latexmath.parse(lxm_input).to_mathml