module Jekyll::AsciiMathFilter
Public Instance Methods
asciimath(input)
click to toggle source
# File lib/jekyll_asciimath/jekyll_asciimath.rb, line 15 def asciimath(input) site_config = @context.registers[:site].config delimiter = site_config['asciimath_delimiter'] || '$$' output_format = site_config['asciimath_output_format'] output_format = 'mathml' unless %w(html mathml).include?(output_format) delim_regex = Regexp.quote(delimiter) asciimath_regex = Regexp.new("(?<=#{delim_regex})[^#{delim_regex}]+(?=#{delim_regex})") return input if input.scan(asciimath_regex).size == 0 pieces = "#{delimiter} #{input} #{delimiter}".scan(asciimath_regex) parsed_pieces = [] pieces.each_with_index { |piece, idx| if idx.odd? parsed_pieces << AsciiMath.parse(piece).send("to_#{output_format}") elsif piece != ' ' parsed_pieces << piece end } parsed_pieces.join('') end