# File rdoc/markup/simple_markup/to_html.rb, line 105 def accept_blank_line(am, fragment) # @res << annotate("<p />") << "\n" end
# File rdoc/markup/simple_markup/to_html.rb, line 109 def accept_heading(am, fragment) @res << convert_heading(fragment.head_level, am.flow(fragment.txt)) end
# File rdoc/markup/simple_markup/to_html.rb, line 89 def accept_list_end(am, fragment) if tag = @in_list_entry.pop @res << annotate(tag) << "\n" end @res << html_list_name(fragment.type, false) <<"\n" end
# File rdoc/markup/simple_markup/to_html.rb, line 96 def accept_list_item(am, fragment) if tag = @in_list_entry.last @res << annotate(tag) << "\n" end @res << list_item_start(am, fragment) @res << wrap(convert_flow(am.flow(fragment.txt))) << "\n" @in_list_entry[-1] = list_end_for(fragment.type) end
# File rdoc/markup/simple_markup/to_html.rb, line 84 def accept_list_start(am, fragment) @res << html_list_name(fragment.type, true) <<"\n" @in_list_entry.push false end
# File rdoc/markup/simple_markup/to_html.rb, line 66 def accept_paragraph(am, fragment) @res << annotate("<p>") + "\n" @res << wrap(convert_flow(am.flow(fragment.txt))) @res << annotate("</p>") + "\n" end
# File rdoc/markup/simple_markup/to_html.rb, line 78 def accept_rule(am, fragment) size = fragment.param size = 10 if size > 10 @res << "<hr size=\"#{size}\"></hr>" end
# File rdoc/markup/simple_markup/to_html.rb, line 72 def accept_verbatim(am, fragment) @res << annotate("<pre>") + "\n" @res << CGI.escapeHTML(fragment.txt) @res << annotate("</pre>") << "\n" end
Add a new set of HTML tags for an attribute. We allow separate start and end tags for flexibility
# File rdoc/markup/simple_markup/to_html.rb, line 40 def add_tag(name, start, stop) @attr_tags << InlineTag.new(SM::Attribute.bitmap_for(name), start, stop) end
Given an HTML tag, decorate it with class information and the like if required. This is a no-op in the base class, but is overridden in HTML output classes that implement style sheets
# File rdoc/markup/simple_markup/to_html.rb, line 50 def annotate(tag) tag end
# File rdoc/markup/simple_markup/to_html.rb, line 62 def end_accepting @res end
Here's the client side of the visitor pattern
# File rdoc/markup/simple_markup/to_html.rb, line 57 def start_accepting @res = "" @in_list_entry = [] end
This is a higher speed (if messier) version of wrap
# File rdoc/markup/simple_markup/to_html.rb, line 115 def wrap(txt, line_len = 76) res = "" sp = 0 ep = txt.length while sp < ep # scan back for a space p = sp + line_len - 1 if p >= ep p = ep else while p > sp and txt[p] != ?\s p -= 1 end if p <= sp p = sp + line_len while p < ep and txt[p] != ?\s p += 1 end end end res << txt[sp...p] << "\n" sp = p sp += 1 while sp < ep and txt[sp] == ?\s end res end