metanorma-standoc 2.8.6 → 2.8.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26ef7eeadddd66ca86125ae72f91a3e920057ad5ed1e8f0e1e5670f831355d0b
4
- data.tar.gz: e1d1e42f6d4962d11ab86421fec3fc2877480e33fdac9aabcc4bd478fd3cc2df
3
+ metadata.gz: c85d5bbd7c078ea07217f9d0e4eac15edec02f1123a2d631774a7d95e194b5ea
4
+ data.tar.gz: 69c26ff7e359967646790c05e81ec9addc1641bd05bf9d1e9bd2e58f330ba24a
5
5
  SHA512:
6
- metadata.gz: 4a014a7cbc4f3665f07322713d0edad6dbd42301eb3b0e548a78efd116f7c6da4b7359db4f26e3cbc50315cdbdad99169997493fa792000b6f36e63c49c8ace1
7
- data.tar.gz: 25f39be9f0df10ecdfaea29ecdf2e1cf8a50789f80fce1cf6fa71cd23beb1a69f6b890e2ca69527bc486091631281cce5926f3b3ec743bdbbfb24b9c7d195264
6
+ metadata.gz: 616aac498897af730a4bd1198011b7bfb310782ca3d1ee940638f753a39c5ee8ef9b0d9d344199d089fef554c757b52dcc1bfafe9dee22b031cf22616bbd358a
7
+ data.tar.gz: 88b94f216dc5db91750d334f0555edcf7cef65f8b2c6b011ea6684317dd25817ee216ea9cf935a13f5299710042b996f6f46ea5a784e95d5e2b43760507009b4
@@ -19,14 +19,30 @@ module Metanorma
19
19
  def asciimath2mathml_indiv(elem)
20
20
  elem["type"] = "MathML"
21
21
  expr = @c.decode(elem.text)
22
- ret = Plurimath::Math.parse(expr, "asciimath")
23
- .to_mathml(display_style: elem["block"])
24
- ret += "<asciimath>#{@c.encode(@c.decode(expr), :basic)}</asciimath>"
22
+ ret = asciimath_parse(expr, elem)
23
+ ret += "<asciimath>#{@c.encode(expr, :basic)}</asciimath>"
25
24
  elem.children = ret
26
25
  rescue StandardError => e
27
26
  asciimath2mathml_err(elem.to_xml, e)
28
27
  end
29
28
 
29
+ # https://medium.com/@rickwang_wxc/in-ruby-given-a-string-detect-if-it-is-valid-numeric-c58275eace60
30
+ NUMERIC_REGEX = %r{^((\+|-)?\d*\.?\d+)([eE](\+|-){1}\d+)?$}.freeze
31
+
32
+ MATHML_NS = "http://www.w3.org/1998/Math/MathML".freeze
33
+
34
+ def asciimath_parse(expr, elem)
35
+ if NUMERIC_REGEX.match?(expr)
36
+ @novalid or elem["validate"] = "false"
37
+ <<~MATH
38
+ <math xmlns='#{MATHML_NS}'><mstyle displaystyle='false'><mn>#{expr}</mn></mstyle></math>
39
+ MATH
40
+ else
41
+ Plurimath::Math.parse(expr, "asciimath")
42
+ .to_mathml(display_style: elem["block"])
43
+ end
44
+ end
45
+
30
46
  def asciimath2mathml_err(text, expr)
31
47
  err = "Malformed MathML: #{expr}\n#{text}"
32
48
  @log.add("Maths", nil, err, severity: 0)
@@ -57,8 +73,6 @@ module Metanorma
57
73
  xml.children = math
58
74
  end
59
75
 
60
- MATHML_NS = "http://www.w3.org/1998/Math/MathML".freeze
61
-
62
76
  def mathml_preserve_space(math)
63
77
  math.xpath(".//m:mtext", "m" => MATHML_NS).each do |x|
64
78
  x.children = x.children.to_xml
@@ -193,7 +207,8 @@ module Metanorma
193
207
 
194
208
  def mathml_cleanup(xmldoc)
195
209
  unitsml = Asciimath2UnitsML::Conv.new(asciimath2unitsml_options)
196
- xmldoc.xpath("//stem[@type = 'MathML']").each do |x|
210
+ xmldoc.xpath("//stem[@type = 'MathML'][not(@validate = 'false')]")
211
+ .each do |x|
197
212
  xml_unescape_mathml(x)
198
213
  mathml_namespace(x)
199
214
  mathml_preserve_space(x)
@@ -33,7 +33,7 @@ module Metanorma
33
33
  @boilerplateauthority = node.attr("boilerplate-authority")
34
34
  @embed_hdr = node.attr("embed_hdr")
35
35
  @embed_id = node.attr("embed_id")
36
- @document_scheme = node.attr("document-scheme")
36
+ @document_scheme = document_scheme(node)
37
37
  @xrefstyle = node.attr("xrefstyle")
38
38
  @source_linenums = node.attr("source-linenums-option") == "true"
39
39
  end
@@ -100,7 +100,7 @@ module Metanorma
100
100
  status[:midline_docattr] && !/^:[^ :]+: /.match?(text) and
101
101
  status[:midline_docattr] = false
102
102
  if (status[:is_delim] && /^(-+|\*+|=+|_+)$/.match?(text)) ||
103
- (!status[:is_delim] && !status[:delimln] && text == "----")
103
+ (!status[:is_delim] && !status[:delimln] && /^-----*$|^\.\.\.\.\.*$/.match?(text))
104
104
  status[:delimln] = text
105
105
  status[:pass] = true
106
106
  elsif status[:pass_delim]
@@ -34,8 +34,12 @@ module Metanorma
34
34
 
35
35
  def math_validate(doc)
36
36
  doc.xpath("//m:math", "m" => MATHML_NS).each do |m|
37
- math = mathml_sanitise(m.dup)
38
- Plurimath::Math.parse(math, "mathml").to_mathml
37
+ if m.parent["validate"] == "false"
38
+ m.parent.delete("validate")
39
+ else
40
+ math = mathml_sanitise(m.dup)
41
+ Plurimath::Math.parse(math, "mathml").to_mathml
42
+ end
39
43
  rescue StandardError => e
40
44
  math_validate_error(math, m, e)
41
45
  end
@@ -19,6 +19,6 @@ module Metanorma
19
19
  end
20
20
 
21
21
  module Standoc
22
- VERSION = "2.8.6".freeze
22
+ VERSION = "2.8.7".freeze
23
23
  end
24
24
  end
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency "asciidoctor", "~> 2.0.0"
33
33
  spec.add_dependency "crass", "~> 1.0.0"
34
34
  spec.add_dependency "iev", "~> 0.3.0"
35
- spec.add_dependency "isodoc", "~> 2.9.0"
35
+ spec.add_dependency "isodoc", "~> 2.10.0"
36
36
  spec.add_dependency "metanorma", ">= 1.6.0"
37
37
  spec.add_dependency "metanorma-plugin-datastruct", "~> 0.3.0"
38
38
  spec.add_dependency "metanorma-plugin-glossarist", "~> 0.2.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.6
4
+ version: 2.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-25 00:00:00.000000000 Z
11
+ date: 2024-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.9.0
75
+ version: 2.10.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.9.0
82
+ version: 2.10.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: metanorma
85
85
  requirement: !ruby/object:Gem::Requirement