Module: FriendlyMarkdown

Defined in:
lib/friendly_markdown.rb

Class Method Summary collapse

Class Method Details



11
12
13
14
15
16
17
18
19
20
# File 'lib/friendly_markdown.rb', line 11

def autolink text
  text.gsub(%r{\<?\bhttps?://\S+[\b/]?}) do |m|
    if m =~ /\A<.+>\z$/
      s = m[1..-2]
      %Q{&lt;<a href="#{s}">#{s}</a>&gt;}
    else
      %Q{<a href="#{m}">#{m}</a>}
    end
  end
end

.compile(input, mconfig: markdown_config, sconfig: sanitize_config) ⇒ Object



7
8
9
# File 'lib/friendly_markdown.rb', line 7

def compile input, mconfig: markdown_config, sconfig: sanitize_config
  sanitize(markdown(autolink(input.strip), mconfig), sconfig)
end

.markdown(md, config = markdown_config) ⇒ Object



22
23
24
# File 'lib/friendly_markdown.rb', line 22

def markdown md, config=markdown_config
  Kramdown::Document.new(md, config).to_html
end

.markdown_configObject



30
31
32
# File 'lib/friendly_markdown.rb', line 30

def markdown_config
  {:input => 'GFM', :hard_wrap => true}
end

.sanitize(html, config = sanitize_config) ⇒ Object



26
27
28
# File 'lib/friendly_markdown.rb', line 26

def sanitize html, config=sanitize_config
  Sanitize.fragment(html, config)
end

.sanitize_configObject



34
35
36
# File 'lib/friendly_markdown.rb', line 34

def sanitize_config
  Sanitize::Config::RELAXED
end