# File lib/ronn/template.rb, line 8 def initialize(document, style_path=ENV['RONN_STYLE'].to_s.split(':')) @document = document @style_path = style_path + [Template.template_path] end
# File lib/ronn/template.rb, line 45 def custom_title? !name_and_section? && tagline end
# File lib/ronn/template.rb, line 69 def date @document.date.strftime('%B %Y') end
# File lib/ronn/template.rb, line 57 def generator "Ronn/v#{Ronn.version} (http://github.com/rtomayko/ronn/tree/#{Ronn.revision})" end
TEMPLATE CSS LOADING
# File lib/ronn/template.rb, line 144 def inline_stylesheet(path, media='all') data = File.read(path) data.gsub!(%r/\*.+?\*/|, '') # comments data.gsub!(%r([;{,]) *\n/, '\1') # end-of-line whitespace data.gsub!(%r\n{2,}/, "\n") # collapse lines data.gsub!(%r[; ]+\}/, '}') # superfluous trailing semi-colons data.gsub!(%r([{;,+])[ ]+/, '\1') # whitespace around things data.gsub!(%r[ \t]+/, ' ') # coalescing whitespace elsewhere data.gsub!(%r^/, ' ') # indent data.strip! [ "<style type='text/css' media='#{media}'>", "/* style: #{File.basename(path, '.css')} */", data, "</style>" ].join("\n ") end
# File lib/ronn/template.rb, line 61 def manual @document.manual end
Array of style names for which no file could be found.
# File lib/ronn/template.rb, line 134 def missing_styles style_files. zip(files). select { |style, file| file.nil? }. map { |style, file| style } end
Basic document attributes
# File lib/ronn/template.rb, line 20 def name @document.name end
# File lib/ronn/template.rb, line 33 def name_and_section? name && section end
# File lib/ronn/template.rb, line 65 def organization @document.organization end
# File lib/ronn/template.rb, line 49 def page_name if section "#{name}(#{section})" else name end end
# File lib/ronn/template.rb, line 162 def remote_stylesheet(name, media='all') path = File.expand_path("../template/#{name}.css", __FILE__) "<link rel='stylesheet' type='text/css' media='#{media}' href='#{path}'>" end
# File lib/ronn/template.rb, line 13 def render(template='default') super template[0,1] == '/' ? File.read(template) : partial(template) end
# File lib/ronn/template.rb, line 24 def section @document.section end
Section TOCs
# File lib/ronn/template.rb, line 80 def section_heads @document.section_heads.map do |id, text| { :id => id, :text => text } end end
Array of expanded stylesheet file names. If a file cannot be found, the resulting array will include nil elements in positions corresponding to the stylesheets array.
# File lib/ronn/template.rb, line 123 def style_files styles.map do |name| next name if name.include?('/') style_path. reject { |p| p.strip.empty? }. map { |p| File.join(p, "#{name}.css") }. detect { |file| File.exist?(file) } end end
Array of style module names as given on the command line.
# File lib/ronn/template.rb, line 93 def styles @document.styles end
# File lib/ronn/template.rb, line 167 def stylesheet(path, media='all') inline_stylesheet(name, media) end
Array of stylesheet info hashes.
# File lib/ronn/template.rb, line 98 def stylesheets styles.zip(style_files).map do |name, path| base = File.basename(path, '.css') fail "style not found: #{style.inspect}" if path.nil? { :name => name, :path => path, :base => File.basename(path, '.css'), :media => (base =~ %r(print|screen)$/) ? $1 : 'all' } end end
# File lib/ronn/template.rb, line 28 def tagline @document.tagline end
# File lib/ronn/template.rb, line 37 def title if !name_and_section? && tagline tagline else [page_name, tagline].compact.join(' - ') end end
# File lib/ronn/template.rb, line 73 def wrap_class_name 'mp' end