突出显示 pre 标记中的语法,并突出显示.js
highlight syntax in pre tags with highlight.js
这里有一个非常强大的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/
当前版本的 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]);
}
};
我认为您只需要将初始化更改为:
$("pre").each(function (i, e) {
hljs.highlightBlock(e);
});
并且不要将"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]);
}
};
它需要处于window.onload
或类似的东西中,以确保 DOM 已准备好进行操作。
一个特殊的相关情况,尽管对于评论来说太长了:
在新的 blogger.com/blogspot 动态视图模板和其他类似的站点上,对 DOM 完成事件的调用是不够的,因为在这种情况下,DOM 实际上是加载的,但仅由一个注入就绪的div 元素组成,并且 DOM 内容是通过 JavaScript 方法注入的,该方法本身在设置超时中调用:
setTimeout(function() {
blogger.ui().configure().view();
}, 800);
为了使语法突出显示起作用,必须完成复杂的 DOM 树。一种解决方案是在漫长的超时期限后触发hljs.initHighlightingOnLoad();
或自定义highlightBlock
函数。
setTimeout(function() {
blogger.ui().configure().view();
setTimeout(function() {$('pre code').each(function(i, e) {hljs.highlightBlock(e)});}, 2000);
}, 800);
预构建版本的 highlight.js 具有 22 种常用语言,由以下 CDN 托管:
中新社========== JSDELIVR==========
在网页上使用 highlight.js 的最低要求是链接到库以及其中一个样式并调用 initHighlightingOnLoad:
<脚本> hljs.initHighlightingOnLoad(); 脚本>
这将查找并突出显示
标签中的代码;它试图自动检测语言。如果自动检测对您不起作用,您可以在 class 属性中指定语言
<前> 这是标题 1
前>
有关更多信息,请参阅这两个链接。
https://highlightjs.org/usage/https://highlightjs.org/download/
- 隐藏/显示 js 代码不会在 IE8 或更低版本上运行
- 关闭网页时没有显示 Js 的工作时间
- Firebug不再显示JS错误
- 如何在标题标签上显示 JS 变量
- 为什么突出显示.js忽略了语言类
- 在某些情况下显示 JS 警报
- 带有文本显示js功能的图像映射 - 某些部分不显示
- 防止显示.js缩放
- 突出显示 pre 标记中的语法,并突出显示.js
- 更改滚动显示.js视口
- 如何使用 bower 构建依赖关系(例如突出显示.js)
- angularjs:不能显示 JS 'typeof' 的返回值
- 提交后显示 JS/Ajax 消息
- 突出显示.js在文本区域中
- 车把内脚本中的 HTML 在使用 ember 时不显示.js + 剑道 UI
- 使用 jQuery.AJAX 在 Div 中显示 JS 图表
- 在样式模式 (jQuery UI) 窗口中显示 JS 警报
- 突出显示.js在 AngularJS SPA 中不起作用
- Gulp uglify 失败并显示 js 解析错误
- 使用Sharepoint列表值时未显示JS警报