Class: Codex::Content
- Inherits:
-
Object
- Object
- Codex::Content
- Defined in:
- lib/codex/content.rb
Constant Summary collapse
- START_SLIDE =
%{<div class="slide">\n}- END_SLIDE =
%{</div>\n}- BETWEEN_SLIDES =
END_SLIDE + "\n" + START_SLIDE
- HEADING_MARKER =
'h1'- REPEAT_SLIDE_MARKER =
'<<'- SPLIT_REGEX =
/^(#{HEADING_MARKER}|#{REPEAT_SLIDE_MARKER})/
Instance Method Summary collapse
-
#initialize(original) ⇒ Content
constructor
A new instance of Content.
- #join_slides(slides) ⇒ Object
- #repeat_slides(slides) ⇒ Object
- #split_into_slides(textile) ⇒ Object
- #to_html ⇒ Object
Constructor Details
#initialize(original) ⇒ Content
Returns a new instance of Content.
11 12 13 |
# File 'lib/codex/content.rb', line 11 def initialize(original) @original = original.sub(/__END__.*/m, '').gsub(/__SKIP__.*?__ENDSKIP__/m, '') end |
Instance Method Details
#join_slides(slides) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/codex/content.rb', line 47 def () result = [] .each do || result << START_SLIDE << "\nh1" << << END_SLIDE end result.join end |
#repeat_slides(slides) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/codex/content.rb', line 37 def () result = [] .each_with_index do |, index| delim, = = result[index - 1] + if delim == REPEAT_SLIDE_MARKER and index > 0 result << end result end |
#split_into_slides(textile) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/codex/content.rb', line 23 def (textile) = textile.split(SPLIT_REGEX) [1..-1].inject([]) do |accum, s| last_el = accum.last if last_el.is_a?(String) accum.pop accum << [last_el, s] else accum << s end accum end end |
#to_html ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/codex/content.rb', line 15 def to_html textile = Codex::Filters.instance.filter_all(@original) = (textile) = () content = () html = RedCloth.new(content).to_html end |