Module | Generators::MarkUp |
In: |
lib/rdoc/generators/html_generator.rb
|
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 lib/rdoc/generators/html_generator.rb, line 272 272: def cvs_url(url, full_path) 273: if /%s/ =~ url 274: return sprintf( url, full_path ) 275: else 276: return url + full_path 277: end 278: 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 lib/rdoc/generators/html_generator.rb, line 209 209: def markup(str, remove_para=false) 210: return '' unless str 211: unless defined? @markup 212: @markup = SM::SimpleMarkup.new 213: 214: # class names, variable names, or instance variables 215: @markup.add_special(/( 216: \w+(::\w+)*[.\#]\w+(\([\.\w+\*\/\+\-\=\<\>]+\))? # A::B.meth(**) (for operator in Fortran95) 217: | \#\w+(\([.\w\*\/\+\-\=\<\>]+\))? # meth(**) (for operator in Fortran95) 218: | \b([A-Z]\w*(::\w+)*[.\#]\w+) # A::B.meth 219: | \b([A-Z]\w+(::\w+)*) # A::B.. 220: | \#\w+[!?=]? # #meth_name 221: | \b\w+([_\/\.]+\w+)*[!?=]? # meth_name 222: )/x, 223: :CROSSREF) 224: 225: # external hyperlinks 226: @markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK) 227: 228: # and links of the form <text>[<url>] 229: @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK) 230: # @markup.add_special(/\b(\S+?\[\S+?\.\S+?\])/, :TIDYLINK) 231: 232: end 233: unless defined? @html_formatter 234: @html_formatter = HyperlinkHtml.new(self.path, self) 235: end 236: 237: # Convert leading comment markers to spaces, but only 238: # if all non-blank lines have them 239: 240: if str =~ /^(?>\s*)[^\#]/ 241: content = str 242: else 243: content = str.gsub(/^\s*(#+)/) { $1.tr('#',' ') } 244: end 245: 246: res = @markup.convert(content, @html_formatter) 247: if remove_para 248: res.sub!(/^<p>/, '') 249: res.sub!(/<\/p>$/, '') 250: end 251: res 252: end
Qualify a stylesheet URL; if if css_name does not begin with ’/’ or ‘http[s]://’, prepend a prefix relative to path. Otherwise, return it unmodified.
# File lib/rdoc/generators/html_generator.rb, line 258 258: def style_url(path, css_name=nil) 259: # $stderr.puts "style_url( #{path.inspect}, #{css_name.inspect} )" 260: css_name ||= CSS_NAME 261: if %r{^(https?:/)?/} =~ css_name 262: return css_name 263: else 264: return HTMLGenerator.gen_url(path, css_name) 265: end 266: end