Class: Jekyll::Converters::Textile

Inherits:
Jekyll::Converter show all
Defined in:
lib/jekyll/converters/textile.rb

Constant Summary

Constants inherited from Plugin

Plugin::PRIORITIES

Instance Method Summary collapse

Methods inherited from Jekyll::Converter

#initialize, pygments_prefix, #pygments_prefix, pygments_suffix, #pygments_suffix

Methods inherited from Plugin

<=>, inherited, #initialize, priority, safe, subclasses

Constructor Details

This class inherits a constructor from Jekyll::Converter

Instance Method Details

#convert(content) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/jekyll/converters/textile.rb', line 28

def convert(content)
  setup

  # Shortcut if config doesn't contain RedCloth section
  return RedCloth.new(content).to_html if @config['redcloth'].nil?

  # List of attributes defined on RedCloth
  # (from http://redcloth.rubyforge.org/classes/RedCloth/TextileDoc.html)
  attrs = ['filter_classes', 'filter_html', 'filter_ids', 'filter_styles',
          'hard_breaks', 'lite_mode', 'no_span_caps', 'sanitize_html']

  r = RedCloth.new(content)

  # Set attributes in r if they are NOT nil in the config
  attrs.each do |attr|
    r.instance_variable_set("@#{attr}".to_sym, @config['redcloth'][attr]) unless @config['redcloth'][attr].nil?
  end

  r.to_html
end

#matches(ext) ⇒ Object



19
20
21
22
# File 'lib/jekyll/converters/textile.rb', line 19

def matches(ext)
  rgx = '(' + @config['textile_ext'].gsub(',','|') +')'
  ext =~ Regexp.new(rgx, Regexp::IGNORECASE)
end

#output_ext(ext) ⇒ Object



24
25
26
# File 'lib/jekyll/converters/textile.rb', line 24

def output_ext(ext)
  ".html"
end

#setupObject



9
10
11
12
13
14
15
16
17
# File 'lib/jekyll/converters/textile.rb', line 9

def setup
  return if @setup
  require 'redcloth'
  @setup = true
rescue LoadError
  STDERR.puts 'You are missing a library required for Textile. Please run:'
  STDERR.puts '  $ [sudo] gem install RedCloth'
  raise FatalException.new("Missing dependency: RedCloth")
end