Table Of Contents(toc) 就是目录,按标题的纵深分类汇总,方便内容间快速跳转。
rdiscount 支持 toc,需要在创建 RDiscount 对象时添加 :generate_toc 参数:

markdown = RDiscount.new(content, :generate_toc)

然后通过 toc_content 方法输出 toc 内容:

mardown.toc_content

Jekyll (<= 0.9.0) 用 rdiscount 作 markdown 语法转换程序时,未能支持 toc
输出。为此我修改了一段代码改进 jekyll 对 toc 的支持:

/var/lib/gems/1.8/gems/jekyll-0.8.0/lib/jekyll/converters/markdown.rb
 markdown.rb |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git markdown.rb markdown.rb
index 00c56d7..09c53ed 100644
--- markdown.rb
+++ markdown.rb
@@ -103,7 +103,8 @@ module Jekyll
             }).to_html
           end
         when 'rdiscount'
-          RDiscount.new(content, *@rdiscount_extensions).to_html
+          markdown = RDiscount.new(content, *@rdiscount_extensions)
+          markdown.toc_content + markdown.to_html
         when 'maruku'
           Maruku.new(content).to_html
       end