npm 包 gatsby-remark-prismjs 使用教程

阅读时长 6 分钟读完

在开发网站和应用程序时,我们经常需要展示和高亮显示代码。在前端开发中,有很多库可以实现代码高亮,其中一个流行的工具是 PrismJS。

PrismJS 是一款开源的轻量级语法高亮库,支持多种语言,用法简单灵活。在这篇文章中,我们将介绍如何在 Gatsby 网站中使用 PrismJS 的 Gatsby 插件 gatsby-remark-prismjs。

前置知识

在阅读本教程前,你需要熟悉以下技术:

  • Markdown 基础语法
  • Gatsby 网站开发基础知识
  • JavaScript 和 React 基础知识
  • Node.js 和 npm 的基础知识

安装 gatsby-remark-prismjs

安装 gatsby-remark-prismjs 很简单,只需要通过 npm 安装即可。打开终端,切换到你的 Gatsby 网站目录下,输入以下命令:

其中,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,PrismJS 还支持多种语言,包括 CSS、HTML、Python、PHP 等等。你可以在代码块中指定语言名称,来让 PrismJS 进行对应语言的高亮操作。例如,在 Markdown 文件中输入以下代码:

这样,就可以将上面的 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 文件中输入以下代码:

这样,就可以看到自定义代码块中的注释已经被成功高亮了。

总结

本文介绍了如何在 Gatsby 网站中使用 PrismJS 的 Gatsby 插件 gatsby-remark-prismjs 进行语法高亮。在使用过程中,你可以根据需要指定相关语言并自定义样式。希望通过本文的介绍,你可以更好地实现代码高亮功能,提高开发效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/gatsby-remark-prismjs