| 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.
| MATHML_NAME | = | "mathml" | Mathml library name | |
| MACRO_PATH | = | "#{MATHML_NAME}/macro" | $LOAD_PATH/MACRO_PATH/* files are parsed as TeX macro |
# File markup/simple_markup/mathml_wrapper.rb, line 15
15: def initialize
16: @load_error_flag = false
17: begin
18: require MATHML_NAME
19: if !@@macro_input_flag
20: @@mathml_formula_macro = MathML::LaTeX::Parser.new
21: @@macro_input_flag = true
22: $LOAD_PATH.each{ |lpath|
23: macro_files = Dir::glob(File.join(lpath, MACRO_PATH, "*"))
24: macro_files.each{ |mfile|
25: if File.file?(mfile)
26: File.open(mfile, "r" ) { |io|
27: io.each{ |line|
28: begin
29: @@mathml_formula_macro.macro.parse(line)
30: rescue MathML::LaTeX::ParseError
31: macroerrormsg = $!.to_s
32: rescue
33: macroerrormsg = $!.to_s
34: end
35: if macroerrormsg
36: $stderr.puts "Warning: in #{mfile}, following TeX macro causes #{macroerrormsg.to_s}\n\n",
37: " #{line}\n\n"
38: end
39: }
40: }
41: end
42: }
43: }
44: end
45: rescue LoadError
46: @load_error_flag = true
47: end
48: end
# File markup/simple_markup/mathml_wrapper.rb, line 49
49: def parse(formula, block=false)
50: return formula if @load_error_flag
51: mathml_formula = @@mathml_formula_macro
52: begin
53: mathml_formula_str = mathml_formula.parse(formula, block).to_s
54: rescue MathML::LaTeX::ParseError
55: return formula, 1
56: rescue
57: return formula, 1
58: end
59: return mathml_formula_str, 0
60: end