代码高亮:Prism.js与Highlight.js示例
1. Prism.js
Prism.js是一个轻量级的代码高亮库,支持超过200种编程语言的语法高亮,并提供了丰富的主题和定制选项。Prism.js易于使用,可以直接在HTML页面中引入脚本文件,并通过简单的配置实现代码高亮。
使用示例:
首先,我们需要在HTML页面中引入Prism.js的核心文件和所需的语言扩展:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prism.js 示例</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.css">
</head>
<body>
<pre><code class="language-javascript">
console.log('Hello, Prism.js!');
</code></pre>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/prism.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/components/prism-javascript.min.js"></script>
</body>
</html>
以上示例展示了如何在HTML页面中使用Prism.js对JavaScript代码进行高亮。首先,在<head>
中引入Prism.js的样式文件,然后在<body>
中使用<pre><code>
标签包裹代码,并添加对应的语言类名,最后引入Prism.js的脚本文件和所需的语言扩展。
2. Highlight.js
Highlight.js是另一个流行的代码高亮库,支持超过180种编程语言的语法高亮,并提供了多种主题和配置选项。Highlight.js易于使用,可以直接在HTML页面中引入脚本文件,并通过简单的配置实现代码高亮。
使用示例:
与Prism.js类似,我们需要在HTML页面中引入Highlight.js的核心文件和所需的语言扩展:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Highlight.js 示例</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/default.min.css">
</head>
<body>
<pre><code class="language-javascript">
console.log('Hello, Highlight.js!');
</code></pre>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/languages/javascript.min.js"></script>
<script>
hljs.highlightAll();
</script>
</body>
</html>
以上示例展示了如何在HTML页面中使用Highlight.js对JavaScript代码进行高亮。首先,在<head>
中引入Highlight.js的样式文件,然后在<body>
中使用<pre><code>
标签包裹代码,并添加对应的语言类名,最后引入Highlight.js的脚本文件和所需的语言扩展,并调用hljs.highlightAll()
函数来实现代码高亮。
3. React中的实现
下面我们来看看如何在React中使用Prism.js和Highlight.js进行代码高亮。
React中使用Prism.js:
首先,我们需要安装Prism.js的npm包:
npm install prismjs
然后,在React组件中引入Prism.js并进行代码高亮:
import React from 'react';
import Prism from 'prismjs';
import 'prismjs/themes/prism.css'; // 引入样式文件
function PrismComponent() {
return (
<pre>
<code className="language-javascript">
{`
console.log('Hello, Prism.js!');
`}
</code>
</pre>
);
}
export default PrismComponent;
React中使用Highlight.js:
首先,我们需要安装Highlight.js的npm包:
npm install highlight.js
然后,在React组件中引入Highlight.js并进行代码高亮:
import React, { useEffect } from 'react';
import hljs from 'highlight.js';
import 'highlight.js/styles/default.css'; // 引入样式文件
function HighlightComponent() {
useEffect(() => {
hljs.highlightAll();
}, []);
return (
<pre>
<code className="language-javascript">
{`
console.log('Hello, Highlight.js!');
`}
</code>
</pre>
);
}
export default HighlightComponent;
4. 对比与结论
对比:
-
易用性:Prism.js和Highlight.js都易于使用,但在React中,使用Highlight.js时需要调用
hljs.highlightAll()
函数进行手动高亮,而Prism.js则不需要。 -
功能:两者在语法支持和主题定制方面都非常丰富,都能满足大多数项目的需求。Prism.js支持更多的编程语言,而Highlight.js提供了更多的主题选项。
转载自:https://juejin.cn/post/7369978126145749003