upd 29/7/2026: 注意,本文章针对 hexo,这不是现在博客采用的框架。

live2d和aplayer

有时加载会很慢或者无法加载,这可能只是live2d和aplayer自身的问题。尤其是aplayer,偶尔会有几天在任何设备上都无法加载(我只遇到过一次)。

注意如果要使用网易的服务,要写成data-server="netease",我这里因为不知道网易的英文名试了半天 -_-# ,不得不吐槽一下网易的这个英文名真的随便啊。

Upd:最后还是决定不使用 aplayer 了,VIP 音乐只能放 30 秒,而且访客也根本不会在意某个博客下面的音乐列表,至少我是这样。

Gitalk加载失败

Gitalk配置完成之后,仍有可能无法加载。这是因为其部分服务在墙外,需要翻墙访问文章页面以创建issue。之后即使不翻墙也可正常显示。

MathJax渲染失败

Hexo默认使用 hexo-renderer-marked 引擎渲染网页,该引擎会把一些特殊的 markdown 符号转换为相应的 html 标签,会产生语义冲突。

解决方案:更换Hexo的markdown渲染引擎。

npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save

接下来到博客根目录下,找到node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改:

//  escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
  escape: /^\\([`*\[\]()#$+\-.!_>])/

同时把第20行的em变量也要做相应的修改:

//  em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
  em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/

重新启动hexo即可。

问题(未解决): 在 Hexo 中使用 MathJax 渲染数学公式时,行内公式可能会遇到左撇被渲染成右撇的问题。这是因为 MathJax 默认使用美国数学协会(American Mathematical Society,简称 AMS)的数学符号字体,而该字体中的左撇和右撇是相反的。

代码缩进混乱

这是tab缩进的问题。

找到站点配置文件中tab_replace,设置tab_replace: ' '(4个空格)即可。

嵌入音频和视频的方法

嵌入音频的例子(网易云等可生成外链的网站):

<html>
<center>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
	<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="https://music.163.com/outchain/player?type=2&id=2045807071&auto=0&height=66"></iframe>
</body>
</center>
</html>

嵌入音频的例子(其他):

<center>
<audio controls="controls" loop="loop">
	<source src="https://例子" type="audio/mp3"></source>
</audio>
</center>

嵌入视频的例子(bilibili):

<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
    <iframe src="https://player.bilibili.com/player.html?bvid=BV1po4y157Sz&page=1&autoplay=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position:absolute; height: 100%; width: 100%;"> </iframe>
</div>

嵌入视频的例子(youtube):

<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
    <iframe src="https://www.youtube-nocookie.com/embed/7Hk3bW0yT2s?si=clISeZjsqLiaNs6I" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position:absolute; height: 100%; width: 100%;"> </iframe>
</div>

外链音乐播放器手机端无法显示

暂未解决。

参考文献角标

前:

<a href="#bib1" id="bib1ref"><sup>[1]</sup></a>

后:

<a id="bib1" href="#bib1ref"><sup>[1]</sup></a> 这是一个示例,你可以修改此处文字

这是一个华丽丽的示例[1]

hexo pdf

参考: https://github.com/superalsrk/hexo-pdf

用法示例:

{% pdf https://drive.google.com/file/d/此处填入共享链接对应部分/preview %}

内嵌 PPT

使用 Microsoft 的 OneDrive 服务。

在 OneDrive 中上传你需要展示的 PPT ,然后选中文件,找到</>生成内嵌代码。

默认的代码在大小上有点问题,你可能需要修改为:

<iframe
  id="ppt"
  width="100%"
  onload="autoChange()"
  src="填入你获得的链接"
  frameborder="0"
></iframe>

<script>
  function autoChange() {
    let ifm = document.getElementById("ppt");
    ifm.height = (ifm.clientWidth / 16) * 9 + 24;
  }
  window.onresize = autoChange;
</script>

注意:如果你需要内嵌多个 PPT ,则应修改相应的id和函数名。

遮挡、外挂标签等

{% psw 示例 %}

外挂标签,请参考:Hexo+butterfly主题的外挂标签

此为 hexo 特有,如未来有换主题的打算,应减少使用。

iframe 嵌入网页

<iframe frameBorder="0" width="100%" height="100%" style="min-width: 300px; min-height:500px" src="网址" ></iframe>

这个尺寸适合我的博客,大小可以调整。

博客迁移

主体工作很简单,直接将博客根目录、NODEJS 复制到一块U盘/硬盘上,粘贴到新电脑即可。此外,还须做一些其他工作。

在博客根目录下,搜索文件hexo.cmd所在的目录,将路径配置到环境变量中。

将 NODEJS 所在路径,例如D:\NODEJS配置到环境变量中。

安装 git, Github 配置 SSH keys.

不要忘了将数据备份(例如图片资源)也迁移到新电脑上。

我这里不选择下载新版本的 NODEJS 是考虑到可能会与自己一开始用的版本有所不同,所以直接把旧电脑的 NODEJS 文件夹复制过来。

字体问题

该问题出现于 2026 年。

在过去的几年,Hexo 圈子依赖的很多免费 CDN(比如 jsDelivr 国内节点、各种 elemecdn 等)都经历了关停、被劫持或者降级。这导致了一些问题,于是我们用 CSS 强行绕过它,直接去最稳定的国际 CDN 拿货。

./source/css/custom.css 的最前面添加如下代码:

/* =======================================================
   强行接管 Font Awesome 6 字体下载源,绕过腐烂的 CDN
   ======================================================= */
@font-face {
  font-family: 'Font Awesome 6 Free';
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/webfonts/fa-solid-900.woff2') format('woff2'),
       url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/webfonts/fa-solid-900.ttf') format('truetype');
}

写码技巧

//            ⠀⠀⠀⠀⠰⢷⢿⠄   
//            ⠀⠀⠀⠀⠀⣼⣷⣄   
//            ⠀⠀⣤⣿⣇⣿⣿⣧⣿⡄ 
//            ⢴⠾⠋⠀⠀⠻⣿⣷⣿⣿⡀
//            ○ ⠀⢀⣿⣿⡿⢿⠈⣿ 
//            ⠀⠀⠀⢠⣿⡿⠁⠀⡊⠀⠙
//            ⠀⠀⠀⢿⣿⠀⠀⠹⣿  
//            ⠀⠀⠀⠀⠹⣷⡀⠀⣿⡄ 
//            ⠀⠀⠀⠀⣀⣼⣿⠀⢈⣧.
//
//     _     _   _    _    _    _     _
//    |_|   | |/ /   | |  | |  |  \  | |
//     _    | ' /    | |  | |  | \ \ | |
//    | |   |   \    | |  | |  | |\ \| |
//    | |   | |\ \   | |__| |  | | \ \ |
//    |_|   |_| \_\   \_____/  |_|  \ _|

[1] 这是一个示例,你可以修改此处文字