omml2mathml 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -11
- data/lib/omml2mathml/convert.rb +18 -15
- data/lib/omml2mathml/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8d3157cca03b596ae40b3f9d7712ee732b84e4ef8fe4146d1f5cb3f8ca16730
|
4
|
+
data.tar.gz: d127daebb8555da2fe48d72b990967003963302f9aa5a68f3c1b4b0182dfae4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 187e5d2d4966941fd5856898b9b243329747d28277105d0f1aabfefed913628e65d97c1d1ea4c89e2cd1f88391e0335ecb47d5eaabe488562f952a468a497ef6
|
7
|
+
data.tar.gz: 1766b0341e0f43919f88fc05adb4b61326124563545bc3a5f3d82502eaaafd0486a45ff5f83a0533c348f779195e44b2557116913ea35153f9173c5c512e5907
|
data/.travis.yml
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
dist: trusty
|
2
1
|
language: ruby
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
cache: bundler
|
3
|
+
os:
|
4
|
+
- linux
|
5
|
+
- osx
|
8
6
|
rvm:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
- 2.5
|
8
|
+
- 2.4
|
9
|
+
- 2.3
|
10
|
+
- ruby-head
|
11
|
+
before_install:
|
12
|
+
- gem install bundler -v 2.0.1
|
13
|
+
- bundle update
|
14
14
|
matrix:
|
15
15
|
allow_failures:
|
16
16
|
- rvm: ruby-head
|
data/lib/omml2mathml/convert.rb
CHANGED
@@ -132,7 +132,7 @@ zeroWid
|
|
132
132
|
|
133
133
|
@mathml = {}
|
134
134
|
@tags.each do |t|
|
135
|
-
@mathml["m_#{t.downcase}"] =
|
135
|
+
@mathml["m_#{t.downcase}"] = t
|
136
136
|
end
|
137
137
|
|
138
138
|
html = Nokogiri::HTML.parse(File.read(filename, encoding: "utf-8").
|
@@ -155,26 +155,29 @@ zeroWid
|
|
155
155
|
end
|
156
156
|
end
|
157
157
|
xml = Nokogiri::XML(html.to_xhtml)
|
158
|
+
ns = xml.root.add_namespace 'm', "http://schemas.microsoft.com/office/2004/12/omml"
|
158
159
|
xml.traverse do |t|
|
159
160
|
if t.element? && @mathml.has_key?(t.name)
|
160
161
|
t.name = @mathml[t.name]
|
162
|
+
t.namespace = ns
|
161
163
|
end
|
162
164
|
end
|
163
165
|
#xml.xpath("//xmlns:link | //xmlns:style | //*[@class = 'MsoToc1'] | //*[@class = 'MsoToc2'] |//*[@class = 'MsoToc3'] |//*[@class = 'MsoToc4'] |//*[@class = 'MsoToc5'] |//*[@class = 'MsoToc6'] |//*[@class = 'MsoToc7'] |//*[@class = 'MsoToc8'] |//*[@class = 'MsoToc9'] ").each { |x| x.remove }
|
164
|
-
xml.xpath("//*").each do |x|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
166
|
+
xml.xpath("//*[local-name()='oMath' or local-name()='oMathPara']").each do |x|
|
167
|
+
# prepare input: delete xmlns & change
|
168
|
+
input = Nokogiri::XML(x.to_xml.sub(/<m:(oMath|oMathPara)>/,
|
169
|
+
"<m:\\1 xmlns:m='http://schemas.openxmlformats.org/officeDocument/2006/math'>"))
|
170
|
+
out = @xslt.transform(input)
|
171
|
+
mml = out.to_xml.gsub(/<\?xml[^>]+>/, '').
|
172
|
+
gsub(%r{<([^:/! >]+ xmlns="http://www.w3.org/1998/Math/MathML")},
|
173
|
+
"<mml:\\1").
|
174
|
+
gsub(%r{<([^:/!>]+)>}, "<mml:\\1>").
|
175
|
+
gsub(%r{</([^:/!>]+)>}, "</mml:\\1>").
|
176
|
+
gsub(%r{ xmlns="http://www.w3.org/1998/Math/MathML"}, "").
|
177
|
+
gsub(%r{ xmlns:mml="http://www.w3.org/1998/Math/MathML"}, "").
|
178
|
+
gsub(%r{ xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"}, "").
|
179
|
+
gsub(%r{ xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"}, "")
|
180
|
+
x.replace("<mml:math>#{mml}</mml:math>")
|
178
181
|
end
|
179
182
|
xml.to_s
|
180
183
|
end
|
data/lib/omml2mathml/version.rb
CHANGED