Hugo 实现搜索功能小白教程

这是我的博客地址->神州部落格
欢迎来访哦······

前言

Hugo 这种静态站点默认没有搜索功能,大概因为没了数据库实现反而不方便。Search for your Hugo Website 列出了一些可选项,要么自己生成索引用开源的工具搜索,要么用第三方搜索服务如 algolia

自己来的方案里我选择 Github Gist for Fuse.js integration,因为它不需要另外引入 Node.js、 Grunt 或 Gulp,而是利用 Hugo 内置的功能在 build 的时候生成索引输出到 JSON,看起来更简单的样子。

输出索引文件

第一步

修改配置文件 Config.toml,添加以下内容

[outputs]
  home = ["HTML", "RSS", "JSON"]
第二步
{
  {- $.Scratch.Add "index" slice -}}
{
  {- range .Site.RegularPages -}}
    {
  {- $.Scratch.Add "index" (dict "title" .Title "tags" .Params.tags "categories" .Params.categories "contents" .Plain "permalink" .Permalink) -}}
{
  {- end -}}
{
  {- $.Scratch.Get "index" | jsonify -}}

完成后可以从 /index.json 打开索引文件

注:layouts/ 目录里保存的是 Hugo 的模板文件。layouts/ 是站点级别的模板, themes/<theme name>/layouts/ 是主题级别的模板,站点级别模板的设置优先于主题级别的模板。

创建搜索页面

第一步

创建 content/search.md

---
title: "搜索功能"
sitemap:
  priority : 0.1
---

根据 URL 规则,Hugo 会生成 /search/index.html/search.html。但是因为 content/</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值