spinto-jekyll 0.11.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/Gemfile +2 -0
  2. data/History.txt +321 -0
  3. data/LICENSE +21 -0
  4. data/README.textile +41 -0
  5. data/Rakefile +166 -0
  6. data/bin/jekyll +289 -0
  7. data/cucumber.yml +1 -0
  8. data/features/create_sites.feature +112 -0
  9. data/features/embed_filters.feature +60 -0
  10. data/features/markdown.feature +30 -0
  11. data/features/pagination.feature +27 -0
  12. data/features/permalinks.feature +65 -0
  13. data/features/post_data.feature +153 -0
  14. data/features/site_configuration.feature +145 -0
  15. data/features/site_data.feature +82 -0
  16. data/features/step_definitions/jekyll_steps.rb +145 -0
  17. data/features/support/env.rb +19 -0
  18. data/lib/jekyll.rb +136 -0
  19. data/lib/jekyll/converter.rb +50 -0
  20. data/lib/jekyll/converters/identity.rb +22 -0
  21. data/lib/jekyll/converters/markdown.rb +125 -0
  22. data/lib/jekyll/converters/textile.rb +50 -0
  23. data/lib/jekyll/convertible.rb +112 -0
  24. data/lib/jekyll/core_ext.rb +52 -0
  25. data/lib/jekyll/errors.rb +6 -0
  26. data/lib/jekyll/filters.rb +118 -0
  27. data/lib/jekyll/generator.rb +7 -0
  28. data/lib/jekyll/generators/pagination.rb +113 -0
  29. data/lib/jekyll/layout.rb +44 -0
  30. data/lib/jekyll/migrators/csv.rb +26 -0
  31. data/lib/jekyll/migrators/drupal.rb +103 -0
  32. data/lib/jekyll/migrators/enki.rb +49 -0
  33. data/lib/jekyll/migrators/joomla.rb +53 -0
  34. data/lib/jekyll/migrators/marley.rb +52 -0
  35. data/lib/jekyll/migrators/mephisto.rb +84 -0
  36. data/lib/jekyll/migrators/mt.rb +86 -0
  37. data/lib/jekyll/migrators/posterous.rb +67 -0
  38. data/lib/jekyll/migrators/rss.rb +47 -0
  39. data/lib/jekyll/migrators/textpattern.rb +58 -0
  40. data/lib/jekyll/migrators/tumblr.rb +195 -0
  41. data/lib/jekyll/migrators/typo.rb +51 -0
  42. data/lib/jekyll/migrators/wordpress.rb +294 -0
  43. data/lib/jekyll/migrators/wordpressdotcom.rb +70 -0
  44. data/lib/jekyll/page.rb +155 -0
  45. data/lib/jekyll/plugin.rb +77 -0
  46. data/lib/jekyll/post.rb +257 -0
  47. data/lib/jekyll/site.rb +337 -0
  48. data/lib/jekyll/static_file.rb +72 -0
  49. data/lib/jekyll/tags/highlight.rb +76 -0
  50. data/lib/jekyll/tags/include.rb +37 -0
  51. data/lib/jekyll/tags/post_url.rb +38 -0
  52. data/lib/spinto-jekyll.rb +3 -0
  53. data/spinto-jekyll.gemspec +155 -0
  54. data/test/helper.rb +34 -0
  55. data/test/source/.htaccess +8 -0
  56. data/test/source/_includes/sig.markdown +3 -0
  57. data/test/source/_layouts/default.html +27 -0
  58. data/test/source/_layouts/simple.html +1 -0
  59. data/test/source/_posts/2008-02-02-not-published.textile +8 -0
  60. data/test/source/_posts/2008-02-02-published.textile +8 -0
  61. data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
  62. data/test/source/_posts/2008-11-21-complex.textile +8 -0
  63. data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
  64. data/test/source/_posts/2008-12-13-include.markdown +8 -0
  65. data/test/source/_posts/2009-01-27-array-categories.textile +10 -0
  66. data/test/source/_posts/2009-01-27-categories.textile +7 -0
  67. data/test/source/_posts/2009-01-27-category.textile +7 -0
  68. data/test/source/_posts/2009-01-27-empty-categories.textile +7 -0
  69. data/test/source/_posts/2009-01-27-empty-category.textile +7 -0
  70. data/test/source/_posts/2009-03-12-hash-#1.markdown +6 -0
  71. data/test/source/_posts/2009-05-18-empty-tag.textile +6 -0
  72. data/test/source/_posts/2009-05-18-empty-tags.textile +6 -0
  73. data/test/source/_posts/2009-05-18-tag.textile +6 -0
  74. data/test/source/_posts/2009-05-18-tags.textile +9 -0
  75. data/test/source/_posts/2009-06-22-empty-yaml.textile +3 -0
  76. data/test/source/_posts/2009-06-22-no-yaml.textile +1 -0
  77. data/test/source/_posts/2010-01-08-triple-dash.markdown +5 -0
  78. data/test/source/_posts/2010-01-09-date-override.textile +7 -0
  79. data/test/source/_posts/2010-01-09-time-override.textile +7 -0
  80. data/test/source/_posts/2010-01-09-timezone-override.textile +7 -0
  81. data/test/source/_posts/2010-01-16-override-data.textile +4 -0
  82. data/test/source/_posts/2011-04-12-md-extension.md +7 -0
  83. data/test/source/_posts/2011-04-12-text-extension.text +0 -0
  84. data/test/source/about.html +6 -0
  85. data/test/source/category/_posts/2008-9-23-categories.textile +6 -0
  86. data/test/source/contacts.html +5 -0
  87. data/test/source/css/screen.css +76 -0
  88. data/test/source/deal.with.dots.html +7 -0
  89. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +8 -0
  90. data/test/source/index.html +22 -0
  91. data/test/source/sitemap.xml +32 -0
  92. data/test/source/win/_posts/2009-05-24-yaml-linebreak.markdown +7 -0
  93. data/test/source/z_category/_posts/2008-9-23-categories.textile +6 -0
  94. data/test/suite.rb +11 -0
  95. data/test/test_configuration.rb +29 -0
  96. data/test/test_core_ext.rb +66 -0
  97. data/test/test_filters.rb +62 -0
  98. data/test/test_generated_site.rb +72 -0
  99. data/test/test_kramdown.rb +23 -0
  100. data/test/test_page.rb +117 -0
  101. data/test/test_pager.rb +113 -0
  102. data/test/test_post.rb +456 -0
  103. data/test/test_rdiscount.rb +18 -0
  104. data/test/test_redcarpet.rb +21 -0
  105. data/test/test_redcloth.rb +86 -0
  106. data/test/test_site.rb +220 -0
  107. data/test/test_tags.rb +201 -0
  108. metadata +336 -0
@@ -0,0 +1,145 @@
1
+ Before do
2
+ FileUtils.mkdir(TEST_DIR)
3
+ Dir.chdir(TEST_DIR)
4
+ end
5
+
6
+ After do
7
+ Dir.chdir(TEST_DIR)
8
+ FileUtils.rm_rf(TEST_DIR)
9
+ end
10
+
11
+ Given /^I have a blank site in "(.*)"$/ do |path|
12
+ FileUtils.mkdir(path)
13
+ end
14
+
15
+ # Like "I have a foo file" but gives a yaml front matter so jekyll actually processes it
16
+ Given /^I have an? "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text|
17
+ File.open(file, 'w') do |f|
18
+ f.write <<EOF
19
+ ---
20
+ #{key || 'layout'}: #{value || 'nil'}
21
+ ---
22
+ #{text}
23
+ EOF
24
+ f.close
25
+ end
26
+ end
27
+
28
+ Given /^I have an? "(.*)" file that contains "(.*)"$/ do |file, text|
29
+ File.open(file, 'w') do |f|
30
+ f.write(text)
31
+ f.close
32
+ end
33
+ end
34
+
35
+ Given /^I have a (.*) layout that contains "(.*)"$/ do |layout, text|
36
+ File.open(File.join('_layouts', layout + '.html'), 'w') do |f|
37
+ f.write(text)
38
+ f.close
39
+ end
40
+ end
41
+
42
+ Given /^I have an? (.*) directory$/ do |dir|
43
+ FileUtils.mkdir_p(dir)
44
+ end
45
+
46
+ Given /^I have the following posts?(?: (.*) "(.*)")?:$/ do |direction, folder, table|
47
+ table.hashes.each do |post|
48
+ date = Date.strptime(post['date'], '%m/%d/%Y').strftime('%Y-%m-%d')
49
+ title = post['title'].downcase.gsub(/[^\w]/, " ").strip.gsub(/\s+/, '-')
50
+
51
+ if direction && direction == "in"
52
+ before = folder || '.'
53
+ elsif direction && direction == "under"
54
+ after = folder || '.'
55
+ end
56
+
57
+ path = File.join(before || '.', '_posts', after || '.', "#{date}-#{title}.#{post['type'] || 'textile'}")
58
+
59
+ matter_hash = {}
60
+ %w(title layout tag tags category categories published author).each do |key|
61
+ matter_hash[key] = post[key] if post[key]
62
+ end
63
+ matter = matter_hash.map { |k, v| "#{k}: #{v}\n" }.join.chomp
64
+
65
+ content = post['content']
66
+ if post['input'] && post['filter']
67
+ content = "{{ #{post['input']} | #{post['filter']} }}"
68
+ end
69
+
70
+ File.open(path, 'w') do |f|
71
+ f.write <<EOF
72
+ ---
73
+ #{matter}
74
+ ---
75
+ #{content}
76
+ EOF
77
+ f.close
78
+ end
79
+ end
80
+ end
81
+
82
+ Given /^I have a configuration file with "(.*)" set to "(.*)"$/ do |key, value|
83
+ File.open('_config.yml', 'w') do |f|
84
+ f.write("#{key}: #{value}\n")
85
+ f.close
86
+ end
87
+ end
88
+
89
+ Given /^I have a configuration file with:$/ do |table|
90
+ File.open('_config.yml', 'w') do |f|
91
+ table.hashes.each do |row|
92
+ f.write("#{row["key"]}: #{row["value"]}\n")
93
+ end
94
+ f.close
95
+ end
96
+ end
97
+
98
+ Given /^I have a configuration file with "([^\"]*)" set to:$/ do |key, table|
99
+ File.open('_config.yml', 'w') do |f|
100
+ f.write("#{key}:\n")
101
+ table.hashes.each do |row|
102
+ f.write("- #{row["value"]}\n")
103
+ end
104
+ f.close
105
+ end
106
+ end
107
+
108
+
109
+ When /^I run jekyll$/ do
110
+ run_jekyll
111
+ end
112
+
113
+ When /^I debug jekyll$/ do
114
+ run_jekyll(:debug => true)
115
+ end
116
+
117
+ When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
118
+ File.open(file, 'a') do |f|
119
+ f.write(text)
120
+ end
121
+ end
122
+
123
+ Then /^the (.*) directory should exist$/ do |dir|
124
+ assert File.directory?(dir)
125
+ end
126
+
127
+ Then /^I should see "(.*)" in "(.*)"$/ do |text, file|
128
+ assert_match Regexp.new(text), File.open(file).readlines.join
129
+ end
130
+
131
+ Then /^the "(.*)" file should exist$/ do |file|
132
+ assert File.file?(file)
133
+ end
134
+
135
+ Then /^the "(.*)" file should not exist$/ do |file|
136
+ assert !File.exists?(file)
137
+ end
138
+
139
+ Then /^I should see today's time in "(.*)"$/ do |file|
140
+ assert_match Regexp.new(Regexp.escape(Time.now.to_s)), File.open(file).readlines.join
141
+ end
142
+
143
+ Then /^I should see today's date in "(.*)"$/ do |file|
144
+ assert_match Regexp.new(Date.today.to_s), File.open(file).readlines.join
145
+ end
@@ -0,0 +1,19 @@
1
+ require 'fileutils'
2
+ require 'rr'
3
+ require 'test/unit'
4
+
5
+ World do
6
+ include Test::Unit::Assertions
7
+ end
8
+
9
+ TEST_DIR = File.join('/', 'tmp', 'jekyll')
10
+ JEKYLL_PATH = File.join(ENV['PWD'], 'bin', 'jekyll')
11
+
12
+ def run_jekyll(opts = {})
13
+ command = JEKYLL_PATH
14
+ command << " >> /dev/null 2>&1" if opts[:debug].nil?
15
+ system command
16
+ end
17
+
18
+ # work around "invalid option: --format" cucumber bug (see #296)
19
+ Test::Unit.run = true if RUBY_VERSION < '1.9'
data/lib/jekyll.rb ADDED
@@ -0,0 +1,136 @@
1
+ $:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
2
+
3
+ # Require all of the Ruby files in the given directory.
4
+ #
5
+ # path - The String relative path from here to the directory.
6
+ #
7
+ # Returns nothing.
8
+ def require_all(path)
9
+ glob = File.join(File.dirname(__FILE__), path, '*.rb')
10
+ Dir[glob].each do |f|
11
+ require f
12
+ end
13
+ end
14
+
15
+ # rubygems
16
+ require 'rubygems'
17
+
18
+ # stdlib
19
+ require 'fileutils'
20
+ require 'time'
21
+ require 'yaml'
22
+ require 'English'
23
+
24
+ # 3rd party
25
+ require 'liquid'
26
+ require 'maruku'
27
+ require 'albino'
28
+
29
+ # internal requires
30
+ require 'jekyll/core_ext'
31
+ require 'jekyll/site'
32
+ require 'jekyll/convertible'
33
+ require 'jekyll/layout'
34
+ require 'jekyll/page'
35
+ require 'jekyll/post'
36
+ require 'jekyll/filters'
37
+ require 'jekyll/static_file'
38
+ require 'jekyll/errors'
39
+
40
+ # extensions
41
+ require 'jekyll/plugin'
42
+ require 'jekyll/converter'
43
+ require 'jekyll/generator'
44
+ require_all 'jekyll/converters'
45
+ require_all 'jekyll/generators'
46
+ require_all 'jekyll/tags'
47
+
48
+ module Jekyll
49
+ VERSION = '0.11.2'
50
+
51
+ # Default options. Overriden by values in _config.yml or command-line opts.
52
+ # (Strings rather symbols used for compatability with YAML).
53
+ DEFAULTS = {
54
+ 'safe' => false,
55
+ 'auto' => false,
56
+ 'server' => false,
57
+ 'server_port' => 4000,
58
+
59
+ 'source' => Dir.pwd,
60
+ 'destination' => File.join(Dir.pwd, '_site'),
61
+ 'plugins' => File.join(Dir.pwd, '_plugins'),
62
+
63
+ 'future' => true,
64
+ 'lsi' => false,
65
+ 'pygments' => false,
66
+ 'markdown' => 'maruku',
67
+ 'permalink' => 'date',
68
+ 'include' => ['.htaccess'],
69
+
70
+ 'markdown_ext' => 'markdown,mkd,mkdn,md',
71
+ 'textile_ext' => 'textile',
72
+
73
+ 'maruku' => {
74
+ 'use_tex' => false,
75
+ 'use_divs' => false,
76
+ 'png_engine' => 'blahtex',
77
+ 'png_dir' => 'images/latex',
78
+ 'png_url' => '/images/latex'
79
+ },
80
+ 'rdiscount' => {
81
+ 'extensions' => []
82
+ },
83
+ 'redcarpet' => {
84
+ 'extensions' => []
85
+ },
86
+ 'kramdown' => {
87
+ 'auto_ids' => true,
88
+ 'footnote_nr' => 1,
89
+ 'entity_output' => 'as_char',
90
+ 'toc_levels' => '1..6',
91
+ 'use_coderay' => false,
92
+
93
+ 'coderay' => {
94
+ 'coderay_wrap' => 'div',
95
+ 'coderay_line_numbers' => 'inline',
96
+ 'coderay_line_number_start' => 1,
97
+ 'coderay_tab_width' => 4,
98
+ 'coderay_bold_every' => 10,
99
+ 'coderay_css' => 'style'
100
+ }
101
+ },
102
+ 'redcloth' => {
103
+ 'hard_breaks' => true
104
+ }
105
+ }
106
+
107
+ # Public: Generate a Jekyll configuration Hash by merging the default
108
+ # options with anything in _config.yml, and adding the given options on top.
109
+ #
110
+ # override - A Hash of config directives that override any options in both
111
+ # the defaults and the config file. See Jekyll::DEFAULTS for a
112
+ # list of option names and their defaults.
113
+ #
114
+ # Returns the final configuration Hash.
115
+ def self.configuration(override)
116
+ # _config.yml may override default source location, but until
117
+ # then, we need to know where to look for _config.yml
118
+ source = override['source'] || Jekyll::DEFAULTS['source']
119
+
120
+ # Get configuration from <source>/_config.yml
121
+ config_file = File.join(source, '_config.yml')
122
+ begin
123
+ config = YAML.load_file(config_file)
124
+ raise "Invalid configuration - #{config_file}" if !config.is_a?(Hash)
125
+ $stdout.puts "Configuration from #{config_file}"
126
+ rescue => err
127
+ $stderr.puts "WARNING: Could not read configuration. " +
128
+ "Using defaults (and options)."
129
+ $stderr.puts "\t" + err.to_s
130
+ config = {}
131
+ end
132
+
133
+ # Merge DEFAULTS < _config.yml < override
134
+ Jekyll::DEFAULTS.deep_merge(config).deep_merge(override)
135
+ end
136
+ end
@@ -0,0 +1,50 @@
1
+ module Jekyll
2
+
3
+ class Converter < Plugin
4
+ # Public: Get or set the pygments prefix. When an argument is specified,
5
+ # the prefix will be set. If no argument is specified, the current prefix
6
+ # will be returned.
7
+ #
8
+ # pygments_prefix - The String prefix (default: nil).
9
+ #
10
+ # Returns the String prefix.
11
+ def self.pygments_prefix(pygments_prefix = nil)
12
+ @pygments_prefix = pygments_prefix if pygments_prefix
13
+ @pygments_prefix
14
+ end
15
+
16
+ # Public: Get or set the pygments suffix. When an argument is specified,
17
+ # the suffix will be set. If no argument is specified, the current suffix
18
+ # will be returned.
19
+ #
20
+ # pygments_suffix - The String suffix (default: nil).
21
+ #
22
+ # Returns the String suffix.
23
+ def self.pygments_suffix(pygments_suffix = nil)
24
+ @pygments_suffix = pygments_suffix if pygments_suffix
25
+ @pygments_suffix
26
+ end
27
+
28
+ # Initialize the converter.
29
+ #
30
+ # Returns an initialized Converter.
31
+ def initialize(config = {})
32
+ @config = config
33
+ end
34
+
35
+ # Get the pygments prefix.
36
+ #
37
+ # Returns the String prefix.
38
+ def pygments_prefix
39
+ self.class.pygments_prefix
40
+ end
41
+
42
+ # Get the pygments suffix.
43
+ #
44
+ # Returns the String suffix.
45
+ def pygments_suffix
46
+ self.class.pygments_suffix
47
+ end
48
+ end
49
+
50
+ end
@@ -0,0 +1,22 @@
1
+ module Jekyll
2
+
3
+ class IdentityConverter < Converter
4
+ safe true
5
+
6
+ priority :lowest
7
+
8
+ def matches(ext)
9
+ true
10
+ end
11
+
12
+ def output_ext(ext)
13
+ ext
14
+ end
15
+
16
+ def convert(content)
17
+ content
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,125 @@
1
+ module Jekyll
2
+
3
+ class MarkdownConverter < Converter
4
+ safe true
5
+
6
+ pygments_prefix "\n"
7
+ pygments_suffix "\n"
8
+
9
+ def setup
10
+ return if @setup
11
+ # Set the Markdown interpreter (and Maruku self.config, if necessary)
12
+ case @config['markdown']
13
+ when 'redcarpet'
14
+ begin
15
+ require 'redcarpet'
16
+ @redcarpet_extensions = @config['redcarpet']['extensions'].map { |e| e.to_sym }
17
+ rescue LoadError
18
+ STDERR.puts 'You are missing a library required for Markdown. Please run:'
19
+ STDERR.puts ' $ [sudo] gem install redcarpet'
20
+ raise FatalException.new("Missing dependency: redcarpet")
21
+ end
22
+ when 'kramdown'
23
+ begin
24
+ require 'kramdown'
25
+ rescue LoadError
26
+ STDERR.puts 'You are missing a library required for Markdown. Please run:'
27
+ STDERR.puts ' $ [sudo] gem install kramdown'
28
+ raise FatalException.new("Missing dependency: kramdown")
29
+ end
30
+ when 'rdiscount'
31
+ begin
32
+ require 'rdiscount'
33
+
34
+ # Load rdiscount extensions
35
+ @rdiscount_extensions = @config['rdiscount']['extensions'].map { |e| e.to_sym }
36
+ rescue LoadError
37
+ STDERR.puts 'You are missing a library required for Markdown. Please run:'
38
+ STDERR.puts ' $ [sudo] gem install rdiscount'
39
+ raise FatalException.new("Missing dependency: rdiscount")
40
+ end
41
+ when 'maruku'
42
+ begin
43
+ require 'maruku'
44
+
45
+ if @config['maruku']['use_divs']
46
+ require 'maruku/ext/div'
47
+ STDERR.puts 'Maruku: Using extended syntax for div elements.'
48
+ end
49
+
50
+ if @config['maruku']['use_tex']
51
+ require 'maruku/ext/math'
52
+ STDERR.puts "Maruku: Using LaTeX extension. Images in `#{@config['maruku']['png_dir']}`."
53
+
54
+ # Switch off MathML output
55
+ MaRuKu::Globals[:html_math_output_mathml] = false
56
+ MaRuKu::Globals[:html_math_engine] = 'none'
57
+
58
+ # Turn on math to PNG support with blahtex
59
+ # Resulting PNGs stored in `images/latex`
60
+ MaRuKu::Globals[:html_math_output_png] = true
61
+ MaRuKu::Globals[:html_png_engine] = @config['maruku']['png_engine']
62
+ MaRuKu::Globals[:html_png_dir] = @config['maruku']['png_dir']
63
+ MaRuKu::Globals[:html_png_url] = @config['maruku']['png_url']
64
+ end
65
+ rescue LoadError
66
+ STDERR.puts 'You are missing a library required for Markdown. Please run:'
67
+ STDERR.puts ' $ [sudo] gem install maruku'
68
+ raise FatalException.new("Missing dependency: maruku")
69
+ end
70
+ else
71
+ STDERR.puts "Invalid Markdown processor: #{@config['markdown']}"
72
+ STDERR.puts " Valid options are [ maruku | rdiscount | kramdown ]"
73
+ raise FatalException.new("Invalid Markdown process: #{@config['markdown']}")
74
+ end
75
+ @setup = true
76
+ end
77
+
78
+ def matches(ext)
79
+ rgx = '(' + @config['markdown_ext'].gsub(',','|') +')'
80
+ ext =~ Regexp.new(rgx, Regexp::IGNORECASE)
81
+ end
82
+
83
+ def output_ext(ext)
84
+ ".html"
85
+ end
86
+
87
+ def convert(content)
88
+ setup
89
+ case @config['markdown']
90
+ when 'redcarpet'
91
+ Redcarpet.new(content, *@redcarpet_extensions).to_html
92
+ when 'kramdown'
93
+ # Check for use of coderay
94
+ if @config['kramdown']['use_coderay']
95
+ Kramdown::Document.new(content, {
96
+ :auto_ids => @config['kramdown']['auto_ids'],
97
+ :footnote_nr => @config['kramdown']['footnote_nr'],
98
+ :entity_output => @config['kramdown']['entity_output'],
99
+ :toc_levels => @config['kramdown']['toc_levels'],
100
+
101
+ :coderay_wrap => @config['kramdown']['coderay']['coderay_wrap'],
102
+ :coderay_line_numbers => @config['kramdown']['coderay']['coderay_line_numbers'],
103
+ :coderay_line_number_start => @config['kramdown']['coderay']['coderay_line_number_start'],
104
+ :coderay_tab_width => @config['kramdown']['coderay']['coderay_tab_width'],
105
+ :coderay_bold_every => @config['kramdown']['coderay']['coderay_bold_every'],
106
+ :coderay_css => @config['kramdown']['coderay']['coderay_css']
107
+ }).to_html
108
+ else
109
+ # not using coderay
110
+ Kramdown::Document.new(content, {
111
+ :auto_ids => @config['kramdown']['auto_ids'],
112
+ :footnote_nr => @config['kramdown']['footnote_nr'],
113
+ :entity_output => @config['kramdown']['entity_output'],
114
+ :toc_levels => @config['kramdown']['toc_levels']
115
+ }).to_html
116
+ end
117
+ when 'rdiscount'
118
+ RDiscount.new(content, *@rdiscount_extensions).to_html
119
+ when 'maruku'
120
+ Maruku.new(content).to_html
121
+ end
122
+ end
123
+ end
124
+
125
+ end