使用highlight.js突出显示pre标签中的语法

Vah*_*hid 9 javascript syntax highlight

这里有一个强大的javascript代码用于语法高亮:

http://softwaremaniacs.org/soft/highlight/en/

但是这个代码只是工作<pre><code></code></pre>块,这是我的问题,我想只使用<pre></pre>,因为Chrome和Safari不包括换行符<pre><code></code></pre>当副本和以往的代码,但<pre></pre>它的工作.

还有一个用户指南,但说实话,我无法理解我必须做些什么才能突出显示预标签.用户指南在这里:

http://softwaremaniacs.org/soft/highlight/en/description/

sce*_*sor 11

当前版本的chrome在<code>标记中的换行符没有问题.例如,在chrome中
尝试这个例子.

这里是没有jQuery的版本.

===更新===

这是一个没有<code>标签的例子.

window.onload = function() {
    var aCodes = document.getElementsByTagName('pre');
    for (var i=0; i < aCodes.length; i++) {
        hljs.highlightBlock(aCodes[i]);
    }
};
Run Code Online (Sandbox Code Playgroud)


Ian*_*Ian 8

我想你只需要将初始化更改为:

$("pre").each(function (i, e) {
    hljs.highlightBlock(e);
});
Run Code Online (Sandbox Code Playgroud)

并且不要"pre code"用于jQuery选择器.不确定这是不是插件的使用方式,但我认为这是你需要改变的......

编辑:

如果你不使用jQuery,你可能想尝试类似的东西:

window.onload = function () {
    var allPre, i, j;
    allPre = document.getElementsByTagName("pre");
    for (i = 0, j = allPre.length; i < j; i++) {
        hljs.highlightBlock(allPre[i]);
    }
};
Run Code Online (Sandbox Code Playgroud)

它需要在window.onload或类似的东西,以确保DOM已准备好进行操作.