| Class | MathMLWrapper |
| In: |
markup/simple_markup/mathml_wrapper.rb
|
| Parent: | Object |
This class is MathML module wrapper. If MathML module can not be loaded, methods in this module return raw argument without modification.
| MACRO_PATH | = | "mathml/macro" | $LOAD_PATH/MACRO_PATH/* files are parsed as TeX macro |
# File markup/simple_markup/mathml_wrapper.rb, line 12
12: def initialize
13: @load_error_flag = false
14: begin
15: require "mathml"
16: if !@@macro_input_flag
17: @@mathml_formula_macro = MathML::LaTeX::Parser.new
18: @@macro_input_flag = true
19: $LOAD_PATH.each{ |lpath|
20: macro_files = Dir::glob(File.join(lpath, MACRO_PATH, "*"))
21: macro_files.each{ |mfile|
22: if File.file?(mfile)
23: File.open(mfile, "r" ) { |io|
24: io.each{ |line|
25: begin
26: @@mathml_formula_macro.macro.parse(line)
27: rescue MathML::LaTeX::ParseError
28: macroerrormsg = $!.to_s
29: rescue
30: macroerrormsg = $!.to_s
31: end
32: if macroerrormsg
33: $stderr.puts "Warning: in #{mfile}, following TeX macro causes #{macroerrormsg.to_s}\n\n",
34: " #{line}\n\n"
35: end
36: }
37: }
38: end
39: }
40: }
41: end
42: rescue LoadError
43: @load_error_flag = true
44: end
45: end
# File markup/simple_markup/mathml_wrapper.rb, line 46
46: def parse(formula, block=false)
47: return formula if @load_error_flag
48: mathml_formula = @@mathml_formula_macro
49: begin
50: mathml_formula_str = mathml_formula.parse(formula, block).to_s
51: rescue MathML::LaTeX::ParseError
52: return formula, 1
53: rescue
54: return formula, 1
55: end
56: return mathml_formula_str, 0
57: end