prismjs 是一款轻量、可扩展的代码语法高亮库,使用现代化的 Web 标准构建,使用 Prismjs 可以快速为网站添加代码高亮功能,支持超过上百种编程语言,还支持多种插件,是简洁、高效的代码高亮解决方案。
如何使用
我们只需要在页面上引入 prism.css 和 prism.js 文件:
<!DOCTYPE html>
<html>
<head>
...
<link href="https://zhishitu.com" rel="stylesheet" />
</head>
<body>
...
<script src="/prism.js"></script>
</body>
</html>
知识兔根据HTML5规范,代码标记需要使用<code>
元素,使用Prism时,可以给code
元素添加language-xxx
类。如果多个<code>
元素具有相同的语言,则可以在其共同的父元素 上添加language-xxx
类。这样,您还可以通过在<body>
或<html>
元素上添加language-xxx
类来定义文档范围的默认语言。
Prism推荐使用内部语义化的pre
元素和 code
元素来标记代码区块,如下所示:
<pre><code class="language-css">p { color: red }</code></pre>
知识兔如果你的代码块是其他语言,你可以把language-xxx
类中的xxx改成设定的语言,如:html,javascript,php等。
Prism.js支持很多种语言和插件主题。把一些不必要支持的语言包下载下来,会加大库文件大小,拖累我们网站加载速度。所以Prism.js采用自定义下载。在下载页面定,勾选你所需要高亮的语言、主题和插件,然后点击下载即可。下载地址:http://prismjs.com/download.html
你可以使用插件来给代码添加行号,只需要在pre
标签中加上line-numbers
类即可。在之前的js代码中添加一行。
当然,我们也可以使用NPM来安装Prismjs:
$ npm install prismjs
知识兔这样使用:
var Prism = require('prismjs');
// The code snippet you want to highlight, as a string
var code = "var data = 1;";
// Returns a highlighted HTML string
var html = Prism.highlight(code, Prism.languages.javascript);
知识兔Prism.js主要功能列表
极致易用,引用 prism.css 和 prism.js,使用合适的 HTML5 标签(code.language-xxxx),搞定!
压缩后只有2KB的大小(核心)。每种语言定义增加了大约300-500字节。
语言的 CSS 类是可继承的,所以你只需定义一次就能应用到多个代码片段。
如果可能,支持通过 Web Workers 实现并行。
由于Prism的插件架构,非常容易扩展而无需修改代码。
突出显示特定的行和/或行范围(需要插件)
显示不可见的字符,如制表符,换行符等(需要插件)
自动链接URL和电子邮件,在评论中使用Markdown链接(需要插件)