Pygments错误:别名没有词法分析器 - 代码块中的下划线

时间:2014-08-26 15:35:15

标签: jekyll github-pages pygments github-flavored-markdown redcarpet

我正在与所有常见的嫌疑人一起开展github-pages项目。我试图将我的降价从kramdown切换到redcarpet,以更好地支持GFM进行本地开发。我有一个现有的项目只有一个麻烦的降价部分。它是一个单行代码块,其变量名称包含下划线。

```function_field_name```

_config.yml

markdown: redcarpet

redcarpet:
  extensions: ["tables", "autolink", "strikethrough", "space_after_headers", "with_toc_data",  "no_intra_emphasis", "fenced_code_blocks"]

highlighter: pygments
safe: true

我收到以下错误:

  

转换错误:转换" queries.md'时出错。杰奇   2.2.0 |错误:回溯(最近一次调用最后一次):文件" /Users/shawnjohnson/.rvm/gems/ruby-2.1.1/gems/pygments.rb-0.6.0/lib/pygments/mentos.py" ;,   第303行,开头       res = self.get_data(method,lexer,args,kwargs,text)File" /Users/shawnjohnson/.rvm/gems/ruby-2.1.1/gems/pygments.rb-0.6.0/lib/pygments /mentos.py" ;,   第171行,在get_data中       res = self.highlight_text(text,lexer,formatter_name,args,_convert_keys(opts))File" /Users/shawnjohnson/.rvm/gems/ruby-2.1.1/gems/pygments.rb-0.6.0/ LIB / Pygments来做/ mentos.py&#34 ;,   第122行,在highlight_text中       lexer = self.return_lexer(lexer,args,kwargs,code)File" /Users/shawnjohnson/.rvm/gems/ruby-2.1.1/gems/pygments.rb-0.6.0/lib/pygments/mentos的.py&#34 ;,   第79行,在return_lexer中       return lexers.get_lexer_by_name(lexer,** inputs)File" /Users/shawnjohnson/.rvm/gems/ruby-2.1.1/gems/pygments.rb-0.6.0/vendor/pygments-main/pygments/词法分析器/的初始化的.py&#34 ;,   第98行,在get_lexer_by_name中       提高ClassNotFound('找不到别名%r的lexer'%_alias)ClassNotFound:别名没有词法分析器' function_field_name```'结果

2 个答案:

答案 0 :(得分:1)

你的反对必须像这样定位:

``` javascript
function_field_name
```

但是对于背景,你将没有突出显示。首选高亮标记

{% highlight javascript %}
function_field_name
{% endhighlight %}

另外:如果你想让kramdown成为GFM complient,只需将其添加到_config.yml

markdown: kramdown

kramdown:
  # use Github Flavored Markdown
  input: GFM
  # do not replace newlines by <br>s
  hard_wrap: false

答案 1 :(得分:0)

我发现了什么问题,这是一个愚蠢的问题(:

您会看到日志:ClassNotFound: no lexer for alias 'function_field_name```' found,其中function_field_name```实际上是您在荧光笔语法中放置的内容。您应该使用javascript或其他语言,而不是function_field_name```

Pygments给出了错误消息,因为没有名为“function_field_name```的编程语言。我确定你刚刚开始使用pygments,你只是从其他地方复制了源代码。

为了使其更清晰,您应该使用

{% highlight javascript %}
function_field_name
{% endhighlight %}

{% highlight function_field_name```  %}
function_field_name
{% function_field_name```  %}