Hexo localsearch 本地搜索 路径问题 /
什么是本地搜索
针对本地存储文件内容进行搜索,也就是我们搜索的内容都在本地
Hexo 本地搜索 localsearch
我们用的本地搜素插件是 hexo-generator-searchdb
在我们执行 hexo g 的时候,会在本地输出一个 search.xml 文件 (文件名可以配置)
打开这个文件,可以看到你所有文章的一些简单配置,我们截取其中一部分来看1
2
3
4
5
6
7
8
%2F2019-09%2F05-hexo-image-center.html
Hexo
包含了标题,文章的url地址、文章主要内容 等等
当我们输入搜索的时候,其实对这个文件内容进行搜索
hexo localsearch 本地搜索 路径问题
我们先看下 搜索插件的源代码配置1
2
3
4
5
6
7
8
9
10
11
12<?xml version="1.0" encoding="utf-8"?>
...
我们可以看到插件会对url进行编码 encodeURIComponent,导致url里面的路径分隔符 / 会被编码成 %2F
因此引发一些相对路径的问题
结果的url链接是 %2F2019-09%2F04-django-models-api.html
因此
本质我们需要的url参数是 /%2F2019-09%2F04-django-models-api.html 必须有最前面的 / 表示根路径
最后的方案是,我们直接修改了 本地搜索生成html的源代码
themes/next/layout/scripts/third-party/localsearch.swig
扎到修改url的地方1
2
3...
str += "
"+ data_title +"";...
修改为1
2
3...
str += "
"+ data_title +"";...
细心发现我们的主要修改点是 加斜杠 / 表示根路径
完毕!