Module Generators::MarkUp
In: generators/html_generator.rb

Handle common markup tasks for the various Html classes

Methods

cvs_url   markup   style_url  

Public Instance methods

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.

[Source]

     # File generators/html_generator.rb, line 303
303:     def cvs_url(url, full_path)
304:       if /%s/ =~ url
305:         return sprintf( url, full_path )
306:       else
307:         return url + full_path
308:       end
309:     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.

[Source]

     # File generators/html_generator.rb, line 233
233:     def markup(str, remove_para=false)
234:       return '' unless str
235:       unless defined? @markup
236:         @markup = SM::SimpleMarkup.new
237: 
238:         # class names, variable names, or instance variables
239:         @markup.add_special(/(
240:                                \w+(::\w+)*[.\#]\w+(\([\.\w+\*\/\+\-\=\<\>]+\))?  # A::B.meth(**) (for operator in Fortran95)
241:                              | \#\w+(\([.\w\*\/\+\-\=\<\>]+\))?  #  meth(**) (for operator in Fortran95)
242:                              | \b([A-Z]\w*(::\w+)*[.\#]\w+)  #    A::B.meth
243:                              | \b([A-Z]\w+(::\w+)*)       #    A::B..
244:                              | \#\w+[!?=]?                #    #meth_name 
245:                              | \b\w+([_\/\.]+\w+)*[!?=]?  #    meth_name
246:                              )/x, 
247:                             :CROSSREF)
248: 
249:         # file names
250:         @markup.add_special(/(
251:                                [\w\/][\w\#\/\.\-\~\:]*[!?=]? # file_name
252:                              | [\w\/][\w\#\/\.\-\~\:]*(\([\.\w+\*\/\+\-\=\<\>]+\))?
253:                              )/x, 
254:                             :CROSSREFFILE)
255: 
256:         # external hyperlinks
257:         @markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK)
258: 
259:         # and links of the form  <text>[<url>]
260:         @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK)
261: #        @markup.add_special(/\b(\S+?\[\S+?\.\S+?\])/, :TIDYLINK)
262: 
263:       end
264:       unless defined? @html_formatter
265:         @html_formatter = HyperlinkHtml.new(self.path, self)
266:       end
267: 
268:       # Convert leading comment markers to spaces, but only
269:       # if all non-blank lines have them
270: 
271:       if str =~ /^(?>\s*)[^\#]/
272:         content = str
273:       else
274:         content = str.gsub(/^\s*(#+)/)  { $1.tr('#',' ') }
275:       end
276: 
277:       res = @markup.convert(content, @html_formatter)
278:       if remove_para
279:         res.sub!(/^<p>/, '')
280:         res.sub!(/<\/p>$/, '')
281:       end
282:       res
283:     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.

[Source]

     # File generators/html_generator.rb, line 289
289:     def style_url(path, css_name=nil)
290: #      $stderr.puts "style_url( #{path.inspect}, #{css_name.inspect} )"
291:       css_name ||= CSS_NAME
292:       if %r{^(https?:/)?/} =~ css_name
293:         return css_name
294:       else
295:         return HTMLGenerator.gen_url(path, css_name)
296:       end
297:     end

[Validate]