Class: SimpleFAQ::Formatter
- Inherits:
-
Object
- Object
- SimpleFAQ::Formatter
- Defined in:
- lib/simple_faq.rb
Constant Summary collapse
- REGEXES =
{ section_title: /(\{section-title\}([\s|\S|\n|\r]*?)\{\/section-title\})/i, intro: /\A([\s|\S]*?){/i, qa: /(\{q\}([\s\S]*?)\{\/q\}[\r\n|\n|\s]*?\{a\}([\s\S]*?)\{\/a\})/i, vimeo: /(\{\s*?vimeo\s*?:\s*?([0-9]*?)\s*?\})/i, has_video: /({[\s]*?vimeo\s*?:\s*?\d{5,10}\s*?})/i }
- MARKDOWN =
Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_intra_emphasis: true, tables: true, fenced_code_blocks: true, autolink: true, strikethrough: true, highlight: true, quote: true)
- FORMATTING =
{ q: "<h3 class=\"faq--question\" data-qa=\"{i}\">{q}</h3>", q_with_video: "<h3 class=\"faq--question\" data-qa=\"{i}\">{q}<span class=\"with-video\"></span></h3>", a: "<div class=\"faq--answer answer-{i} hidden\">{a}</div>", vimeo: '<iframe src="//player.vimeo.com/video/{stream_id}?title=0&byline=0&portrait=0&badge=0" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>', section_list: '<ul class="faq--section--list">{section-list}</ul>', title_anchor: "<h2 class=\"faq--section--title-anchor\"><a name=\"section-{i}\"></a>{title}</h2>", title_link: "<li class=\"faq--section--title-link\"><a href=\"#section-{i}\">{title}</a></li>", body_wrap: %Q{<div class="faq">{body}</div>} }
Instance Method Summary collapse
- #html ⇒ Object
-
#initialize(body) ⇒ Formatter
constructor
A new instance of Formatter.
Constructor Details
#initialize(body) ⇒ Formatter
Returns a new instance of Formatter.
33 34 35 36 37 38 39 40 41 |
# File 'lib/simple_faq.rb', line 33 def initialize(body) @body = body.strip.gsub("\r", "") @section_list = "" format_section_titles format_qa_pairs format_intro format_section_list @body.gsub!(/(\n){1,}/, "\n") end |
Instance Method Details
#html ⇒ Object
43 44 45 |
# File 'lib/simple_faq.rb', line 43 def html FORMATTING[:body_wrap].sub("{body}", @body) end |