为什么突出显示.js忽略了语言类

Why the highlight.js ignores the language classes?

本文关键字:语言 js 显示 为什么      更新时间:2023-09-26

我正在使用 Highlight.js 库来突出显示 Blogger 中的代码,但它拒绝正确突出显示 Lisp 代码。

在博客上的文章中:

<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 变得可识别?

你正在使用托管版本,其中包括许多公共语言的定义,但Lisp不在其中。有关完整列表,请参阅下载页面。在这种情况下,class 属性中的"lisp"单词不知道突出显示.js它会尝试自动检测语言。

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