mml 2.2.1 → 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.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +14 -4
  3. data/CLAUDE.md +79 -0
  4. data/README.adoc +166 -43
  5. data/lib/mml/base/deprecated_font_attributes.rb +31 -0
  6. data/lib/mml/base/maction.rb +28 -0
  7. data/lib/mml/base/maligngroup.rb +26 -0
  8. data/lib/mml/base/malignmark.rb +26 -0
  9. data/lib/mml/base/math.rb +23 -0
  10. data/lib/mml/base/menclose.rb +27 -0
  11. data/lib/mml/base/merror.rb +25 -0
  12. data/lib/mml/base/mfenced.rb +34 -0
  13. data/lib/mml/base/mfrac.rb +33 -0
  14. data/lib/mml/base/mfraction.rb +33 -0
  15. data/lib/mml/base/mglyph.rb +42 -0
  16. data/lib/mml/base/mi.rb +32 -0
  17. data/lib/mml/base/mlabeledtr.rb +37 -0
  18. data/lib/mml/base/mlongdiv.rb +31 -0
  19. data/lib/mml/base/mmultiscripts.rb +31 -0
  20. data/lib/mml/base/mn.rb +32 -0
  21. data/lib/mml/base/mo.rb +76 -0
  22. data/lib/mml/base/mover.rb +29 -0
  23. data/lib/mml/base/mpadded.rb +35 -0
  24. data/lib/mml/base/mphantom.rb +25 -0
  25. data/lib/mml/base/mprescripts.rb +24 -0
  26. data/lib/mml/base/mroot.rb +25 -0
  27. data/lib/mml/base/mrow.rb +29 -0
  28. data/lib/mml/base/ms.rb +37 -0
  29. data/lib/mml/base/mscarries.rb +33 -0
  30. data/lib/mml/base/mscarry.rb +29 -0
  31. data/lib/mml/base/msgroup.rb +31 -0
  32. data/lib/mml/base/msline.rb +34 -0
  33. data/lib/mml/base/mspace.rb +52 -0
  34. data/lib/mml/base/msqrt.rb +25 -0
  35. data/lib/mml/base/msrow.rb +27 -0
  36. data/lib/mml/base/mstack.rb +33 -0
  37. data/lib/mml/base/mstyle.rb +189 -0
  38. data/lib/mml/base/msub.rb +27 -0
  39. data/lib/mml/base/msubsup.rb +29 -0
  40. data/lib/mml/base/msup.rb +27 -0
  41. data/lib/mml/base/mtable.rb +57 -0
  42. data/lib/mml/base/mtd.rb +29 -0
  43. data/lib/mml/base/mtext.rb +32 -0
  44. data/lib/mml/base/mtr.rb +35 -0
  45. data/lib/mml/base/munder.rb +31 -0
  46. data/lib/mml/base/munderover.rb +31 -0
  47. data/lib/mml/base/none.rb +24 -0
  48. data/lib/mml/base/semantics.rb +23 -0
  49. data/lib/mml/base/v3_only/operator_attrs.rb +24 -0
  50. data/lib/mml/base/v3_only/style_attrs.rb +31 -0
  51. data/lib/mml/base/v3_only/table_attrs.rb +28 -0
  52. data/lib/mml/base/v3_only.rb +11 -0
  53. data/lib/mml/base/v4_attributes.rb +30 -0
  54. data/lib/mml/base.rb +51 -0
  55. data/lib/mml/common_elements.rb +85 -0
  56. data/lib/mml/context_configuration.rb +118 -0
  57. data/lib/mml/context_options.rb +64 -0
  58. data/lib/mml/namespace.rb +10 -0
  59. data/lib/mml/v3/common_elements.rb +8 -0
  60. data/lib/mml/v3/configuration.rb +4 -96
  61. data/lib/mml/v3/maction.rb +2 -14
  62. data/lib/mml/v3/maligngroup.rb +2 -12
  63. data/lib/mml/v3/malignmark.rb +2 -12
  64. data/lib/mml/v3/math.rb +3 -10
  65. data/lib/mml/v3/menclose.rb +3 -14
  66. data/lib/mml/v3/merror.rb +3 -12
  67. data/lib/mml/v3/mfenced.rb +3 -21
  68. data/lib/mml/v3/mfrac.rb +3 -20
  69. data/lib/mml/v3/mfraction.rb +3 -20
  70. data/lib/mml/v3/mglyph.rb +3 -38
  71. data/lib/mml/v3/mi.rb +3 -30
  72. data/lib/mml/v3/mlabeledtr.rb +2 -23
  73. data/lib/mml/v3/mlongdiv.rb +3 -18
  74. data/lib/mml/v3/mmultiscripts.rb +3 -20
  75. data/lib/mml/v3/mn.rb +3 -30
  76. data/lib/mml/v3/mo.rb +4 -78
  77. data/lib/mml/v3/mover.rb +3 -16
  78. data/lib/mml/v3/mpadded.rb +3 -22
  79. data/lib/mml/v3/mphantom.rb +3 -12
  80. data/lib/mml/v3/mprescripts.rb +2 -10
  81. data/lib/mml/v3/mroot.rb +3 -12
  82. data/lib/mml/v3/mrow.rb +3 -18
  83. data/lib/mml/v3/ms.rb +4 -36
  84. data/lib/mml/v3/mscarries.rb +3 -20
  85. data/lib/mml/v3/mscarry.rb +3 -16
  86. data/lib/mml/v3/msgroup.rb +3 -18
  87. data/lib/mml/v3/msline.rb +2 -20
  88. data/lib/mml/v3/mspace.rb +3 -50
  89. data/lib/mml/v3/msqrt.rb +3 -12
  90. data/lib/mml/v3/msrow.rb +3 -14
  91. data/lib/mml/v3/mstack.rb +3 -20
  92. data/lib/mml/v3/mstyle.rb +5 -204
  93. data/lib/mml/v3/msub.rb +3 -14
  94. data/lib/mml/v3/msubsup.rb +3 -16
  95. data/lib/mml/v3/msup.rb +3 -14
  96. data/lib/mml/v3/mtable.rb +3 -53
  97. data/lib/mml/v3/mtd.rb +3 -16
  98. data/lib/mml/v3/mtext.rb +3 -30
  99. data/lib/mml/v3/mtr.rb +2 -21
  100. data/lib/mml/v3/munder.rb +3 -18
  101. data/lib/mml/v3/munderover.rb +3 -18
  102. data/lib/mml/v3/namespace.rb +1 -4
  103. data/lib/mml/v3/none.rb +2 -10
  104. data/lib/mml/v3/semantics.rb +3 -12
  105. data/lib/mml/v3.rb +51 -77
  106. data/lib/mml/v4/a.rb +4 -13
  107. data/lib/mml/v4/common_elements.rb +13 -0
  108. data/lib/mml/v4/configuration.rb +4 -97
  109. data/lib/mml/v4/maction.rb +4 -19
  110. data/lib/mml/v4/maligngroup.rb +4 -17
  111. data/lib/mml/v4/malignmark.rb +4 -17
  112. data/lib/mml/v4/math.rb +4 -14
  113. data/lib/mml/v4/menclose.rb +4 -18
  114. data/lib/mml/v4/merror.rb +4 -16
  115. data/lib/mml/v4/mfenced.rb +4 -25
  116. data/lib/mml/v4/mfrac.rb +4 -24
  117. data/lib/mml/v4/mfraction.rb +4 -20
  118. data/lib/mml/v4/mglyph.rb +4 -35
  119. data/lib/mml/v4/mi.rb +4 -30
  120. data/lib/mml/v4/mlabeledtr.rb +6 -23
  121. data/lib/mml/v4/mlongdiv.rb +4 -18
  122. data/lib/mml/v4/mmultiscripts.rb +4 -24
  123. data/lib/mml/v4/mn.rb +4 -29
  124. data/lib/mml/v4/mo.rb +4 -75
  125. data/lib/mml/v4/mover.rb +4 -20
  126. data/lib/mml/v4/mpadded.rb +4 -26
  127. data/lib/mml/v4/mphantom.rb +4 -16
  128. data/lib/mml/v4/mprescripts.rb +4 -11
  129. data/lib/mml/v4/mroot.rb +4 -16
  130. data/lib/mml/v4/mrow.rb +4 -20
  131. data/lib/mml/v4/ms.rb +4 -34
  132. data/lib/mml/v4/mscarries.rb +4 -20
  133. data/lib/mml/v4/mscarry.rb +4 -16
  134. data/lib/mml/v4/msgroup.rb +4 -18
  135. data/lib/mml/v4/msline.rb +4 -21
  136. data/lib/mml/v4/mspace.rb +4 -49
  137. data/lib/mml/v4/msqrt.rb +4 -16
  138. data/lib/mml/v4/msrow.rb +4 -18
  139. data/lib/mml/v4/mstack.rb +4 -24
  140. data/lib/mml/v4/mstyle.rb +4 -186
  141. data/lib/mml/v4/msub.rb +4 -18
  142. data/lib/mml/v4/msubsup.rb +4 -20
  143. data/lib/mml/v4/msup.rb +4 -18
  144. data/lib/mml/v4/mtable.rb +4 -55
  145. data/lib/mml/v4/mtd.rb +4 -20
  146. data/lib/mml/v4/mtext.rb +4 -29
  147. data/lib/mml/v4/mtr.rb +4 -25
  148. data/lib/mml/v4/munder.rb +4 -22
  149. data/lib/mml/v4/munderover.rb +4 -22
  150. data/lib/mml/v4/namespace.rb +1 -4
  151. data/lib/mml/v4/none.rb +6 -11
  152. data/lib/mml/v4/semantics.rb +4 -12
  153. data/lib/mml/v4.rb +52 -74
  154. data/lib/mml/version.rb +1 -1
  155. data/lib/mml/versioned_parser.rb +46 -0
  156. data/lib/mml.rb +34 -6
  157. metadata +60 -4
  158. data/lib/mml/v3/common_attributes.rb +0 -22
  159. data/lib/mml/v4/common_attributes.rb +0 -26
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mfrac
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :linethickness, :string
13
+ attribute :numalign, :string
14
+ attribute :denomalign, :string
15
+ attribute :bevelled, :string
16
+
17
+ xml do
18
+ namespace Mml::Namespace
19
+ element "mfrac"
20
+ mixed_content
21
+
22
+ map_attribute "mathcolor", to: :mathcolor
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "linethickness", to: :linethickness
25
+ map_attribute "numalign", to: :numalign
26
+ map_attribute "denomalign", to: :denomalign
27
+ map_attribute "bevelled", to: :bevelled
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mfraction
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :linethickness, :string
13
+ attribute :numalign, :string
14
+ attribute :denomalign, :string
15
+ attribute :bevelled, :string
16
+
17
+ xml do
18
+ namespace Mml::Namespace
19
+ element "mfraction"
20
+ mixed_content
21
+
22
+ map_attribute "mathcolor", to: :mathcolor
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "linethickness", to: :linethickness
25
+ map_attribute "numalign", to: :numalign
26
+ map_attribute "denomalign", to: :denomalign
27
+ map_attribute "bevelled", to: :bevelled
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mglyph
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :alt, :string
11
+ attribute :src, :string
12
+ attribute :width, :string
13
+ attribute :index, :integer
14
+ attribute :height, :string
15
+ attribute :valign, :string
16
+ attribute :mathvariant, :string
17
+ attribute :mathbackground, :string
18
+
19
+ attribute :mathsize, :string
20
+ attribute :mathcolor, :string
21
+
22
+ xml do
23
+ namespace Mml::Namespace
24
+ element "mglyph"
25
+
26
+ map_attribute "src", to: :src
27
+ map_attribute "alt", to: :alt
28
+ map_attribute "index", to: :index
29
+ map_attribute "width", to: :width
30
+ map_attribute "height", to: :height
31
+ map_attribute "valign", to: :valign
32
+ map_attribute "mathvariant", to: :mathvariant
33
+ map_attribute "mathbackground", to: :mathbackground
34
+
35
+ map_attribute "mathsize", to: :mathsize
36
+ map_attribute "mathcolor", to: :mathcolor
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mi
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :dir, :string
11
+ attribute :value, :string
12
+ attribute :mathsize, :string
13
+ attribute :mathcolor, :string
14
+ attribute :mathvariant, :string
15
+ attribute :mathbackground, :string
16
+
17
+ xml do
18
+ namespace Mml::Namespace
19
+ element "mi"
20
+
21
+ map_content to: :value
22
+ map_attribute "dir", to: :dir
23
+ map_attribute "mathsize", to: :mathsize
24
+ map_attribute "mathcolor", to: :mathcolor
25
+ map_attribute "mathvariant", to: :mathvariant
26
+ map_attribute "mathbackground", to: :mathbackground
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mlabeledtr
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :columnalign, :string
12
+ attribute :mathcolor, :string
13
+ attribute :rowalign, :string
14
+ attribute :id, :string
15
+ attribute :mtd_value, :mtd, collection: true
16
+
17
+ attribute :groupalign, :string
18
+
19
+ xml do
20
+ namespace Mml::Namespace
21
+ element "mlabeledtr"
22
+ mixed_content
23
+
24
+ map_attribute "mathbackground", to: :mathbackground
25
+ map_attribute "columnalign", to: :columnalign
26
+ map_attribute "mathcolor", to: :mathcolor
27
+ map_attribute "rowalign", to: :rowalign
28
+ map_attribute "id", to: :id
29
+ map_element "mtd", to: :mtd_value
30
+
31
+ map_attribute "groupalign", to: :groupalign
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mlongdiv
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :longdivstyle, :string
12
+ attribute :mathcolor, :string
13
+ attribute :position, :integer
14
+ attribute :shift, :integer
15
+
16
+ xml do
17
+ namespace Mml::Namespace
18
+ element "mlongdiv"
19
+ mixed_content
20
+
21
+ map_attribute "mathbackground", to: :mathbackground
22
+ map_attribute "longdivstyle", to: :longdivstyle
23
+ map_attribute "mathcolor", to: :mathcolor
24
+ map_attribute "position", to: :position
25
+ map_attribute "shift", to: :shift
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mmultiscripts
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :subscriptshift, :string
13
+ attribute :superscriptshift, :string
14
+ attribute :mprescripts_value, :mprescripts
15
+
16
+ xml do
17
+ namespace Mml::Namespace
18
+ element "mmultiscripts"
19
+ mixed_content
20
+
21
+ map_attribute "mathcolor", to: :mathcolor
22
+ map_attribute "mathbackground", to: :mathbackground
23
+ map_attribute "subscriptshift", to: :subscriptshift
24
+ map_attribute "superscriptshift", to: :superscriptshift
25
+ map_element "mprescripts", to: :mprescripts_value
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mn
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :value, :string
11
+ attribute :mathcolor, :string
12
+ attribute :mathbackground, :string
13
+ attribute :mathvariant, :string
14
+ attribute :mathsize, :string
15
+ attribute :dir, :string
16
+
17
+ xml do
18
+ namespace Mml::Namespace
19
+ element "mn"
20
+
21
+ map_content to: :value
22
+ map_attribute "mathcolor", to: :mathcolor
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "mathvariant", to: :mathvariant
25
+ map_attribute "mathsize", to: :mathsize
26
+ map_attribute "dir", to: :dir
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mo
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :value, :string
11
+ attribute :mathcolor, :string
12
+ attribute :mathbackground, :string
13
+ attribute :mathvariant, :string
14
+ attribute :mathsize, :string
15
+ attribute :dir, :string
16
+ attribute :form, :string
17
+ attribute :lspace, :string
18
+ attribute :rspace, :string
19
+ attribute :stretchy, :string
20
+ attribute :symmetric, :string
21
+ attribute :maxsize, :string
22
+ attribute :minsize, :string
23
+ attribute :largeop, :string
24
+ attribute :movablelimits, :string
25
+ attribute :accent, :string
26
+ attribute :linebreak, :string
27
+ attribute :lineleading, :string
28
+ attribute :linebreakstyle, :string
29
+ attribute :linebreakmultchar, :string
30
+ attribute :indentalign, :string
31
+ attribute :indentshift, :string
32
+ attribute :indenttarget, :string
33
+ attribute :indentalignfirst, :string
34
+ attribute :indentshiftfirst, :string
35
+ attribute :indentalignlast, :string
36
+ attribute :indentshiftlast, :string
37
+
38
+ # rubocop:disable Metrics/BlockLength
39
+ xml do
40
+ namespace Mml::Namespace
41
+ element "mo"
42
+
43
+ map_content to: :value
44
+ map_attribute "dir", to: :dir
45
+ map_attribute "form", to: :form
46
+ map_attribute "accent", to: :accent
47
+ map_attribute "lspace", to: :lspace
48
+ map_attribute "rspace", to: :rspace
49
+ map_attribute "maxsize", to: :maxsize
50
+ map_attribute "minsize", to: :minsize
51
+ map_attribute "largeop", to: :largeop
52
+ map_attribute "stretchy", to: :stretchy
53
+ map_attribute "mathsize", to: :mathsize
54
+ map_attribute "linebreak", to: :linebreak
55
+ map_attribute "symmetric", to: :symmetric
56
+ map_attribute "mathcolor", to: :mathcolor
57
+ map_attribute "mathvariant", to: :mathvariant
58
+ map_attribute "lineleading", to: :lineleading
59
+ map_attribute "indentalign", to: :indentalign
60
+ map_attribute "indentshift", to: :indentshift
61
+ map_attribute "indenttarget", to: :indenttarget
62
+ map_attribute "movablelimits", to: :movablelimits
63
+ map_attribute "linebreakstyle", to: :linebreakstyle
64
+ map_attribute "mathbackground", to: :mathbackground
65
+ map_attribute "indentalignlast", to: :indentalignlast
66
+ map_attribute "indentshiftlast", to: :indentshiftlast
67
+ map_attribute "indentalignfirst", to: :indentalignfirst
68
+ map_attribute "indentshiftfirst", to: :indentshiftfirst
69
+ map_attribute "linebreakmultchar", to: :linebreakmultchar
70
+ end
71
+ # rubocop:enable Metrics/BlockLength
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mover
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :mathcolor, :string
12
+ attribute :accent, :string
13
+ attribute :align, :string
14
+
15
+ xml do
16
+ namespace Mml::Namespace
17
+ element "mover"
18
+ mixed_content
19
+
20
+ map_attribute "mathbackground", to: :mathbackground
21
+ map_attribute "mathcolor", to: :mathcolor
22
+ map_attribute "accent", to: :accent
23
+ map_attribute "align", to: :align
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mpadded
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :mathcolor, :string
12
+ attribute :voffset, :string
13
+ attribute :height, :string
14
+ attribute :lspace, :string
15
+ attribute :depth, :string
16
+ attribute :width, :string
17
+
18
+ xml do
19
+ namespace Mml::Namespace
20
+ element "mpadded"
21
+ mixed_content
22
+
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "mathcolor", to: :mathcolor
25
+ map_attribute "voffset", to: :voffset
26
+ map_attribute "height", to: :height
27
+ map_attribute "lspace", to: :lspace
28
+ map_attribute "depth", to: :depth
29
+ map_attribute "width", to: :width
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mphantom
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ element "mphantom"
16
+ mixed_content
17
+
18
+ map_attribute "mathcolor", to: :mathcolor
19
+ map_attribute "mathbackground", to: :mathbackground
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mprescripts
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ element "mprescripts"
16
+
17
+ map_attribute "mathcolor", to: :mathcolor
18
+ map_attribute "mathbackground", to: :mathbackground
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mroot
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+
13
+ xml do
14
+ namespace Mml::Namespace
15
+ element "mroot"
16
+ mixed_content
17
+
18
+ map_attribute "mathcolor", to: :mathcolor
19
+ map_attribute "mathbackground", to: :mathbackground
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mrow
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :mathcolor, :string
12
+ attribute :content, :string
13
+ attribute :dir, :string
14
+
15
+ xml do
16
+ namespace Mml::Namespace
17
+ element "mrow"
18
+ mixed_content
19
+
20
+ map_content to: :content
21
+ map_attribute "dir", to: :dir
22
+ map_attribute "mathcolor", to: :mathcolor
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Ms
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathbackground, :string
11
+ attribute :mathvariant, :string
12
+ attribute :mathcolor, :string
13
+ attribute :mathsize, :string
14
+ attribute :lquote, :string
15
+ attribute :rquote, :string
16
+ attribute :value, :string
17
+ attribute :dir, :string
18
+
19
+ xml do
20
+ namespace Mml::Namespace
21
+ element "ms"
22
+ mixed_content
23
+
24
+ map_content to: :value
25
+ map_attribute "mathbackground", to: :mathbackground
26
+ map_attribute "mathvariant", to: :mathvariant
27
+ map_attribute "mathcolor", to: :mathcolor
28
+ map_attribute "mathsize", to: :mathsize
29
+ map_attribute "lquote", to: :lquote
30
+ map_attribute "rquote", to: :rquote
31
+ map_attribute "dir", to: :dir
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mscarries
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :scriptsizemultiplier, :integer
11
+ attribute :mathbackground, :string
12
+ attribute :mathcolor, :string
13
+ attribute :position, :integer
14
+ attribute :location, :string
15
+ attribute :crossout, :string
16
+
17
+ xml do
18
+ namespace Mml::Namespace
19
+ element "mscarries"
20
+ mixed_content
21
+
22
+ map_attribute "scriptsizemultiplier", to: :scriptsizemultiplier
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "mathcolor", to: :mathcolor
25
+ map_attribute "position", to: :position
26
+ map_attribute "location", to: :location
27
+ map_attribute "crossout", to: :crossout
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Mscarry
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :location, :string
13
+ attribute :crossout, :string
14
+
15
+ xml do
16
+ namespace Mml::Namespace
17
+ element "mscarry"
18
+ mixed_content
19
+
20
+ map_attribute "mathcolor", to: :mathcolor
21
+ map_attribute "mathbackground", to: :mathbackground
22
+ map_attribute "location", to: :location
23
+ map_attribute "crossout", to: :crossout
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mml
4
+ module Base
5
+ module Msgroup
6
+ # NOTE: class_eval resolves constants in module's lexical scope.
7
+ # Use fully qualified names (e.g., Mml::Namespace).
8
+ def self.included(klass)
9
+ klass.class_eval do
10
+ attribute :mathcolor, :string
11
+ attribute :mathbackground, :string
12
+ attribute :position, :integer
13
+ attribute :shift, :integer
14
+ attribute :msgroup_text, :string
15
+
16
+ xml do
17
+ namespace Mml::Namespace
18
+ element "msgroup"
19
+ mixed_content
20
+
21
+ map_content to: :msgroup_text
22
+ map_attribute "mathcolor", to: :mathcolor
23
+ map_attribute "mathbackground", to: :mathbackground
24
+ map_attribute "position", to: :position
25
+ map_attribute "shift", to: :shift
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end