博客折腾记:hexo-leancloud-counter-security 与标题中的引号冲突
昨天按照 hexo-theme-next/LEANCLOUD-COUNTER-SECURITY.md at master · theme-next/hexo-theme-next 这个文档配置博客阅读次数时,遇到 hexo-leancloud-counter-security
插件的一个冲突。
完成配置使用 hexo -d
时,终端中出现下面的错误提示:
1 | ATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html |
看提示貌似是利用 Json 解析字符串的时候出现问题。打开 node_modules/hexo-leancloud-counter-security/index.js:92
,对应出现一个解析 JSON的:
1 | y = JSON.parse(memoData[memoIdx].substring(0, memoData[memoIdx].length - 1)); |
js 没有怎么接触过,不知道能不能单步调试之类的,只好祭出输出调试大法,加上两个输出:
1 | console.log(memoIdx) |
然后再执行 hexo -d
命令,命令行输出为:
1 | 28 |
JSON 在解析字符串{"title":"System.out.println("hello world!");","url":"/post/hello-world.html"}
时出现错误。对应的正是之前写的一篇名为 System.out.println("hello world!");
的文章,由于 JSON 格式中字符串是需要用""
修饰,导致JSON 中出现了一个 "title":"System.out.println("hello world!");"
key-value 组合。然而实际上 JSON 只会将 "System.out.println("h
解析成 value,之后出现的 h
被当成非法字符报错。
定位问题之后,暂时修改文章的标题为 hello world! | 算法花园,绕过部署失败。