yilia主题也有集成搜索功能,不过它使用的搜索是基于标题和标签的,有一定的局限性,没有提供全文检索功能。这篇文章介绍的就是集成全文检索和今日诗词。使用hexo-generator-search
插件为文章生成一个全局的search.xml
,里面包含所有文章的内容(可配置)。然后再去这个文件中搜索关键字,以此来找到需要的文章。
1.1安装插件
https://github.com/wzpan/hexo-generator-search
安装分为两步,首先通过 npm 将插件安装到本地:
1 | npm install hexo-generator-search --save |
然后在全局(_config.yml
)配置:
1 | search: |
path
,生成的路径,上述配置后可以通过/search.xml
访问到文。field
,用来配置全局检索的区间,可以是post/page/all
。
重新clean、测试,就可以访问:http://localhost:4000/search.xml 了。
1.2为网页添加搜索栏
参考了博主的代码:https://github.com/barretlee/hexo-search-plugin-snippets
1.2.1添加搜索框
在e:\Hexo\themes\yilia\layout\layout.ejs
的<div id="wrapper" class="body-wrap">'
后面添加如下代码(同时添加了‘今日诗词’)
1 | <% if(theme.search) { %> |
1.2.2添加js脚本
新建文件:e:\Hexo\themes\yilia\source\js\search.js
1 | // A local search script with the help of hexo-generator-search |
1.2.3添加样式文件
1.新建:e:\Hexo\themes\yilia\source\css\search.css
1 | .local-search { |
2.将上面的样式引入页面中,修改themes/yilia/layout/_partial/css.ejs
,再后面添加:
1 | 复制<link rel="stylesheet" type="text/css" href="<%=config.root%>./search.css"> |
3.修改e:\Hexo\themes\yilia\source\main.0cf68a.css
,添加:
1 | /* 页面头部:包含‘今日诗词’,站内搜索 */ |
2.更近一步适配手机端
1 | e:\Hexo\themes\yilia\source\main.0cf68a.css |
手机端取消本地搜索功能
因为考虑到手机端界面比较小,这里取消搜索功能。
1 | e:\Hexo\themes\yilia\layout\layout.ejs |
或者直接用css隐藏搜索框e:\Hexo\themes\yilia\source\css\search.css
1 | /* 手机端 */ |