Module: Generators::MarkUp
- Included in:
- ContextUser, HTMLGenerator, HtmlMethod
- Defined in:
- lib/rdoc/generators/html_generator.rb
Overview
Handle common markup tasks for the various Html classes
Instance Method Summary collapse
-
#cvs_url(url, full_path) ⇒ Object
Build a webcvs URL with the given 'url' argument.
-
#markup(str, remove_para = false) ⇒ Object
Convert a string in markup format into HTML.
-
#style_url(path, css_name = nil) ⇒ Object
Qualify a stylesheet URL; if if
css_name
does not begin with '/' or 'http://', prepend a prefix relative topath
.
Instance Method Details
#cvs_url(url, full_path) ⇒ Object
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.
272 273 274 275 276 277 278 |
# File 'lib/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 |
#markup(str, remove_para = false) ⇒ Object
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.
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/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 |
#style_url(path, css_name = nil) ⇒ Object
Qualify a stylesheet URL; if if css_name
does not begin with '/' or 'http://', prepend a prefix relative to path
. Otherwise, return it unmodified.
258 259 260 261 262 263 264 265 266 |
# File 'lib/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 |