Handle common markup tasks for the various Html classes
Build a webcvs URL with the given 'url' argument. URLs with a '%s' in them get the file's path sprintfed into them; otherwise they're just catenated together.
# File rdoc/generators/html_generator.rb, line 272
def cvs_url(url, full_path)
if /%s/ =~ url
return sprintf( url, full_path )
else
return url + full_path
end
end
Convert a string in markup format into HTML. We keep a cached SimpleMarkup object lying around after the first time we're called per object.
# File rdoc/generators/html_generator.rb, line 209
def markup(str, remove_para=false)
return '' unless str
unless defined? @markup
@markup = SM::SimpleMarkup.new
# class names, variable names, or instance variables
@markup.add_special(/(
\w+(::\w+)*[.\#]\w+(\([\.\w+\*\/\+\-\=\<\>]+\))? # A::B.meth(**) (for operator in Fortran95)
| \#\w+(\([.\w\*\/\+\-\=\<\>]+\))? # meth(**) (for operator in Fortran95)
| \b([A-Z]\w*(::\w+)*[.\#]\w+) # A::B.meth
| \b([A-Z]\w+(::\w+)*) # A::B..
| \#\w+[!?=]? # #meth_name
| \b\w+([_\/\.]+\w+)*[!?=]? # meth_name
)/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)
# @markup.add_special(/\b(\S+?\[\S+?\.\S+?\])/, :TIDYLINK)
end
unless defined? @html_formatter
@html_formatter = HyperlinkHtml.new(self.path, self)
end
# Convert leading comment markers to spaces, but only
# if all non-blank lines have them
if str =~ /^(?>\s*)[^\#]/
content = str
else
content = str.gsub(/^\s*(#+)/) { $1.tr('#',' ') }
end
res = @markup.convert(content, @html_formatter)
if remove_para
res.sub!(/^<p>/, '')
res.sub!(/<\/p>$/, '')
end
res
end
Qualify a stylesheet URL; if if css_name does not begin with
'/' or 'http://', prepend a prefix relative
to path. Otherwise, return it unmodified.
# File rdoc/generators/html_generator.rb, line 258
def style_url(path, css_name=nil)
# $stderr.puts "style_url( #{path.inspect}, #{css_name.inspect} )"
css_name ||= CSS_NAME
if %r{^(https?:/)?/} =~ css_name
return css_name
else
return HTMLGenerator.gen_url(path, css_name)
end
end