summaryrefslogtreecommitdiff
path: root/lib/rdoc
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-12 22:23:00 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-12 22:23:00 +0000
commitb797fdc7e88c5ad7552f1c95081ad3c60507e3ee (patch)
treeeb49501cbc096c12759bc4d92d080dfdfd196710 /lib/rdoc
parent4660cc6fb9bba765ca259bc636d59e8c3c4620b7 (diff)
Separate HTML linking and crossreferencing into separate files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc')
-rw-r--r--lib/rdoc/generator.rb4
-rw-r--r--lib/rdoc/markup/to_html.rb63
-rw-r--r--lib/rdoc/markup/to_html_crossref.rb (renamed from lib/rdoc/markup/to_html_hyperlink.rb)65
3 files changed, 66 insertions, 66 deletions
diff --git a/lib/rdoc/generator.rb b/lib/rdoc/generator.rb
index 0e5b4a8cc0..9859a3244f 100644
--- a/lib/rdoc/generator.rb
+++ b/lib/rdoc/generator.rb
@@ -1,7 +1,7 @@
require 'cgi'
require 'rdoc'
require 'rdoc/options'
-require 'rdoc/markup/to_html_hyperlink'
+require 'rdoc/markup/to_html_crossref'
require 'rdoc/template'
module RDoc::Generator
@@ -81,7 +81,7 @@ module RDoc::Generator
return '' unless str
unless defined? @formatter then
- @formatter = RDoc::Markup::ToHtmlHyperlink.new(path, self,
+ @formatter = RDoc::Markup::ToHtmlCrossref.new(path, self,
@options.show_hash)
end
diff --git a/lib/rdoc/markup/to_html.rb b/lib/rdoc/markup/to_html.rb
index 4fe16f8e91..3a500a4f0e 100644
--- a/lib/rdoc/markup/to_html.rb
+++ b/lib/rdoc/markup/to_html.rb
@@ -20,10 +20,73 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
def initialize
super
+ # external hyperlinks
+ @markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK)
+
+ # and links of the form <text>[<url>]
+ @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK)
+
init_tags
end
##
+ # Generate a hyperlink for url, labeled with text. Handle the
+ # special cases for img: and link: described under handle_special_HYPEDLINK
+
+ 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
+ HTML.gen_url @from_path, path
+ end
+ end
+
+ if (type == "http" 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
+
+ ##
+ # And we're invoked with a potential external hyperlink mailto:
+ # just gets inserted. 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. We also
+ # support a special type of hyperlink, link:, which is a reference
+ # to a local file whose path is relative to the --op directory.
+
+ def handle_special_HYPERLINK(special)
+ url = special.text
+ gen_url url, url
+ end
+
+ ##
+ # Here's a hypedlink where the label is different to the URL
+ # <label>[url] or {long label}[url]
+
+ def handle_special_TIDYLINK(special)
+ text = special.text
+
+ return text unless text =~ /\{(.*?)\}\[(.*?)\]/ or text =~ /(\S+)\[(.*?)\]/
+
+ label = $1
+ url = $2
+ gen_url url, label
+ end
+
+ ##
# Set up the standard mapping of attributes to HTML tags
def init_tags
diff --git a/lib/rdoc/markup/to_html_hyperlink.rb b/lib/rdoc/markup/to_html_crossref.rb
index 58adaa8cb0..32c922e70b 100644
--- a/lib/rdoc/markup/to_html_hyperlink.rb
+++ b/lib/rdoc/markup/to_html_crossref.rb
@@ -5,7 +5,7 @@ require 'rdoc/markup/to_html'
# the AllReferences list. Those that are found (like AllReferences in this
# comment) will be hyperlinked
-class RDoc::Markup::ToHtmlHyperlink < RDoc::Markup::ToHtml
+class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
attr_accessor :context
@@ -29,12 +29,6 @@ class RDoc::Markup::ToHtmlHyperlink < RDoc::Markup::ToHtml
)/x,
:CROSSREF)
- # external hyperlinks
- @markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK)
-
- # and links of the form <text>[<url>]
- @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK)
-
@from_path = from_path
@context = context
@show_hash = show_hash
@@ -88,62 +82,5 @@ class RDoc::Markup::ToHtmlHyperlink < RDoc::Markup::ToHtml
out
end
- ##
- # Generate a hyperlink for url, labeled with text. Handle the
- # special cases for img: and link: described under handle_special_HYPEDLINK
-
- 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
- HTML.gen_url @from_path, path
- end
- end
-
- if (type == "http" 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
-
- ##
- # And we're invoked with a potential external hyperlink mailto:
- # just gets inserted. 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. We also
- # support a special type of hyperlink, link:, which is a reference
- # to a local file whose path is relative to the --op directory.
-
- def handle_special_HYPERLINK(special)
- url = special.text
- gen_url url, url
- end
-
- ##
- # Here's a hypedlink where the label is different to the URL
- # <label>[url]
-
- def handle_special_TIDYLINK(special)
- text = special.text
-
- return text unless text =~ /\{(.*?)\}\[(.*?)\]/ or text =~ /(\S+)\[(.*?)\]/
-
- label = $1
- url = $2
- gen_url url, label
- end
-
end