1
0
hugo/content/blog/2021-07-02-search.md
2024-04-23 22:21:26 +09:00

940 B

+++ date = "2021-07-02" tags = ["hugo"] title = "hugoでsearchするやつ付けてみた" slug = "hugo-search" +++

/search

記事を検索したい場合、自分はcontent/postをgrepするだけなので、あまり使わないのですが、一応、webにも検索フォームを付けてみました。

hugo + vue + lunr.jsです。

ただ、日本語はおそらく対応してない。対応するには日本語対応するためのlibを追加で読み込む必要がありそう。

lunrに渡すdataは、hugoがjson出力できるので、それを使います。

[outputs]
  home = ["JSON", "HTML"]

jsはこんな感じで(要点記述だけですが)。

axios('/index.json')

this.searchIndex = lunr(function () {
  this.ref('href')
  this.field('contents')
  this.field('title')
  this.field('tags')
  documents.forEach(doc => {
    this.add(doc)
  })
}