Tranquilpeakでhexo-algoliasearchを使う

hexo-algoliasearchのインストール

npm install hexo-algoliasearch --saveでインストール。

hexo-algoliasearchの設定

appIdやapiKeyは設定できるが、環境変数で渡して設定では記述しないことが可能(後述の問題あり)。
ALGOLIA_APP_IDALGOLIA_API_KEYALGOLIA_ADMIN_API_KEYALGOLIA_INDEX_NAMEが利用できる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
algolia:
appId: "Z7A3XW4R2I"
apiKey: "12db1ad54372045549ef465881c17e743"
adminApiKey: "40321c7c207e7f73b63a19aa24c4761b"
chunkSize: 5000
indexName: "my-hexo-blog"
fields:
- content:strip:truncate,0,500
- excerpt:strip
- gallery
- permalink
- photos
- slug
- tags
- title

Tranquilpeakでhexo-algoliasearchを使用する

tranquilpeakのドキュメントで以下のfieldsとするように記述がある

  1. Create an account on Algolia
  2. Install and configure hexo-algoliasearch plugin
  3. Index your posts before deploying your blog. Here are the required fields:
1
2
3
4
5
6
7
8
fields:
- title
- tags
- date
- categories
- excerpt
- permalink
- thumbnailImageUrl

TranquilpeakでAlgoliaの検索を有効化する

IDやキーはすべて環境変数で渡すことができる。Indexの作成はこれで動作するが、tranquilpeakの検索が動かない。

1
2
3
4
ALGOLIA_APP_ID=XXXXXXXXXXXXXXXXXXXX
ALGOLIA_API_KEY=XXXXXXXXXXXXXXXXXXX
ALGOLIA_ADMIN_API_KEY=XXXXXXXXXXXXXXXXXXX
ALGOLIA_INDEX_NAME=XXXXXXXXXXXXXXXXXXX

appIdapiKeyindexName_config.ymlで指定する必要がある。

1
2
3
4
5
6
7
8
9
10
11
12
13
algolia:
appId: "XXXXXXXXXX"
apiKey: "XXXXXXXXXXXXXXXXXXXX"
indexName: "XXXXXXXXXX"
chunkSize: 5000
fields:
- title
- tags
- date
- categories
- excerpt
- permalink
- thumbnailImageUrl

algoliaのインデックスを設定する

インデックス作成

hexo algoliaの実行でインデックスのレコードを登録することができる。

1
2
3
4
stage      | INFO  Clearing index on Algolia...
stage | INFO Index cleared.
stage | INFO Indexing posts on Algolia...
stage | INFO 54 posts indexed.

algoliaの管理画面で登録されたレコードを確認。

AlgoliaIndex width=640

インデックスのカスタマイズ。

AlgoliaIndex width=640

検索可能なAttributesを設定する。

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

ランキングとソートの設定。

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

AlgoliaIndex width=640

設定が有効化されているか確認する

以下の2点に注意。

  • npmモジュールはアップデートしない
  • APIキーを環境変数で渡すのではなく_config.ymlに設定する

npmモジュールをアップデートした場合algoliasearch.jsが読み込まれない状態になった。
APIキーを環境変数でのみ指定し_config.ymlで指定していない場合、algoliaのスクリプトが反映されない状態になった。

AlgoliaSearch width=640

AlgoliaSearch width=640