站內搜尋
Zensical 內建完全在瀏覽器端運作的全文搜尋,不需要串接第三方服務,也沒有資料隱私上的疑慮。而且搜尋在離線時也能用,所以可以把整個網站打包成下載檔案給人使用。
全新的搜尋引擎
Zensical 的搜尋引擎是從零開始重寫的,不再使用 MkDocs/Material for MkDocs 的 Lunr 實作。目前搜尋介面還沒有多語系(只有英文),但這不影響多語系內容的搜尋。
基本設定
搜尋預設就是啟用的,不需要任何設定。設定檔裡即使寫 search 或 material/search,設定的也都是 Zensical 這套內建搜尋。
可用的外掛設定只有兩個:
separator 決定文字要在哪裡被切成搜尋詞。本教學網站使用的就是上面這個值(空白、零寬空格、連字號)。
不支援的 MkDocs 搜尋選項
lang、pipeline、fields、indexing、jieba_dict、jieba_dict_user、min_search_length、prebuild_index 都會被忽略。搜尋語言改由 theme.language 決定,見 語言。
搜尋相關功能旗標
| 旗標 | 效果 |
|---|---|
search.suggest |
輸入時顯示下一個字的建議 |
search.highlight |
點進搜尋結果後,把頁面中所有符合的詞標亮 |
排除搜尋
排除整頁
在 front matter 加上 search.exclude,該頁就不會出現在搜尋索引:
排除某個段落
需要 attr_list。在標題後面加上 data-search-exclude,該標題底下的內容就不會被索引:
排除某個區塊
在行內或區塊元素後面,另起一行加上 { data-search-exclude }:
總結
| 想做的事 | 設定 |
|---|---|
| 關閉搜尋 | [project.plugins.search] → enabled = false |
| 調整斷詞規則 | separator |
| 輸入時提示 | search.suggest |
| 點進去後標亮關鍵字 | search.highlight |
| 整頁不被搜尋 | front matter search.exclude: true |
| 部分內容不被搜尋 | { data-search-exclude } |