Module: Alongslide
- Defined in:
- lib/alongslide/syntax_error.rb,
lib/alongslide.rb,
lib/alongslide/engine.rb,
lib/alongslide/templates.rb
Overview
Custom exception class for caller to rescue.
Copyright 2013 Canopy Canopy Canopy, Inc. Author Adam Florin
Defined Under Namespace
Modules: Templates Classes: Engine, SyntaxError
Constant Summary collapse
- @@parser =
nil
Class Method Summary collapse
-
.configure(&block) ⇒ Object
Accept configuration from initializer.
-
.parser ⇒ Object
Get Treetop parser, init’ing if necessary.
-
.plain_renderer ⇒ Object
Plain vanilla renderer for the Markdown blocks extracted by the first renderer.
-
.render(markdown, options = {}) ⇒ Object
Render HTML from Markdown.
-
.render_block(markdown) ⇒ Object
Given an indented block of Alongslide-flavored Markdown, parse and return rendered HTML including appropriate templates.
-
.renderer ⇒ Object
Get Redcarpet renderer, init’ing if necessary.
Class Method Details
.configure(&block) ⇒ Object
Accept configuration from initializer.
23 24 25 |
# File 'lib/alongslide.rb', line 23 def configure(&block) Templates.configure &block end |
.parser ⇒ Object
Get Treetop parser, init’ing if necessary.
59 60 61 |
# File 'lib/alongslide.rb', line 59 def parser @@parser ||= Grammar::RootParser.new end |
.plain_renderer ⇒ Object
Plain vanilla renderer for the Markdown blocks extracted by the first renderer. (Can’t call render() on a renderer in the middle of rendering, or you’ll get Abort Traps.)
53 54 55 |
# File 'lib/alongslide.rb', line 53 def plain_renderer Redcarpet::Markdown.new Redcarpet::Render::HTML end |
.render(markdown, options = {}) ⇒ Object
Render HTML from Markdown.
33 34 35 36 37 38 39 40 41 |
# File 'lib/alongslide.rb', line 33 def render(markdown, ={}) unless [:locals].nil? Templates.configure do |config| config.locals = [:locals] end end ([:plain] ? plain_renderer : renderer).render markdown end |
.render_block(markdown) ⇒ Object
Given an indented block of Alongslide-flavored Markdown, parse and return rendered HTML including appropriate templates.
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/alongslide.rb', line 70 def render_block(markdown) rootNode = parser.parse(markdown) if rootNode return rootNode.render else error_line = markdown.split("\n")[parser.failure_line-1] raise SyntaxError.new "Alongslide syntax error around: \"#{error_line}\"" end rescue raise SyntaxError.new "Unknown Alongslide syntax error" end |
.renderer ⇒ Object
Get Redcarpet renderer, init’ing if necessary.
45 46 47 |
# File 'lib/alongslide.rb', line 45 def renderer Redcarpet::Markdown.new(Redcarpet::Render::Alongslide, :footnotes => true) end |