Sha256: 110c02584c81b12e83d4390db6acb2bf1e801797df0eb9705b6478daa31cacc3

Contents?: true

Size: 1.33 KB

Versions: 9

Compression:

Stored size: 1.33 KB

Contents

module Jekyll

  class TextileConverter < Converter
    safe true

    pygments_prefix '<notextile>'
    pygments_suffix '</notextile>'

    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

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

    def output_ext(ext)
      ".html"
    end

    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
  end

end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
jekyll-0.12.1 lib/jekyll/converters/textile.rb
jekyll-reloaded-0.12.2 lib/jekyll/converters/textile.rb
jekyll-0.12.0 lib/jekyll/converters/textile.rb
spinto-jekyll-0.11.2.5 lib/jekyll/converters/textile.rb
jekyll-reloaded-0.12.1 lib/jekyll/converters/textile.rb
jekyll-reloaded-0.12 lib/jekyll/converters/textile.rb
spinto-jekyll-0.11.2.3 lib/jekyll/converters/textile.rb
spinto-jekyll-0.11.2.2 lib/jekyll/converters/textile.rb
spinto-jekyll-0.11.2.1 lib/jekyll/converters/textile.rb