更換 Octopress 的搜尋功能

發現兩個問題:Tapir 不支援中文、換過 permalink 會怪怪的。

2014/4/28 updated


Octopress 預設的 search 功能是 Google search,一搜尋就會導到 Google 的頁面。不太喜歡這種方式,把 search 換成 Tapir,可以在自己站內找。

Tapir 的原理是它每 15 分鐘會掃一次網站的 RSS,再透過他們的 API 達到以 RSS 為 base 的搜尋功能。要注意的是,沒在 RSS 中的文章是不會被 search 到的。

修改方式

先到 Tapir 輸入 RSS feed 跟 mail,會得到一組 key,這裡只需要用到 public key。

Octopress Tapir plugin 下載所需檔案並放到對應資料夾。

  • source/search.html
  • source/javascripts/jquery_tapir.js
  • source/images/loading.gif

修改 _config.yml

  • 註解掉 simple_search
  • 加入 tapir_token: [your public key from Tapir]

修改 source/_includes/navigation.html,在 include custom/navigation.html 前面加入:

{% if site.tapir_token %}
{% endif %}

修改 source/atom.xml,拿掉 for post in site.posts limit: 20limit: 20,讓所有 post 都會出現在 RSS feed 。另一個可能的做法是複製 source/atom.xmlsource/atomForSearch.xmlrake generate 後將這個 XML 的 URL 丟給 Tapir 當作 search 的 base。

Ref