hexo博客中“{”与“}”乱码解决方法
一、出错原因
前几天写了一个教程,网友(Treasure)看了之后问我代码为什么出错了,发现博客中所有的“{”与“}”都成了乱码,效果如下:
<script type="text/javascript">
//只在桌面版网页启用特效
var windowWidth = $(window).width();
if (windowWidth > 768) {
document.write('<script type="text/javascript" src="/js/sakura.js"><\/script>');
}
</script>
一开始我还以为是我写错了,结果看我原文件写的是对的,查资料发现“{”与“}”被转义了。 我是用md文件直接导出html文件,发现显示都是正常的,那么很显然时hexo生成html时对数据进行了转义。
二、解决办法
找到文件:node_modules\hexo-prism-plugin\src\index.js, 在map中添加对应的转义配置,忽略相关转义操作:
const map = {
''': '\'',
'&': '&',
'>': '>',
'<': '<',
'"': '"',
'{': '{',
'|': '|',
'}': '}'
};
此时再查看博客就正常了。
<script type="text/javascript">
//只在桌面版网页启用特效
var windowWidth = $(window).width();
if (windowWidth > 768) {
document.write('<script type="text/javascript" src="/js/sakura.js"><\/script>');
}
</script>
三、总结
常见的转义符有:HTML ISO-8859-1 参考手册
! ! — 惊叹号
" " " 双引号
# # — 数字标志
$ $ — 美元标志
% % — 百分号
& & & — &符
‘ ' — 单引号
( ( — 小括号左边部分
) ) — 小括号右边部分
* * — 星号
+ + — 加号
< < < 小于号
= = — 等于符号
- - − — 减号
> > > 大于号
? ? — 问号
@ @ — @符
[ [ --- 中括号左边部分
\ \ --- 反斜杠
] ] — 中括号右边部分
{ { — 大括号左边部分
| | — 竖线
} } — 大括号右边部分</pre>