问题现象
昨天部署好了自己的博客后,发现在使用localsearch报错,通过查问题发现是浏览器解析search.xml出现了问题。
具体错误如下:
1 |
|
解决方法
本地打开markdown文件发现,有一些控制字符,导致其解析出错;问题找到了,思路也就出来了,有两种方式:第一个方式是把xml中的控制字符修改掉(修改/search.xml
或者修改 /_includes/third_party/search/localsearch.html
中处理数据的逻辑代码),另一个是把搜索数据源由xml格式改为json格式;详细介绍第二种修改数据源的方式。
localsearch的数据源由xml改为json
- 打开
/_config.yml
,在添加如下配置:1
2search: path: search.json
- 在根目录下新建
search.json
, 内容如下:1
2
3
4
5
6
7
8
9
10
11
12--- layout: null sitemap: false --- [{% for post in site.posts %} { "title": {{ post.title | smartify | strip_html | jsonify }}, "url" : {{ post.url | relative_url | jsonify }}, "content" : {{ post.content | smartify | strip_html | strip_newlines | jsonify }} }{%- unless forloop.last -%},{%- endunless -%} {% endfor %} ]
- 重启Jekyll,此问题解决