Hexo + Butterfly 鍵入搜索功能

原文鏈接: 基于 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】。

推薦閱讀

Local search

image.png

步驟如下:

  1. 安裝依賴(lài)盯另。
    前往博客根目錄性含,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-generator-search --save
npm install hexo-generator-search --save
  1. 注入配置鸳惯。
    修改站點(diǎn)配置文件_config.yml商蕴,添加如下代碼:
search:
  path: search.xml
  field: post
  content: true
  template: ./search.xml
  1. 主題中開(kāi)啟搜索。
    在主題配置文件_config.butterfly.yml中修改以下內(nèi)容:
local_search:
-  enable: false
+  enable: true
  1. 重新編譯運(yùn)行芝发,即可看到效果绪商。
    前往博客根目錄,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000

詳情可參考 hexo-generator-search

Algolia(推薦)

image.png

關(guān)于 Algolia 搜索功能辅鲸,這里有兩種插件格郁,一個(gè)是 hexo-algolia ,一個(gè)是 hexo-algoliasearch独悴。第一種親測(cè)只能對(duì)匹配文章title例书,不能匹配文章內(nèi)容查詢到結(jié)果,所以推薦第二種刻炒。下面分別對(duì)這兩種插件做不同的說(shuō)明决采。

獲取 Algolia 賬號(hào)

  1. 注冊(cè) Algolia。
    進(jìn)入官網(wǎng)地址 注冊(cè)坟奥,也可以直接用Github授權(quán)登錄织狐。
    image.png
  2. 新建 Index。


    image.png
  3. 創(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(推薦)

  1. 安裝 Algolia 依賴(lài)据悔。
    前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-algoliasearch --save耘沼。
npm install hexo-algoliasearch --save
  1. 注入配置极颓。
    修改站點(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
image.png

【applicationID】填入圖中位置的 Applicaiton ID群嗤,【apiKey】填入圖中位置的 Search-Only API Key 菠隆,【Admin API Key】填入圖中位置的 Admin API Key ,【indexName】填入前面創(chuàng)建的索引名稱(chēng)狂秘。

  1. 執(zhí)行hexo algolia骇径。
    前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行hexo algolia者春。
hexo algolia
image.png

到如下信息既峡,證明成功了,可以去 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.
  1. 主題中寫(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)"
  1. 重新編譯運(yùn)行忠售,即可看到效果。
    前往博客根目錄迄沫,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000

hexo-algolia

  1. 安裝 Algolia 依賴(lài)稻扬。
    前往博客根目錄,打開(kāi)cmd命令窗口執(zhí)行npm install hexo-algolia --save羊瘩。
npm install hexo-algolia --save
  1. 注入配置泰佳。
    修改站點(diǎn)配置文件_config.yml,添加如下代碼:
algolia:
  applicationID: 'your applicationID'
  apiKey: 'your Search-Only API Key'
  indexName: 'your indexName'
image.png

【applicationID】填入圖中位置的 Applicaiton ID尘吗,【apiKey】填入圖中位置的 Search-Only API Key逝她,
【indexName】填入前面創(chuàng)建的索引名稱(chēng)。

  1. 上傳數(shù)據(jù)到 Algolia睬捶。
    前往博客根目錄黔宛,打開(kāi)Git,依次執(zhí)行如下命令:
    【your apiKey】替換為剛才自己創(chuàng)建擁有權(quán)限的api key擒贸。
export HEXO_ALGOLIA_INDEXING_KEY=your apiKey
hexo algolia
image.png

到如下信息臀晃,證明成功了觉渴,可以去 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.
  1. 主題中寫(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)"
  1. 重新編譯運(yùn)行,即可看到效果险绘。
    前往博客根目錄踢京,打開(kāi)cmd命令窗口依次執(zhí)行如下命令:
hexo cl && hexo generate
hexo s -p 8000
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市隆圆,隨后出現(xiàn)的幾起案子漱挚,更是在濱河造成了極大的恐慌,老刑警劉巖渺氧,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旨涝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡侣背,警方通過(guò)查閱死者的電腦和手機(jī)白华,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贩耐,“玉大人弧腥,你說(shuō)我怎么就攤上這事〕碧” “怎么了管搪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)铡买。 經(jīng)常有香客問(wèn)我更鲁,道長(zhǎng),這世上最難降的妖魔是什么奇钞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任澡为,我火速辦了婚禮,結(jié)果婚禮上景埃,老公的妹妹穿的比我還像新娘媒至。我一直安慰自己,他們只是感情好谷徙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拒啰。 她就那樣靜靜地躺著,像睡著了一般完慧。 火紅的嫁衣襯著肌膚如雪图呢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音蛤织,去河邊找鬼赴叹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛指蚜,可吹牛的內(nèi)容都是我干的乞巧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼摊鸡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绽媒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起免猾,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤是辕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后猎提,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體获三,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年锨苏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疙教。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伞租,死狀恐怖贞谓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葵诈,我是刑警寧澤裸弦,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站作喘,受9級(jí)特大地震影響理疙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜徊都,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望广辰。 院中可真熱鬧暇矫,春花似錦、人聲如沸择吊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)几睛。三九已至房轿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背囱持。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工夯接, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纷妆。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓盔几,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掩幢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逊拍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容