原文鏈接: 基于 Hexo 鍵入搜索功能
前言
本站基于
Hexo
搭建侧但,用的 ?? hexo-theme-butterfly 主題 v3.7.1裁替,請(qǐng)注意最新的?? hexo-theme-butterfly 版本已經(jīng)更新到 v4.2.2 虫腋。
如果你是 v3.7.1 之外的版本返弹,可能有些地方會(huì)有出入凹联,請(qǐng)留意成艘。
注意:我的博客根目錄路徑為 【G:/hexo-blog/blog-demo】赏半,下文所說(shuō)的根目錄都是此路徑贺归,將用
[BlogRoot]
代替。如果不清楚根目錄路徑除破,請(qǐng)回到教程 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(二)牧氮,查看你執(zhí)行hexo init xxx
這條命令時(shí)所選擇的路徑,例如我選擇的路徑是【G:/hexo-blog】瑰枫,我的博客根目錄即為【G:/hexo-blog/xxx】踱葛。
修改站點(diǎn)配置文件_config.yml
,路徑為【BlogRoot/_config.yml】光坝。
修改主題配置文件_config.butterfly.yml
尸诽,路徑為【BlogRoot/_config.butterfly.yml】。
推薦閱讀
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(一)
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(二)
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(三)
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(四)
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(五)
- 基于 Hexo 從零開(kāi)始搭建個(gè)人博客(六)
- 基于 Hexo 鍵入分享功能
- 基于 Hexo 鍵入在線聊天功能
- Hexo + Butterfly 自定義右鍵菜單
Local search
步驟如下:
- 安裝依賴(lài)盯另。
前往博客根目錄性含,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-generator-search --save
。
npm install hexo-generator-search --save
- 注入配置鸳惯。
修改站點(diǎn)配置文件_config.yml
商蕴,添加如下代碼:
search:
path: search.xml
field: post
content: true
template: ./search.xml
- 主題中開(kāi)啟搜索。
在主題配置文件_config.butterfly.yml
中修改以下內(nèi)容:
local_search:
- enable: false
+ enable: true
- 重新編譯運(yùn)行芝发,即可看到效果绪商。
前往博客根目錄,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000
詳情可參考 hexo-generator-search
Algolia(推薦)
關(guān)于 Algolia 搜索功能辅鲸,這里有兩種插件格郁,一個(gè)是 hexo-algolia ,一個(gè)是 hexo-algoliasearch独悴。第一種親測(cè)只能對(duì)匹配文章title例书,不能匹配文章內(nèi)容查詢到結(jié)果,所以推薦第二種刻炒。下面分別對(duì)這兩種插件做不同的說(shuō)明决采。
獲取 Algolia 賬號(hào)
- 注冊(cè) Algolia。
進(jìn)入官網(wǎng)地址 注冊(cè)坟奥,也可以直接用Github
授權(quán)登錄织狐。
image.png -
新建 Index。
image.png - 創(chuàng)建擁有一定權(quán)限的
api key
(如果選擇第二種插件筏勒,可忽略這一步)移迫。
進(jìn)入【Settings > API Keys】。
image.png
進(jìn)入【All API Keys > API Keys】管行,點(diǎn)擊【New API Key】厨埋。在ACL里面增加刪除和新增Object的權(quán)限(按理說(shuō)只用這兩個(gè)權(quán)限就行,下圖中我多加了幾個(gè))捐顷,然后填上 indices 欄目中的 index name 荡陷,選剛才你創(chuàng)建的那個(gè)index雨效,其余默認(rèn)就行。
image.png
image.png
點(diǎn)擊【Create】废赞,這樣就得到了一個(gè) api key徽龟。注意一下,這個(gè)key將會(huì)在下面的步驟中用到唉地。
image.png
安裝依賴(lài) && 寫(xiě)入配置
hexo-algoliasearch(推薦)
- 安裝 Algolia 依賴(lài)据悔。
前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-algoliasearch --save
耘沼。
npm install hexo-algoliasearch --save
- 注入配置极颓。
修改站點(diǎn)配置文件_config.yml
,添加如下代碼:
algolia:
applicationID: ''
apiKey: ''
indexName: ''
algolia:
appId: "your applicationID"
apiKey: "your Search-Only API Key"
adminApiKey: "your Admin API Key"
chunkSize: 5000
indexName: "your indexName"
fields:
- content:strip:truncate,0,500
- excerpt:strip
- gallery
- permalink
- photos
- slug
- tags
- title
【applicationID】填入圖中位置的 Applicaiton ID群嗤,【apiKey】填入圖中位置的 Search-Only API Key 菠隆,【Admin API Key】填入圖中位置的 Admin API Key ,【indexName】填入前面創(chuàng)建的索引名稱(chēng)狂秘。
- 執(zhí)行
hexo algolia
骇径。
前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行hexo algolia
者春。
hexo algolia
到如下信息既峡,證明成功了,可以去 Algolia 網(wǎng)站上查看碧查,索引已經(jīng)上傳成功了。
INFO 128 files generated in 2.33 s
INFO Clearing index on Algolia...
INFO Index cleared.
INFO Indexing posts on Algolia...
INFO 65 posts indexed.
- 主題中寫(xiě)入 Alogolia 配置項(xiàng)校仑。
在主題配置文件_config.butterfly.yml
中修改以下內(nèi)容:
algolia_search:
enable: true
hits:
per_page: 10
labels:
input_placeholder: Search for Posts
hits_empty: "我們沒(méi)有找到任何搜索結(jié)果: ${query}"
hits_stats: "找到${hits}條結(jié)果(用時(shí)${time} ms)"
- 重新編譯運(yùn)行忠售,即可看到效果。
前往博客根目錄迄沫,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000
hexo-algolia
- 安裝 Algolia 依賴(lài)稻扬。
前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-algolia --save
羊瘩。
npm install hexo-algolia --save
- 注入配置泰佳。
修改站點(diǎn)配置文件_config.yml
,添加如下代碼:
algolia:
applicationID: 'your applicationID'
apiKey: 'your Search-Only API Key'
indexName: 'your indexName'
【applicationID】填入圖中位置的 Applicaiton ID尘吗,【apiKey】填入圖中位置的 Search-Only API Key逝她,
【indexName】填入前面創(chuàng)建的索引名稱(chēng)。
- 上傳數(shù)據(jù)到 Algolia睬捶。
前往博客根目錄黔宛,打開(kāi)Git
,依次執(zhí)行如下命令:
【your apiKey】替換為剛才自己創(chuàng)建擁有權(quán)限的api key
擒贸。
export HEXO_ALGOLIA_INDEXING_KEY=your apiKey
hexo algolia
到如下信息臀晃,證明成功了觉渴,可以去 Algolia 網(wǎng)站上查看,索引已經(jīng)上傳成功了徽惋。
INFO [hexo-algolia] Testing HEXO_ALGOLIA_INDEXING_KEY permissions.
INFO Start processing
INFO [hexo-algolia] 7 records to index (post, page).
INFO [hexo-algolia] Indexing chunk 1 of 1 (7 records)
INFO [hexo-algolia] Indexing done.
- 主題中寫(xiě)入 Alogolia 配置項(xiàng)案淋。
在主題配置文件_config.butterfly.yml
中修改以下內(nèi)容:
algolia_search:
enable: true
hits:
per_page: 10
labels:
input_placeholder: Search for Posts
hits_empty: "我們沒(méi)有找到任何搜索結(jié)果: ${query}"
hits_stats: "找到${hits}條結(jié)果(用時(shí)${time} ms)"
- 重新編譯運(yùn)行,即可看到效果险绘。
前往博客根目錄踢京,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000