写出来的都是shit,快关闭!

Pygments Can't Parse Unknown Language: Ruby

用markdown写blog遇到了这个问题。

首先呢,Pygments是一个语法高亮插件。用法及原理这里就不展开聊了。

今天主要解决这个问题:Pygments Can’t Parse Unknown Language: Ruby >>> Pygments不能解析未知的语言:ruby

真是日了狗!

讲道理,Pygments可是支持超过100种语言的!

另外毕竟朕知道,我大Ruby的用户至少前10吧,怎么可能不支持解析呢!

辣么,说明是某段ruby <code>标签有语法问题。

怎么定位问题呢?Good Question.

1.终端打开blog根目录,输入

1
grep "Pygments can't parse unknown language" -rn ./*

./plugins/pygments_code.rb:27: raise “Pygments can’t parse unknown language: #{lang}.

2.打开./plugins/pygments_code.rb

1
vim ./plugins/pygments_code.rb +27
1
2
3
4
5
begin
  highlighted_code = Pygments.highlight(code, :lexer => lang, :formatter => 'html', :options => {:encoding => 'utf-8', :startinline => true})
rescue MentosError
  raise "Pygments can't parse unknown language: #{lang}."
end

通过 highlighted_code = Pygments.highlight code, :lexer => lang
得出: code是所要解析的代码,而lang是语言名称。

3.添加错误定位提示。

1
2
  -raise "Pygments can't parse unknown language: #{lang}."
  +raise "Pygments can't parse unknown language: #{lang}. error_code: #{code}"

最后,很可能你会发现你的语法并没有问题。

那么怎么办?Good Question Again.

3个```与代码之间需要有一个空行。