在开发网站和应用程序时,我们经常需要展示和高亮显示代码。在前端开发中,有很多库可以实现代码高亮,其中一个流行的工具是 PrismJS。
PrismJS 是一款开源的轻量级语法高亮库,支持多种语言,用法简单灵活。在这篇文章中,我们将介绍如何在 Gatsby 网站中使用 PrismJS 的 Gatsby 插件 gatsby-remark-prismjs。
前置知识
在阅读本教程前,你需要熟悉以下技术:
- Markdown 基础语法
- Gatsby 网站开发基础知识
- JavaScript 和 React 基础知识
- Node.js 和 npm 的基础知识
安装 gatsby-remark-prismjs
安装 gatsby-remark-prismjs 很简单,只需要通过 npm 安装即可。打开终端,切换到你的 Gatsby 网站目录下,输入以下命令:
npm install gatsby-remark-prismjs prismjs
其中,prismjs
是 PrismJS 库本身,也需要安装。
配置 gatsby-remark-prismjs
安装完成后,在 Gatsby 配置文件中配置 gatsby-remark-prismjs。打开 gatsby-config.js
,加入以下代码:
-- -------------------- ---- ------- - -------- ---------------------------- -------- - -------- - - -------- ------------------------ -------- - ------------------ ----- ------------ ----------- - - - - -展开代码
在 plugins 数组中,添加了一个插件 gatsby-remark-prismjs
,该插件会在将 Markdown 转换为 HTML 时,对代码块进行语法高亮处理。
在 options
中,我们设置了两个选项:
noInlineHighlight: true
,禁止在行内代码块中进行语法高亮classPrefix: 'language-'
,设置语言类名前缀为language-
使用 PrismJS 进行语法高亮
配置完成后,我们来试试在 Markdown 文件中使用 PrismJS 进行语法高亮。在 Markdown 文件中输入以下代码:
```javascript
console.log('Hello, world!');
```
在预览网站时,你会看到代码块已经被成功高亮了。
使用其他语言进行语法高亮
除了 JavaScript,PrismJS 还支持多种语言,包括 CSS、HTML、Python、PHP 等等。你可以在代码块中指定语言名称,来让 PrismJS 进行对应语言的高亮操作。例如,在 Markdown 文件中输入以下代码:
```css
body {
background-color: #f0f0f0;
}
```
这样,就可以将上面的 CSS 代码高亮。
自定义 PrismJS 样式
最后,我们来讲一下如何自定义 PrismJS 的样式。PrismJS 提供了多个默认的样式表,你可以在网站中引入它们,或者自定义你自己的样式。
在这里,我们选择自定义样式。打开项目中的 CSS 文件,添加以下代码:
-- -------------------- ---- ------- -- ------- ----- -- ----------------------- - ------- --- -- -------- ---- --------- ----- ---------- ----- ------------ ---- ------------ --------- ---------- ----------- -------------- ---- ----------------- -------- - ------------------------- ----------------------- - ------------ ------ ------- -------- ----- --------- ----------- - ------------------------------------------ - ------ ---- ------- ---- ----------------- -------- - ------------------------------------------------ - -------------- ---- ----------------- -------- - ------------- ------------- - ------ ------ ---- ----- - -------------------- -------------- - ------ -------- --- ---- - -- ------- -- ---------------- -------------- - ------ ----- -展开代码
我们在上面的代码中定义了一些 CSS 样式,包括:
pre[class*="language-"]
,代码块的样式code[class*="language-"], pre[class*="language-"]
,代码文本的样式pre[class*="language-"]::-webkit-scrollbar
,浏览器滚动条的样式.language-css .token.string
,CSS 代码中字符串的样式.language-javascript .token.keyword
,JavaScript 代码中关键字的样式.language-custom .token.comment
,自定义语言中注释的样式
最后,我们来试试如何使用这个自定义样式。在 Markdown 文件中输入以下代码:
```custom
// 这是一段自定义语言的代码块
function sayHello() {
console.log('Hello, world!');
}
```
这样,就可以看到自定义代码块中的注释已经被成功高亮了。
总结
本文介绍了如何在 Gatsby 网站中使用 PrismJS 的 Gatsby 插件 gatsby-remark-prismjs 进行语法高亮。在使用过程中,你可以根据需要指定相关语言并自定义样式。希望通过本文的介绍,你可以更好地实现代码高亮功能,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/gatsby-remark-prismjs