0%

Hexo-Next主题踩坑记录

文章标题含有百分号%导致页面渲染失败无法打开

在用Hexo写文章时,如果文章标题含有百分号%,也就是说如果在文件头里的title出现双引号,如下:

1
2
3
---
title: Hexo - 文章标题含有百分号%导致页面渲染失败无法打开
---

由于这里的写法属于yml语法,百分号属于特殊符号,上述的title的写法就会在执行hexo g时报错,当我们在浏览器里打开这篇文章的页面时就会渲染失败无法打开。

解决方法

我们需要对这里的百分号进行转义,对于这些特殊字符,可以用对应的HTML字符实体来替换。

对于百分号,其字符实体是%

最终我们在hexo文章的文件头里,应该这样写:

1
2
3
---
title: Hexo - 文章标题含有百分号%导致页面渲染失败无法打开
---

补充

当然,对于文件头之外的部分,则是属于markdown语法的部分,此外由于我们的文章会被swig渲染,同样有一些特殊字符,比如 {{}},如果在代码块之外的地方使用到这些特殊字符,就会报错!对于不同的语言,各自的特殊字符是不一样的。

这里补充下各种常用到的特殊字符的字符实体:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
! ! — 惊叹号 Exclamation mark
" " " — 双引号 Quotation mark
# # — 数字标志 Number sign
$ $ — 美元标志 Dollar sign
% % — 百分号 Percent sign
& & & — 与符号(&) Ampersand
' ' — 单引号 Apostrophe
( ( — 小括号左边部分 Left parenthesis
) ) — 小括号右边部分 Right parenthesis
* * — 星号 Asterisk
+ + — 加号 Plus sign
< &#60; < 小于号 Less than
= &#61; — 等于符号 Equals sign
- &#45; − — 减号
> &#62; > — 大于号 Greater than
? &#63; — 问号 Question mark
@ &#64; — Commercial at
[ &#91; — 中括号左边部分 Left square bracket
\ &#92; — 反斜杠 Reverse solidus (backslash)
] &#93; — 中括号右边部分 Right square bracket
{ &#123; — 大括号左边部分 Left curly brace
| &#124; — 竖线Vertical bar
} &#125; — 大括号右边部分 Right curly brace