Miscellaneous Trouble-shooting

在文章中插入 pdf 文件

参考内容在此.

实际按参考内容操作时, 编译不通过. 查看 github 仓库发现 Jekyll 进程出现问题如下:

error-Build with Jekyll

具体问题为

1
Liquid Exception: Liquid syntax error (line 59): Unknown tag 'pdf' in lib/pdf/README.md

解决方案: 绕开这位变身博士的阻拦. 需要在 hexo 博客文件根目录下添加一个空白的 .nojekyll 文件, 从而跳过 Jekyll.

参考文档

最终插入 pdf 效果.

  • 待解决: pdf 在移动端不能显示, 在部分浏览器下只能下载文件, 不能在网页中浏览.(插件不支持?)

latex 数学公式相关问题

一些符号规则

  • 上标 不能用 \prime 输入, 只能用键盘的英文单引号.
  • 使用两个 $$ 创建行间公式时, 前后的 $$ 需另起一行, 这样较规范. 部分编辑器不能把没换行的 $$ 识别为居中行间公式.

其他 markdown 语法冲突问题

  • 各级标题(前面带有几个 # 的文字)前后需空行, 不能有缩进(建议在源代码格式下检查缩进).

    例如:

    悲惨实例1

    不能渲染为标题, 因为前面有一个缩进. (使用 typora 编辑器源代码模式.)

    再例如:

    悲惨实例2

    不能渲染为标题, 因为前后没有空行.

  • 无序列表(前面带有一个 * 的文字)前后需空行. 也可以用 - 代替 *, 效果相同.

  • 各种带格式的文本(加粗, 代码块, 列表等等), 尽量在转义符号前后加上空格, 谨防各种奇怪的 error.

  • 公式离奇失效:

    悲惨实例3

    在某个行间公式中删掉了一些多余的空格, 一些随缘的修修补补, 敲敲打打, 公式恢复正常渲染.(为什么?)

  • 某次上传新文档(含大量物理公式)时, hexo generate 报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FATAL {
err: Template render error: (unknown path)
SyntaxError: Invalid hexadecimal escape sequence
at Object._prettifyError (\ROOT\TO\MY\blog\node_modules\nunjucks\src\lib.js:36:11)
... 17 lines matching cause stack trace ...
at processImmediate (node:internal/timers:466:21) {
cause: Template render error: (unknown path)
SyntaxError: Invalid hexadecimal escape sequence
at Object._prettifyError (\ROOT\TO\MY\blog\node_modules\nunjucks\src\lib.js:36:11)
at Template.render (\ROOT\TO\MY\blog\node_modules\nunjucks\src\environment.js:538:21)
at Environment.renderString (\ROOT\TO\MY\blog\node_modules\nunjucks\src\environment.js:380:17)
at \ROOT\TO\MY\blog\node_modules\hexo\lib\extend\tag.js:236:16
at tryCatcher (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\util.js:16:23)
at Function.Promise.fromNode.Promise.fromCallback (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\promise.js:209:30)
at Tag.render (\ROOT\TO\MY\blog\node_modules\hexo\lib\extend\tag.js:235:20)
at Object.onRenderEnd (\ROOT\TO\MY\blog\node_modules\hexo\lib\hexo\post.js:426:22)
at \ROOT\TO\MY\blog\node_modules\hexo\lib\hexo\render.js:85:21
at tryCatcher (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\promise.js:547:31)
at Promise._settlePromise (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\promise.js:604:18)
at Promise._settlePromise0 (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\promise.js:649:10)
at Promise._settlePromises (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\promise.js:729:18)
at _drainQueueStep (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\async.js:93:12)
at _drainQueue (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\async.js:86:9)
at Async._drainQueues (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\async.js:102:5)
at Immediate.Async.drainQueues (\ROOT\TO\MY\blog\node_modules\bluebird\js\release\async.js:15:14)
at processImmediate (node:internal/timers:466:21),
isOperational: true
}
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html

查看系统生成文件, 查看数学公式语法规范, 看不出所以然. 检索问题 Invalid hexadecimal escape sequence 了解到, 用于表示 ascii 字符集的十六进制转义序列通常形式是[反斜杠+x+数字]. 这一规则与 latex 中的希腊字母 ξ 产生编译冲突. 将文本中所有的 ξ 都改成其他符号(我使用的是 ζ), 再次执行 hexo generate, 正常运行.

参考的网页相关解释文档在此.

  • 待解决: 如何解决语法冲突?(我就是想在公式中用 ξ 怎么办? )

(待续.)