功能介绍
本地搜索是指搜索范围为当前用户所有博客,并非第三方搜索引擎比如百度、谷歌。
1.安装依赖
npm install hexo-generator-search --save
2.修改配置文件
修改hexo的 _congif.yml 的文件,在文件中添加:
search:
path: search.xml
field: post
content: true
template: themes/heyan/search.xml
3.导入 ** search.xml** 文件
导入模版文件 search.xml 文件或下载文件到主题文件中。模版地址(node_modules/hexo-generator-search/demo_output/search.xml);下载地址;
4.添加 search.js
(1) 在主题的 source 目录中添加 search.js 文件,内容参考。
(2) 在 header.js 文件中添加引入 js。
Tips: 引用 search.js 前需要检查主题组件是否引用 jquery.js 文件。
本文引用的是jquery线上地址:
<%- js('js/search.js') %>
<script type="text/javascript">
var search_path = "<%= config.search.path %>";
if (search_path.length == 0) {
search_path = "search.xml";
}
var path = "<%= config.root %>" + search_path;
searchFunc(path, 'local-search-input', 'local-search-result');
</script>
(3) 配置搜索输入框
theme.search.placeholder 为主题 ._config.yml 文件中配置的 search对应的参数。
search:
enable: true # 是否使用搜索功能
placeholder: 搜索什么?
<form class="d-flex">
<input id="local-search-input" class="form-control me-2 pe-4" type="search" placeholder="<%- theme.search.placeholder%> " aria-label="Search">
</form>
(4) 指定搜索结果的输出位置,并把搜索结果结果输出到 body 前面。
添加至主题的 layout.ejs 文件中,在<%-body %>前面添加搜索结果。指定id。
Tips: id值不可修改,search.js 中的默认值
<div id="local-search-result"></div>
(5) 添加搜索功能完成,后续需要根据个人实际情况自行测试,调整样式。
参考博客地址:https://blog.csdn.net/smileyan9/article/details/124368376