使用 Prism.js 实现代码语法高亮

发布于 2019-06-02

使用 Prism.js 实现代码语法高亮

之前给大家推荐过两款代码高亮库,分别是 code-prettify 和 Crayon Syntax Highlighter,今天给大家推荐的是另一个代码高亮库Prism.js。

一、介绍

Prism.js 是一款轻量的、可以定制的代码高亮显示插件,官网:http://prismjs.com,使用 Prismjs 可以快速为网站添加代码高亮功能。Prism.js 采用自定义下载,支持超过 100 多种编程语言,还支持很多种插件,目前有8种主题可供选择,是简洁、高效的代码高亮解决方案。

二、下载

访问官网下载页面:

官方网站下载

由四部分构成:

  • 核心代码(Core)
  • 主题(Themes)
  • 支持高亮的语言(Languages)
  • 需要的插件(Plugins)

下载:

选择 Themes、Languages 及 Plugins 后,点击底部的下载按钮,会得到 prism.css 和 prism.js 两个文件。

三、配置及使用

1、首先引入 prism.css 和 prism.js 文件

 <link href="prism.css" rel="stylesheet" />
 <script src="prism.js"></script>

2、添加标签

遵循 HTML5 标准,Prism 使用语义化的 <pre> 元素和 <code> 元素来标记代码区块。

<pre class="line-numbers">
    <code class="language-markup">
    </code>
</pre>

页面上只要遇到类似上面的代码,就会被高亮。line-numbers便是显示行号,language-markup就是语言。

3、添加行号

需要实现行号效果,只需要在<pre>标签中加上line-numbers类即可。使用了 jQuery,也可以通过jQuery来添加行号。

<script type="text/javascript">
    $('pre').addClass("line-numbers");
</script>

示例代码

代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="keywords" content="prism,WordPress,代码高亮" />
    <link rel='stylesheet' href='prism.css' type='text/css' />
    <script type='text/javascript' src='prism.js'></script>
</head>
<body>
    <pre class="line-numbers">
        <code class="language-javascript">
            var Prism = require('prismjs');
            var loadLanguages = require('prismjs/components/');
            loadLanguages(['haml']);

            // The code snippet you want to highlight, as a string
            var code = "= ['hi', 'there', 'reader!'].join \" \"";

            // Returns a highlighted HTML string
            var html = Prism.highlight(code, Prism.languages.haml, 'haml');
        </code>
    </pre>
</body>
</html>
喜欢 1
奋楫笃行,臻于至善!

相关文章

基于 canvas 一款非常酷炫的动态气泡背景实现方法

canvas 是 HTML5 新增的标签,利用它我们可以轻松实现图形的绘制。canvas 元素本身并没有绘制能力,它只是一个图形的容器,必须使用脚本(通常是 JavaScript)配合来完成绘图任务。...
阅读全文

基于 sketch.js 实现非常酷炫的鼠标点击特效

JavaScript 是浏览器端脚本语言,有许多非常实用的第三方 JS 类库,我们可以借助它来实现各种各样的特效,今天为大家分享一下基于 sketch.js 实现鼠标点击特效的方法。 实现方法 实现的...
阅读全文

网站夜间模式的实现思路与详细教程分享

网站夜间模式是怎样实现的? 整体思路 夜间模式开关按钮:用来手动切换夜间模式的,会存储cookie。 自动夜间模式:当cookie为空时,浏览器时间大于22点小于6点时会自动进入夜间模式,并存储coo...
阅读全文

pace.js 网页自动加载进度条 JavaScript 插件

我们在浏览网页的时候,经常会看到网站顶部有一个好看的加载进度条,我们可能会好奇它是怎样实现的。页面的加载进度百分比,有时候获取是比较麻烦的,当然也可以利用一些优秀的JavaScript插件来实现,今天...
阅读全文

Vue.js 开发环境搭建及实例运行简明教程

Vue和jQuery一样,是一个前端框架,如果你要问在过去的一年里,前端技术框架什么最火,那无疑就是前端三巨头:React、Angular和Vue。今天,我们就一起来简单了解一下什么是Vue,以及它的...
阅读全文

nofollow、noopener 和 noreferrer 的区别与联系

大家应该都知道rel='nofllow'的作用,它是告诉搜索引擎,不要将该链接计入权重。因此多数情况下,我们可以将一些不想传递权重的链接进行nofllow处理,例如一些非本站的链接,不想传递权重,但是...
阅读全文

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注