为什么highlight.js会忽略语言类?

时间:2012-07-02 07:43:22

标签: javascript lisp syntax-highlighting blogger

我正在使用Highlight.js库在Blogger中对代码进行语法突出显示,并拒绝正确突出显示Lisp代码。

在Blogger上的文章:

<pre><code class="lisp">
  (coerce (average 1 2 3 4) 'float)
  > 2.5
</code></pre>

在结束</head>之前的设计模板中:

<script src='http://yandex.st/highlightjs/7.0/lisp.min.js' ></script>
<script src='http://yandex.st/highlightjs/7.0/highlight.min.js' ></script>
<link href='http://yandex.st/highlightjs/7.0/styles/github.min.css' rel='stylesheet' />
<script type='text/javascript'>
  hljs.initHighlightingOnLoad();
</script>

打开文章时突出显示被破坏,Firebug在HTML面板中显示:

<pre>
  <code class="lisp ruby"> // WTF
  ... stylized RUBY tokens here ...
  </code>
</pre>

在某些代码段中,荧光笔会放置<code class="lisp undefined">并拒绝突出显示。当我在Blogger上时,我真的不想将任何内容下载到任何地方,特别是当已经发布语言包时。我应该做些什么来让Lisp变得可识别?

1 个答案:

答案 0 :(得分:6)

您正在使用托管版本,其中包含许多常用语言的定义,但Lisp不在其中。有关完整列表,请参阅download page。在这种情况下,class属性中的“lisp”单词对highlight.js是未知的,它会尝试自动检测语言。

然而,即使Lisp包含在包中,它也不会突出显示您的片段,因为它包含的输出(> 2.5)不是Lisp,而highlight.js中的Lisp定义不允许这样做。