jekyll で検索機能を実装する方法
jekyll
Published: 2018-07-14

目的

jekyll で検索機能を実装する方法を調べました。

方法1.

  • Google カスタム検索を利用

下記のページから簡単に導入することができます。

カスタム検索 - カスタム検索エンジンの作成

jekyll で運用しているブログの url を変更したのですが、Google の検索結果に反映されるまでに時間がかかりました。

方法2. (※ 2018/06/09 時点: できませんでした)

  • 全文検索エンジンの lunr.js を利用

$ gem install jekyll-lunr-js-search


しかし、エラーが発生しました。

Fetching libv8 3.16.14.19 Installing libv8 3.16.14.19 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/Users/hogehoge/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20180609-87351-bupw5i.rb extconf.rb

creating Makefile /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.19/ext/libv8/builder.rb:86:in setup_python!': libv8 requires python 2 to be installed in order to build, but it is currently 3.6.2 (RuntimeError) from /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.19/ext/libv8/builder.rb:53:inbuild_libv8!’ from /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:24:in install!' from extconf.rb:7:in

extconf failed, exit code 1

Gem files will remain installed in /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.19 for inspection. Results logged to /Users/hogehoge/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-142.2.0-static/libv8-3.16.14.19/gem_make.out

An error occurred while installing libv8 (3.16.14.19), and Bundler cannot continue. Make sure that gem install libv8 -v '3.16.14.19' succeeds before bundling.

In Gemfile: jekyll-lunr-js-search was resolved to 3.3.0, which depends on therubyracer was resolved to 0.12.3, which depends on libv8


エラーが示す通り、therubyracer、libv8 のインストールを試みたりしたのですが

解決には時間がかかりそうなのでここでストップすることにします。

下記が github のリポジトリなのですが、今はサポートされてないのかもしれません。

- [slashdotdash/jekyll-lunr-js-search: [UNSUPPORTED] Jekyll + lunr.js = static websites with powerful full-text search using JavaScript](https://github.com/slashdotdash/jekyll-lunr-js-search)

```jekyll-lunr-js-search``` を利用せずに lunr を利用する方法を今度試してみます。

#### 以降、未実施

```_config.yml``` に ```jekyll-lunr-js-search``` を追記します

plugins: - jekyll-lunr-js-search ```

参考