Outputs RDoc markup as HTML
- A
- C
- E
- G
- H
- I
- L
- N
- S
- T
Creates a new formatter that will output HTML
# File ../ruby/lib/rdoc/markup/to_html.rb, line 65 def initialize markup = nil super @th = nil @in_list_entry = nil @list = nil @from_path = '' # external links @markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK) # and links of the form <text>[<url>] @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\])/, :TIDYLINK) init_tags end
special
is a potential link. The following schemes are
handled:
- mailto:
-
Inserted as-is.
- http:
-
Links are checked to see if they reference an image. If so, that image gets inserted using an
<img>
tag. Otherwise a conventional<a href>
is used. link:
-
Reference to a local file relative to the output directory.
This special
is a link where the label is different from the
URL label[url]
or {long label}[url]
LIST_TYPE_TO_HTML | = | { :BULLET => ['<ul>', '</ul>'], :LABEL => ['<dl class="rdoc-list">', '</dl>'], :LALPHA => ['<ol style="display: lower-alpha">', '</ol>'], :NOTE => ['<table class="rdoc-list">', '</table>'], :NUMBER => ['<ol>', '</ol>'], :UALPHA => ['<ol style="display: upper-alpha">', '</ol>'], } |
Maps RDoc::Markup::Parser::LIST_TOKENS types to HTML tags |
[RW] | from_path | Path to this document for relative links |
Converts a target url to one that is relative to a given path
# File ../ruby/lib/rdoc/markup/to_html.rb, line 39 def self.gen_relative_url(path, target) from = File.dirname path to, to_file = File.split target from = from.split "/" to = to.split "/" from.delete '.' to.delete '.' while from.size > 0 and to.size > 0 and from[0] == to[0] do from.shift to.shift end from.fill ".." from.concat to from << to_file File.join(*from) end
Generate a link for url
, labeled with text
.
Handles the special cases for img: and link: described under #handle_special_HYPERLINK
# File ../ruby/lib/rdoc/markup/to_html.rb, line 239 def gen_url(url, text) if url =~ /([A-Za-z]+):(.*)/ then type = $1 path = $2 else type = "http" path = url url = "http://#{url}" end if type == "link" then url = if path[0, 1] == '#' then # is this meaningful? path else self.class.gen_relative_url @from_path, path end end if (type == "http" or type == "https" or type == "link") and url =~ /\.(gif|png|jpg|jpeg|bmp)$/ then "<img src=\"#{url}\" />" else "<a href=\"#{url}\">#{text.sub(%r{^#{type}:/*}, '')}</a>" end end
Determines the HTML list element for list_type
and
open_tag
Returns the HTML end-tag for list_type
# File ../ruby/lib/rdoc/markup/to_html.rb, line 303 def list_end_for(list_type) case list_type when :BULLET, :LALPHA, :NUMBER, :UALPHA then "</li>" when :LABEL then "</dd>" when :NOTE then "</td></tr>" else raise RDoc::Error, "Invalid list type: #{list_type.inspect}" end end
Returns the HTML tag for list_type
, possible using a label
from list_item
# File ../ruby/lib/rdoc/markup/to_html.rb, line 287 def list_item_start(list_item, list_type) case list_type when :BULLET, :LALPHA, :NUMBER, :UALPHA then "<li>" when :LABEL then "<dt>#{to_html list_item.label}</dt>\n<dd>" when :NOTE then "<tr><td class=\"rdoc-term\"><p>#{to_html list_item.label}</p></td>\n<td>" else raise RDoc::Error, "Invalid list type: #{list_type.inspect}" end end
Converts item
to HTML using RDoc::Text#to_html
Adds blank_line
to the output
Adds heading
to the output
Finishes consumption of list
Finishes consumption of list_item
Prepares the visitor for consuming list_item
Prepares the visitor for consuming list
Adds paragraph
to the output
Adds raw
to the output
Adds rule
to the output
Adds verbatim
to the output
Returns the generated output