博客全站搜索功能

详情可参考:hexo-generator-search

安装启动

安装依赖

前往博客根目录,打开cmd命令窗口执行

1
npm install hexo-generator-search --save

修改配置文件

修改站点配置文件_config.yml,添加如下代码:

1
2
3
4
search:
path: search.xml
field: post
content: true

主题中开启搜索

在主题配置文件_config.butterfly.yml中修改以下内容:

1
2
local_search:
enable: true

重新编译运行

前往博客根目录,打开cmd命令窗口依次执行如下命令:

1
2
hexo cl && hexo generate
hexo s -p 8000

插件安装

Algolia(推荐)

关于 Algolia 搜索功能,这里有两种插件,【hexo-algolia】、【hexo-algoliasearch
hexo-algolia:只能对匹配文章title,不能匹配文章内容查询到结果

配置Algolia账号

  1. 注册 Algolia。

    进入官网地址注册,也可以直接用Github授权登录。
    博主用的是google邮箱登录

  2. 新建 Index
  3. 创建拥有一定权限的api key

    如果选择第二种插件,可忽略这一步
    进入【Settings > API Keys】

    进入【All API Keys > API Keys】,点击【New API Key】。在ACL里面增加删除和新增Object的权限(按理说只用这两个权限就行,下图中我多加了几个),然后填上 indices 栏目中的 index name ,选刚才你创建的那个index,其余默认就行

    点击【Create】,这样就得到了一个api key。注意一下,这个key将会在下面的步骤中用到

安装插件依赖 && 写入配置

  1. 安装 Algolia 依赖。
    前往博客根目录,打开cmd命令窗口执行下面代码

    1
    npm install hexo-algoliasearch --save
  2. 注入配置。
    修改站点配置文件_config.yml,添加如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    algolia:
    appId: "F73SIJP9FA"
    apiKey: "de564a72a9cb537cfae532eef3458ea7"
    adminApiKey: "f324ea39e1e18289b3e351**********"
    chunkSize: 5000
    indexName: "dev_algolia1"
    fields:
    - content:strip:truncate,0,500
    - excerpt:strip
    - gallery
    - permalink
    - photos
    - slug
    - tags
    - title

    appId】填入图中位置的 Applicaiton ID
    apiKey】填入图中位置的 Search-Only API Key
    adminApiKey】填入图中位置的 Admin API Key
    indexName】填入前面创建的索引名称
    注意:由于我们单独创建了一个index,所以apiKey需要改成最开始我们创建的index的apikey

  3. 执行hexo algolia
    前往博客根目录,打开cmd命令窗口执行hexo algolia。

    1
    hexo algolia
  4. 主题中写入 Alogolia 配置项。
    在主题配置文件_config.butterfly.yml中修改以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    algolia_search:
    enable: true
    hits:
    per_page: 10
    labels:
    input_placeholder: Search for Posts
    hits_empty: "我们没有找到任何搜索结果: ${query}"
    hits_stats: "找到${hits}条结果(用时${time} ms)"
  5. 重新编译运行,即可看到效果。
    前往博客根目录,打开cmd命令窗口依次执行如下命令:
    1
    2
    hexo cl && hexo generate
    hexo s -p 8000
  1. 安装 Algolia 依赖。
    前往博客根目录,打开cmd命令窗口执行下面代码
    1
    npm install hexo-algolia --save
  2. 注入配置。
    修改站点配置文件_config.yml,添加如下代码:

    1
    2
    3
    4
    algolia:
    applicationID: 'F73SIJP9FA'
    apiKey: 'de564a72a9cb537cfae532eef3458ea7'
    indexName: 'dev_algolia1'

    applicationID】填入图中位置的 Applicaiton ID
    apiKey】填入图中位置的 Search-Only API Key
    indexName】填入前面创建的索引名称

    注意:由于我们单独创建了一个index,所以apiKey需要改成最开始我们创建的index的apikey

  3. 上传数据到 Algolia。
    前往博客根目录,打开Git,依次执行如下命令:
    your apiKey】替换为刚才自己创建拥有权限的api key。

    1
    2
    export HEXO_ALGOLIA_INDEXING_KEY=your apiKey
    hexo algolia
  4. 主题中写入 Alogolia 配置项。
    在主题配置文件_config.butterfly.yml中修改以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    algolia_search:
    enable: true
    hits:
    per_page: 10
    labels:
    input_placeholder: Search for Posts
    hits_empty: "我们没有找到任何搜索结果: ${query}"
    hits_stats: "找到${hits}条结果(用时${time} ms)"
  5. 重新编译运行,即可看到效果。
    前往博客根目录,打开cmd命令窗口依次执行如下命令:
    1
    2
    hexo cl && hexo generate
    hexo s -p 8000

评论
文章分类文章标签
随便逛逛阅读模式
全屏模式