Jekyll kramdown配置

2015.06.30 | Comments

之前博客是使用的redcarpet的markdown语法,其在_config.yml中的配置方式为:

markdown: redcarpet
redcarpet:
    extensions: [ "fenced_code_blocks", "hard_wrap","autolink", "tables", "strikethrough", "superscript", "with_toc_data", "highlight", "prettify","no_intra_emphasis"]

这种配置支持使用 ~~~ 高亮代码块、自动链接、表格等特性。

现在,想尝试使用karkdown的语法。kramdown是一个Markdown解析器,它能够正确解释公式内部的符号,不会与Markdown语法冲突,比如不会将^符号变成标签。

kramdown支持MathJax,见Jekyll中使用MathJax

kramdown默认是支持TOC,你可以进一步设置TOC相关的参数,见 为 Octopress 添加 TOC

安装kramdown:

$ gem install kramdown

在_config.yml中的配置方式为:

markdown: kramdown
kramdown:
  input:  GFM
  use_coderay: true

在编写文章时,插入下面代码,渲染之后就可以生成TOC了:

* TOC
{:toc}

krmadown支持和github一样的语法高亮,用三个 ~~~,但是需要安装coderay,而github pages上不支持coderay,所以该方式无法搞定,可行的解决方法是上传本地编译好的html。如果是本地或者自己的空间,可以安装coderay。

$ gem install coderay

使用 ~~~ 引用代码块:

class AdView (object):
    def __init__ (self, name = None):
        self.name = name

    def test (self):
        if self.name == 'admin':
            return False
        else
            return True

更多语法,见kramdown语法小记

最后的配置为:

kramdown:
  input: GFM
  extensions:
    - autolink
    - footnotes
    - smart
  use_coderay: true
  syntax_highlighter: rouge
  coderay:
    coderay_line_numbers:  nil

coderay支持的语言有限,并且rouge兼容Pygments,故这里使用rouge:

$ gem install rouge

参考文章


原创文章,转载请注明: 转载自JavaChen Blog,作者:JavaChen
本文链接地址:http://blog.javachen.com/2015/06/30/jekyll-kramdown-config.html
本文基于署名2.5中国大陆许可协议发布,欢迎转载、演绎或用于商业目的,但是必须保留本文署名和文章链接。 如您有任何疑问或者授权方面的协商,请邮件联系我。