Class: Worte::Filter::Markdown

Inherits:
Object
  • Object
show all
Defined in:
lib/worte/filter/markdown.rb

Instance Method Summary collapse

Instance Method Details

#filter(str) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/worte/filter/markdown.rb', line 4

def filter(str)
  str = str.gsub(/^---$\n.*?\n^---$/m) { |c| "\n" * c.split("\n").length }
  str = str.gsub(/^```[a-z]*$\n.*?\n^```$/m) { |c| "\n" * (c.split("\n").length - 1) }
  str = str.gsub(/^\t.*$/) { |c| '' }
  str = str.gsub(/^([ \t]*[#]+)/) { |c| ' ' * c.length }
  str = str.gsub(/\*\*(.*?)\*\*/) { |c| '  ' + c[2..-3] + '  ' }
  str = str.gsub(/\*(.*?)\*/) { |c| ' ' + c[1..-2] + ' ' }
  str = str.gsub(/\_\_(.*?)\_\_/) { |c| '  ' + c[2..-3] + '  ' }
  str = str.gsub(/\_(.*?)\_/) { |c| ' ' + c[1..-2] + ' ' }
  str = str.gsub(/`.*?`/) { |c| ' ' * c.length }
  str = str.gsub(/[!]?\[.*\]\(.*\)/) { |c| ' ' * c.length }
end