mml 2.2.0 → 2.3.0
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/.rubocop_todo.yml +14 -4
- data/CLAUDE.md +79 -0
- data/README.adoc +226 -83
- data/lib/mml/base/deprecated_font_attributes.rb +31 -0
- data/lib/mml/base/maction.rb +28 -0
- data/lib/mml/base/maligngroup.rb +26 -0
- data/lib/mml/base/malignmark.rb +26 -0
- data/lib/mml/base/math.rb +23 -0
- data/lib/mml/base/menclose.rb +27 -0
- data/lib/mml/base/merror.rb +25 -0
- data/lib/mml/base/mfenced.rb +34 -0
- data/lib/mml/base/mfrac.rb +33 -0
- data/lib/mml/base/mfraction.rb +33 -0
- data/lib/mml/base/mglyph.rb +42 -0
- data/lib/mml/base/mi.rb +32 -0
- data/lib/mml/base/mlabeledtr.rb +37 -0
- data/lib/mml/base/mlongdiv.rb +31 -0
- data/lib/mml/base/mmultiscripts.rb +31 -0
- data/lib/mml/base/mn.rb +32 -0
- data/lib/mml/base/mo.rb +76 -0
- data/lib/mml/base/mover.rb +29 -0
- data/lib/mml/base/mpadded.rb +35 -0
- data/lib/mml/base/mphantom.rb +25 -0
- data/lib/mml/base/mprescripts.rb +24 -0
- data/lib/mml/base/mroot.rb +25 -0
- data/lib/mml/base/mrow.rb +29 -0
- data/lib/mml/base/ms.rb +37 -0
- data/lib/mml/base/mscarries.rb +33 -0
- data/lib/mml/base/mscarry.rb +29 -0
- data/lib/mml/base/msgroup.rb +31 -0
- data/lib/mml/base/msline.rb +34 -0
- data/lib/mml/base/mspace.rb +52 -0
- data/lib/mml/base/msqrt.rb +25 -0
- data/lib/mml/base/msrow.rb +27 -0
- data/lib/mml/base/mstack.rb +33 -0
- data/lib/mml/base/mstyle.rb +189 -0
- data/lib/mml/base/msub.rb +27 -0
- data/lib/mml/base/msubsup.rb +29 -0
- data/lib/mml/base/msup.rb +27 -0
- data/lib/mml/base/mtable.rb +57 -0
- data/lib/mml/base/mtd.rb +29 -0
- data/lib/mml/base/mtext.rb +32 -0
- data/lib/mml/base/mtr.rb +35 -0
- data/lib/mml/base/munder.rb +31 -0
- data/lib/mml/base/munderover.rb +31 -0
- data/lib/mml/base/none.rb +24 -0
- data/lib/mml/base/semantics.rb +23 -0
- data/lib/mml/base/v3_only/operator_attrs.rb +24 -0
- data/lib/mml/base/v3_only/style_attrs.rb +31 -0
- data/lib/mml/base/v3_only/table_attrs.rb +28 -0
- data/lib/mml/base/v3_only.rb +11 -0
- data/lib/mml/base/v4_attributes.rb +30 -0
- data/lib/mml/base.rb +51 -0
- data/lib/mml/common_elements.rb +85 -0
- data/lib/mml/context_configuration.rb +118 -0
- data/lib/mml/context_options.rb +64 -0
- data/lib/mml/namespace.rb +10 -0
- data/lib/mml/v3/common_elements.rb +8 -0
- data/lib/mml/v3/configuration.rb +4 -96
- data/lib/mml/v3/maction.rb +2 -14
- data/lib/mml/v3/maligngroup.rb +2 -12
- data/lib/mml/v3/malignmark.rb +2 -12
- data/lib/mml/v3/math.rb +3 -10
- data/lib/mml/v3/menclose.rb +3 -14
- data/lib/mml/v3/merror.rb +3 -12
- data/lib/mml/v3/mfenced.rb +3 -21
- data/lib/mml/v3/mfrac.rb +3 -20
- data/lib/mml/v3/mfraction.rb +3 -20
- data/lib/mml/v3/mglyph.rb +3 -38
- data/lib/mml/v3/mi.rb +3 -30
- data/lib/mml/v3/mlabeledtr.rb +2 -23
- data/lib/mml/v3/mlongdiv.rb +3 -18
- data/lib/mml/v3/mmultiscripts.rb +3 -20
- data/lib/mml/v3/mn.rb +3 -30
- data/lib/mml/v3/mo.rb +4 -78
- data/lib/mml/v3/mover.rb +3 -16
- data/lib/mml/v3/mpadded.rb +3 -22
- data/lib/mml/v3/mphantom.rb +3 -12
- data/lib/mml/v3/mprescripts.rb +2 -10
- data/lib/mml/v3/mroot.rb +3 -12
- data/lib/mml/v3/mrow.rb +3 -18
- data/lib/mml/v3/ms.rb +4 -36
- data/lib/mml/v3/mscarries.rb +3 -20
- data/lib/mml/v3/mscarry.rb +3 -16
- data/lib/mml/v3/msgroup.rb +3 -18
- data/lib/mml/v3/msline.rb +2 -20
- data/lib/mml/v3/mspace.rb +3 -50
- data/lib/mml/v3/msqrt.rb +3 -12
- data/lib/mml/v3/msrow.rb +3 -14
- data/lib/mml/v3/mstack.rb +3 -20
- data/lib/mml/v3/mstyle.rb +5 -204
- data/lib/mml/v3/msub.rb +3 -14
- data/lib/mml/v3/msubsup.rb +3 -16
- data/lib/mml/v3/msup.rb +3 -14
- data/lib/mml/v3/mtable.rb +3 -53
- data/lib/mml/v3/mtd.rb +3 -16
- data/lib/mml/v3/mtext.rb +3 -30
- data/lib/mml/v3/mtr.rb +2 -21
- data/lib/mml/v3/munder.rb +3 -18
- data/lib/mml/v3/munderover.rb +3 -18
- data/lib/mml/v3/namespace.rb +1 -4
- data/lib/mml/v3/none.rb +2 -10
- data/lib/mml/v3/semantics.rb +3 -12
- data/lib/mml/v3.rb +51 -77
- data/lib/mml/v4/a.rb +4 -13
- data/lib/mml/v4/common_elements.rb +13 -0
- data/lib/mml/v4/configuration.rb +4 -97
- data/lib/mml/v4/maction.rb +4 -19
- data/lib/mml/v4/maligngroup.rb +4 -17
- data/lib/mml/v4/malignmark.rb +4 -17
- data/lib/mml/v4/math.rb +4 -14
- data/lib/mml/v4/menclose.rb +4 -18
- data/lib/mml/v4/merror.rb +4 -16
- data/lib/mml/v4/mfenced.rb +4 -25
- data/lib/mml/v4/mfrac.rb +4 -24
- data/lib/mml/v4/mfraction.rb +4 -20
- data/lib/mml/v4/mglyph.rb +4 -35
- data/lib/mml/v4/mi.rb +4 -30
- data/lib/mml/v4/mlabeledtr.rb +6 -23
- data/lib/mml/v4/mlongdiv.rb +4 -18
- data/lib/mml/v4/mmultiscripts.rb +4 -24
- data/lib/mml/v4/mn.rb +4 -29
- data/lib/mml/v4/mo.rb +4 -75
- data/lib/mml/v4/mover.rb +4 -20
- data/lib/mml/v4/mpadded.rb +4 -26
- data/lib/mml/v4/mphantom.rb +4 -16
- data/lib/mml/v4/mprescripts.rb +4 -11
- data/lib/mml/v4/mroot.rb +4 -16
- data/lib/mml/v4/mrow.rb +4 -20
- data/lib/mml/v4/ms.rb +4 -34
- data/lib/mml/v4/mscarries.rb +4 -20
- data/lib/mml/v4/mscarry.rb +4 -16
- data/lib/mml/v4/msgroup.rb +4 -18
- data/lib/mml/v4/msline.rb +4 -21
- data/lib/mml/v4/mspace.rb +4 -49
- data/lib/mml/v4/msqrt.rb +4 -16
- data/lib/mml/v4/msrow.rb +4 -18
- data/lib/mml/v4/mstack.rb +4 -24
- data/lib/mml/v4/mstyle.rb +4 -186
- data/lib/mml/v4/msub.rb +4 -18
- data/lib/mml/v4/msubsup.rb +4 -20
- data/lib/mml/v4/msup.rb +4 -18
- data/lib/mml/v4/mtable.rb +4 -55
- data/lib/mml/v4/mtd.rb +4 -20
- data/lib/mml/v4/mtext.rb +4 -29
- data/lib/mml/v4/mtr.rb +4 -25
- data/lib/mml/v4/munder.rb +4 -22
- data/lib/mml/v4/munderover.rb +4 -22
- data/lib/mml/v4/namespace.rb +1 -4
- data/lib/mml/v4/none.rb +6 -11
- data/lib/mml/v4/semantics.rb +4 -12
- data/lib/mml/v4.rb +52 -74
- data/lib/mml/version.rb +1 -1
- data/lib/mml/versioned_parser.rb +46 -0
- data/lib/mml.rb +33 -25
- metadata +60 -4
- data/lib/mml/v3/common_attributes.rb +0 -22
- data/lib/mml/v4/common_attributes.rb +0 -26
data/lib/mml.rb
CHANGED
|
@@ -1,38 +1,46 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require "
|
|
3
|
+
require "lutaml/model"
|
|
4
4
|
|
|
5
5
|
module Mml
|
|
6
6
|
class Error < StandardError; end
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
end
|
|
8
|
+
DEFAULT_ADAPTER = RUBY_ENGINE == "opal" ? :oga : :ox
|
|
9
|
+
SUPPORTED_VERSIONS = [3, 4].freeze
|
|
10
|
+
UNSPECIFIED_CONTEXT = Object.new.freeze
|
|
11
|
+
|
|
12
|
+
autoload :Namespace, "mml/namespace"
|
|
13
|
+
autoload :CommonElements, "mml/common_elements"
|
|
14
|
+
autoload :ContextOptions, "mml/context_options"
|
|
15
|
+
autoload :Base, "mml/base"
|
|
16
|
+
autoload :V3, "mml/v3"
|
|
17
|
+
autoload :V4, "mml/v4"
|
|
20
18
|
|
|
21
19
|
module_function
|
|
22
20
|
|
|
23
|
-
def parse(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
def parse(
|
|
22
|
+
input,
|
|
23
|
+
namespace_exist: true,
|
|
24
|
+
version: 3,
|
|
25
|
+
context: UNSPECIFIED_CONTEXT,
|
|
26
|
+
register: nil
|
|
27
|
+
)
|
|
28
|
+
parser_for(version).parse(
|
|
29
|
+
input,
|
|
30
|
+
namespace_exist: namespace_exist,
|
|
31
|
+
context: Mml::ContextOptions.normalize_context_option(
|
|
32
|
+
context: context,
|
|
33
|
+
register: register,
|
|
34
|
+
default_context: nil,
|
|
35
|
+
warning_source: "Mml.parse",
|
|
36
|
+
),
|
|
37
|
+
)
|
|
31
38
|
end
|
|
32
39
|
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
def parser_for(version)
|
|
41
|
+
return Mml::V3 if version == 3
|
|
42
|
+
return Mml::V4 if version == 4
|
|
35
43
|
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
raise Error, "Unsupported MathML version: #{version}"
|
|
45
|
+
end
|
|
38
46
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mml
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-04-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|
|
@@ -53,6 +53,7 @@ files:
|
|
|
53
53
|
- ".rspec"
|
|
54
54
|
- ".rubocop.yml"
|
|
55
55
|
- ".rubocop_todo.yml"
|
|
56
|
+
- CLAUDE.md
|
|
56
57
|
- CODE_OF_CONDUCT.md
|
|
57
58
|
- Gemfile
|
|
58
59
|
- README.adoc
|
|
@@ -60,8 +61,62 @@ files:
|
|
|
60
61
|
- bin/console
|
|
61
62
|
- bin/setup
|
|
62
63
|
- lib/mml.rb
|
|
64
|
+
- lib/mml/base.rb
|
|
65
|
+
- lib/mml/base/deprecated_font_attributes.rb
|
|
66
|
+
- lib/mml/base/maction.rb
|
|
67
|
+
- lib/mml/base/maligngroup.rb
|
|
68
|
+
- lib/mml/base/malignmark.rb
|
|
69
|
+
- lib/mml/base/math.rb
|
|
70
|
+
- lib/mml/base/menclose.rb
|
|
71
|
+
- lib/mml/base/merror.rb
|
|
72
|
+
- lib/mml/base/mfenced.rb
|
|
73
|
+
- lib/mml/base/mfrac.rb
|
|
74
|
+
- lib/mml/base/mfraction.rb
|
|
75
|
+
- lib/mml/base/mglyph.rb
|
|
76
|
+
- lib/mml/base/mi.rb
|
|
77
|
+
- lib/mml/base/mlabeledtr.rb
|
|
78
|
+
- lib/mml/base/mlongdiv.rb
|
|
79
|
+
- lib/mml/base/mmultiscripts.rb
|
|
80
|
+
- lib/mml/base/mn.rb
|
|
81
|
+
- lib/mml/base/mo.rb
|
|
82
|
+
- lib/mml/base/mover.rb
|
|
83
|
+
- lib/mml/base/mpadded.rb
|
|
84
|
+
- lib/mml/base/mphantom.rb
|
|
85
|
+
- lib/mml/base/mprescripts.rb
|
|
86
|
+
- lib/mml/base/mroot.rb
|
|
87
|
+
- lib/mml/base/mrow.rb
|
|
88
|
+
- lib/mml/base/ms.rb
|
|
89
|
+
- lib/mml/base/mscarries.rb
|
|
90
|
+
- lib/mml/base/mscarry.rb
|
|
91
|
+
- lib/mml/base/msgroup.rb
|
|
92
|
+
- lib/mml/base/msline.rb
|
|
93
|
+
- lib/mml/base/mspace.rb
|
|
94
|
+
- lib/mml/base/msqrt.rb
|
|
95
|
+
- lib/mml/base/msrow.rb
|
|
96
|
+
- lib/mml/base/mstack.rb
|
|
97
|
+
- lib/mml/base/mstyle.rb
|
|
98
|
+
- lib/mml/base/msub.rb
|
|
99
|
+
- lib/mml/base/msubsup.rb
|
|
100
|
+
- lib/mml/base/msup.rb
|
|
101
|
+
- lib/mml/base/mtable.rb
|
|
102
|
+
- lib/mml/base/mtd.rb
|
|
103
|
+
- lib/mml/base/mtext.rb
|
|
104
|
+
- lib/mml/base/mtr.rb
|
|
105
|
+
- lib/mml/base/munder.rb
|
|
106
|
+
- lib/mml/base/munderover.rb
|
|
107
|
+
- lib/mml/base/none.rb
|
|
108
|
+
- lib/mml/base/semantics.rb
|
|
109
|
+
- lib/mml/base/v3_only.rb
|
|
110
|
+
- lib/mml/base/v3_only/operator_attrs.rb
|
|
111
|
+
- lib/mml/base/v3_only/style_attrs.rb
|
|
112
|
+
- lib/mml/base/v3_only/table_attrs.rb
|
|
113
|
+
- lib/mml/base/v4_attributes.rb
|
|
114
|
+
- lib/mml/common_elements.rb
|
|
115
|
+
- lib/mml/context_configuration.rb
|
|
116
|
+
- lib/mml/context_options.rb
|
|
117
|
+
- lib/mml/namespace.rb
|
|
63
118
|
- lib/mml/v3.rb
|
|
64
|
-
- lib/mml/v3/
|
|
119
|
+
- lib/mml/v3/common_elements.rb
|
|
65
120
|
- lib/mml/v3/configuration.rb
|
|
66
121
|
- lib/mml/v3/maction.rb
|
|
67
122
|
- lib/mml/v3/maligngroup.rb
|
|
@@ -111,7 +166,7 @@ files:
|
|
|
111
166
|
- lib/mml/v3/version.rb
|
|
112
167
|
- lib/mml/v4.rb
|
|
113
168
|
- lib/mml/v4/a.rb
|
|
114
|
-
- lib/mml/v4/
|
|
169
|
+
- lib/mml/v4/common_elements.rb
|
|
115
170
|
- lib/mml/v4/configuration.rb
|
|
116
171
|
- lib/mml/v4/maction.rb
|
|
117
172
|
- lib/mml/v4/maligngroup.rb
|
|
@@ -160,6 +215,7 @@ files:
|
|
|
160
215
|
- lib/mml/v4/semantics.rb
|
|
161
216
|
- lib/mml/v4/version.rb
|
|
162
217
|
- lib/mml/version.rb
|
|
218
|
+
- lib/mml/versioned_parser.rb
|
|
163
219
|
- mml.gemspec
|
|
164
220
|
- sig/mml.rbs
|
|
165
221
|
homepage: https://github.com/plurimath/mml
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Mml
|
|
4
|
-
module V3
|
|
5
|
-
Mml::V3::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
6
|
-
autoload(tag.to_s.capitalize.to_sym, "mml/v3/#{tag}.rb")
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
class CommonAttributes < Lutaml::Model::Serializable
|
|
10
|
-
Mml::V3::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
11
|
-
attribute :"#{tag}_value", Mml::V3.const_get(tag.to_s.capitalize),
|
|
12
|
-
collection: true
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
xml do
|
|
16
|
-
Mml::V3::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
17
|
-
map_element tag, to: :"#{tag}_value"
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Mml
|
|
4
|
-
module V4
|
|
5
|
-
Mml::V4::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
6
|
-
autoload(tag.to_s.capitalize.to_sym, "mml/v4/#{tag}.rb")
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
class CommonAttributes < Mml::V3::CommonAttributes
|
|
10
|
-
Mml::V4::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
11
|
-
tag_class = if Mml::V3.const_defined?(tag.to_s.capitalize)
|
|
12
|
-
Mml::V3.const_get(tag.to_s.capitalize)
|
|
13
|
-
else
|
|
14
|
-
Mml::V4.const_get(tag.to_s.capitalize)
|
|
15
|
-
end
|
|
16
|
-
attribute :"#{tag}_value", tag_class, collection: true
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
xml do
|
|
20
|
-
Mml::V4::Configuration::SUPPORTED_TAGS.each do |tag|
|
|
21
|
-
map_element tag, to: :"#{tag}_value"
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|