Module: Filters::PostFilter

Included in:
ExtendedMarkdownFilter
Defined in:
lib/filters/post/intro.rb,
lib/filters/post/octicon.rb,
lib/filters/post/os-blocks.rb,
lib/filters/post/admonition.rb,
lib/filters/post/command-line.rb

Constant Summary collapse

INTRO_HTML =
'<div class="intro">'
MAC_HTML =
'<div class="platform-mac">'
WIN_HTML =
'<div class="platform-windows">'
LINUX_HTML =
'<div class="platform-linux">'
ALL_HTML =
'<div class="platform-all">'
TIP_HTML =
'<div class="alert tip">'
NOTE_HTML =
'<div class="alert note">'
WARNING_HTML =
'<div class="alert warning">'
DANGER_HTML =
'<div class="alert danger">'

Instance Method Summary collapse

Instance Method Details

#format_admonitions!(html) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/filters/post/admonition.rb', line 8

def format_admonitions!(html)
  html.gsub!(/<p>#{@front_wrap}#tip#{@end_wrap}<\/p>/,     TIP_HTML)
  html.gsub!(/<p>#{@front_wrap}#note#{@end_wrap}<\/p>/,    NOTE_HTML)
  html.gsub!(/<p>#{@front_wrap}#warning#{@end_wrap}<\/p>/, WARNING_HTML)
  html.gsub!(/<p>#{@front_wrap}#danger#{@end_wrap}<\/p>/,  DANGER_HTML)
  html.gsub!(/<p>#{@front_wrap}\/(tip|note|warning|danger)#{@end_wrap}<\/p>/, Filters::CLOSE_DIV)
end

#format_command_line!(html) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/filters/post/command-line.rb', line 3

def format_command_line!(html)
  html.gsub!(/<pre><code>``` command-line\n/, "<pre class=\"command-line\">\n")
  html.gsub!(/<pre lang="command-line">/, "<pre class=\"command-line\">\n")

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

    block
  end
end

#format_intro!(html) ⇒ Object



5
6
7
8
# File 'lib/filters/post/intro.rb', line 5

def format_intro!(html)
  html.gsub!(/<p>#{@front_wrap}#intro#{@end_wrap}<\/p>/,    INTRO_HTML)
  html.gsub!(/<p>#{@front_wrap}\/intro#{@end_wrap}<\/p>/,   Filters::CLOSE_DIV)
end

#format_octicons!(html) ⇒ Object



3
4
5
# File 'lib/filters/post/octicon.rb', line 3

def format_octicons!(html)
  html.gsub!(/#{@front_wrap}\s*octicon-(\S+)\s*([^\\#{@wrap_symbol}]+)\s*#{@end_wrap}/, %|<span class="octicon octicon-\\1" aria-label="\\2" title="\\2"></span>|)
end

#format_os_blocks!(html) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/filters/post/os-blocks.rb', line 8

def format_os_blocks!(html)
  html.gsub!(/<p>#{@front_wrap}#mac#{@end_wrap}<\/p>/,     MAC_HTML)
  html.gsub!(/<p>#{@front_wrap}#windows#{@end_wrap}<\/p>/, WIN_HTML)
  html.gsub!(/<p>#{@front_wrap}#linux#{@end_wrap}<\/p>/,   LINUX_HTML)
  html.gsub!(/<p>#{@front_wrap}#all#{@end_wrap}<\/p>/,     ALL_HTML)
  html.gsub!(/<p>#{@front_wrap}\/(mac|windows|linux|all)#{@end_wrap}<\/p>/, Filters::CLOSE_DIV)
end