class Apogee::PageRenderer
Processes site pages for distribution
Constants
- TOKEN_COMMENT_PATTERN
Attributes
page_content[R]
Public Instance Methods
automatic_tokens()
click to toggle source
# File lib/apogee/page_renderer.rb, line 31 def automatic_tokens { 'layout' => 'default', 'css_bundle' => css_bundle, 'js_bundle' => js_bundle, 'page_content' => cleaned_page_content } end
cleaned_page_content()
click to toggle source
# File lib/apogee/page_renderer.rb, line 66 def cleaned_page_content page_content.gsub(TOKEN_COMMENT_PATTERN, '').strip end
css_bundle()
click to toggle source
# File lib/apogee/page_renderer.rb, line 54 def css_bundle return '' unless css? '<link rel="stylesheet" href="styles.css">' end
js_bundle()
click to toggle source
# File lib/apogee/page_renderer.rb, line 60 def js_bundle return '' unless js? '<script src="script.js"></script>' end
layout_content()
click to toggle source
# File lib/apogee/page_renderer.rb, line 23 def layout_content layout(tokens['layout']) end
parsed_tokens()
click to toggle source
# File lib/apogee/page_renderer.rb, line 40 def parsed_tokens doc = page_content .match(TOKEN_COMMENT_PATTERN)[0] .delete_prefix('<!--') .delete_suffix('-->') .each_line .map(&:strip) .join("\n") YAML.safe_load(doc) rescue StandardError {} end
render(page_content)
click to toggle source
# File lib/apogee/page_renderer.rb, line 15 def render(page_content) @page_content = page_content tokens.inject(layout_content) do |rendered, (name, value)| rendered.gsub("{{#{name}}}", value) end end
tokens()
click to toggle source
# File lib/apogee/page_renderer.rb, line 27 def tokens automatic_tokens.merge(parsed_tokens) end