class PseudoHiki::HtmlFormat

Constants

COLSPAN
Formatter
ImgFormat

for InlineParser

LI
LinkSep
PLUGIN
SPACE

Attributes

element_name[R]
format_class[W]
formatter[W]
generator[W]

Public Class Methods

create(options=nil) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 45
def self.create(options=nil)
  self
end
default_options() click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 49
def self.default_options
  { :auto_link_in_verbatim => @auto_link_in_verbatim }
end
format(tree, options=nil, memo=nil) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 53
def self.format(tree, options=nil, memo=nil)
  cur_auto_link_setting = @auto_link_in_verbatim
  options = default_options unless options
  @auto_link_in_verbatim = options[:auto_link_in_verbatim]
  formatter = get_plain
  tree.accept(formatter, memo)
ensure
  @auto_link_in_verbatim = cur_auto_link_setting
end
get_plain() click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 41
def self.get_plain
  self::Formatter[PlainNode]
end
new(element_name, generator=HtmlElement) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 63
def initialize(element_name, generator=HtmlElement)
  @element_name = element_name
  @generator = generator
  @formatter = Formatter
  @format_class = self.class
end
setup_new_formatter(new_formatter, generator) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 32
def self.setup_new_formatter(new_formatter, generator)
  new_formatter.each do |node_class, formatter|
    new_formatter[node_class] = formatter.clone
    new_formatter[node_class].generator = generator
    new_formatter[node_class].formatter = new_formatter
    new_formatter[node_class].format_class = self
  end
end

Public Instance Methods

create_element(tree=nil) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 85
def create_element(tree=nil)
  @generator.create(@element_name)
end
push_visited_results(element, tree, memo) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 75
def push_visited_results(element, tree, memo)
  tree.each {|token| element.push visited_result(token, memo) }
end
split_into_parts(tree, separator) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 89
def split_into_parts(tree, separator)
  chunks = []
  tree = tree.dup
  while sep_index = tree.index(separator)
    chunks.push tree.shift(sep_index)
    tree.shift
  end
  chunks.push tree
end
visit(tree, memo) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 79
def visit(tree, memo)
  htmlelement = create_element(tree)
  push_visited_results(htmlelement, tree, memo)
  htmlelement
end
visited_result(element, memo) click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 70
def visited_result(element, memo)
  visitor = @formatter[element.class] || @formatter[PlainNode]
  element.accept(visitor, memo)
end