前言:不知道为什么有关这方面配置的博客很少,而且方法都不是很统一,因此做个记录。

一、模块配置

  pangu(盘古)模块是一个渲染脚本,用于在博客的中英文、数字之间自动添加空格,使中英文文字混排变得美观。下面是开源地址和作者的碎碎念:

汉学家称这个空白字元为「盘古之白」,因为它劈开了全形字和半形字之间的混沌。另有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。

  我的 butterfly 主题版本是 4.9.0,在配置文件中找到pangu关键字并启用:

pangu:
enable: true
field: site # site/post

  这里site表示全站启用,post表示仅 post 页面启用。有些博客到这里就 OK 了,但是我的配置并未成功,还需要安装 hexo-pangu 组件,这里并不直接安装 pangu 组件是因为需要进行魔改才能生效,比较麻烦。

npm install hexo-pangu

  然后就能在页面中看到启用后的效果了。

二、相关问题

  部署之后在控制台界面出现了Uncaught SyntaxError: Cannot use import statement outside a module的报错。具体报错代码在pangu.min.js中第 7 行:

import {Pangu} from "../shared/index.js";

  大概意思是这个 js 文件使用了 ES6 的 import 语法,而浏览器默认不支持。解决方法可以将 pangu.min.js 设置为模块引入,或者将 js 本地重构,转换为浏览器可执行的 JavaScript。
  经过搜索找到了 pangu 官方使用 UMD 构建的版本,可以兼容 script 引入:

<script src="https://cdn.jsdelivr.net/npm/pangu@7.2.0/dist/browser/pangu.umd.js"></script>

  由于 jsdelivr 国内访问不稳定,我将其部署在了本地,这样部署后就不会出现报错了:

options:
pangu: /js/pangu.umd.js