Module: Filters::PreFilter

Included in:
ExtendedMarkdownFilter
Defined in:
lib/filters/pre/helper.rb,
lib/filters/pre/command-line.rb

Instance Method Summary collapse

Instance Method Details

#format_command_line(text) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/filters/pre/command-line.rb', line 3

def format_command_line(text)
  text.gsub /^\n?\s*``` command-line(.+?)```/m do |block|
    block.gsub! /^\s*``` command-line/, '<pre class="command-line">'
    block.gsub! /^\s*```$/, "</pre>\n"
    block.gsub!(/^\s*\$ (.+)$/) { %(<span class="command">#{$1.rstrip}</span>) }
    block.gsub!(/^\s*(\# .+)$/) { %(<span class="comment">#{$1.rstrip}</span>) }
    block.gsub!(/^\s*> (.+)$/) { %(<span class="output">#{$1.rstrip}</span>) }

    block
  end
end

#format_helper(text) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/filters/pre/helper.rb', line 3

def format_helper(text)
  prefix = '<p'

  text.gsub /\n?``` helper(.+?)```/m do |block|
    block.gsub! /^``` helper/, ''
    block.gsub! /^```$/, ''

    header = ''
    block.gsub! /^#### (.+?)$/ do
      header = $1.strip
      ''
    end

    content = block.strip
    content = "<p>#{content}</p>" unless content[0, prefix.length] == prefix
    content = "<div class='helper'><h4 class='header'><a href='#'>#{header}</a></h4><div class='content'>#{content}</div></div>"
  end
end