metalsmith algolia
1.0.0
Algolia のコンテンツにインデックスを付けるための metalsmith プラグイン
このプラグインを使用すると、金属細工師の構築プロセスで Algolia 検索エンジンのコンテンツにインデックスを付けることができます。
このプラグインがニーズに合わない場合は、遠慮なく機能リクエストをお願いします。
npm install --save metalsmith-algolia
以下の例は、コンテンツのインデックスを作成するために必要な最小限のコードを示しています。 (ノード: metalsmith-markdown は必要ありません)
const metalsmith = require ( 'metalsmith' ) ;
const markdown = require ( 'metalsmith-markdown' ) ;
const algolia = require ( 'metalsmith-algolia' ) ;
metalsmith ( __dirname )
. source ( './src' )
. use ( markdown ( ) )
. use ( algolia ( {
projectId : '<algolia-project-id>' ,
privateKey : '<algolia-private-key>' ,
index : '<algolia-index>'
} ) )
. build ( ) ;
コマンドライン引数または環境変数を使用して、アルゴリズム秘密キーを保存してください。
これは、偽のマークダウン テンプレート./src/mypage.md
を使用した例です。
---
title : My awesome static page !
description : This is a exemple page
algolia : true
---
# My awesome static page !
content exemple
デフォルトでは、メタデータ(文字列/ブール/整数)とコンテンツは、 algolia: true
メタデータを持つすべてのファイルの Algolia に送信されます。
この例では、生成されるドキュメントは次のようになります。
{
"title" : " My awesome static page ! " ,
"description" : " This is a exemple page " ,
"contents" : " <h1>My awesome static page ! n <p>content exemple</p> "
}
コンテンツをクリーンアップしたり、追加のフィールドを計算したり、インデックス作成からメタデータを削除したりする必要がある場合は、コンストラクターをプラグインするfileParser
オプションを使用して、独自のドキュメントを生成するためのカスタム コールバックを与えることができます。
const metalsmith = require ( 'metalsmith' ) ;
const markdown = require ( 'metalsmith-markdown' ) ;
const algolia = require ( 'metalsmith-algolia' ) ;
const cheerio = require ( 'cheerio' ) ;
function customFileParser ( file , metadata ) {
let documents = [ ] ;
let $ = cheerio . load ( metadata . contents . toString ( ) ) ;
// add as many as documents as you need
documents . push ( {
title : metadata . title ,
contents : $ ( 'p' ) . text ( ) ;
} )
return documents ;
}
metalsmith ( __dirname )
. source ( './src' )
. use ( markdown ( ) )
. use ( algolia ( {
projectId : '<algolia-project-id>' ,
privateKey : '<algolia-private-key>' ,
index : '<algolia-index>' ,
fileParser : customFileParser
} ) )
. build ( ) ;
今回、生成されるドキュメントは次のようになります。
{
"title" : " My awesome static page ! " ,
"contents" : " content exemple "
}
名前 | デフォルト | 説明 |
---|---|---|
projectId | (必須) Algolia プロジェクト識別子 | |
privateKey | (必須) Algolia 秘密キー | |
index | (必須) * アルゴリアインデックス | |
clearIndex | 間違い | 新しいドキュメントのインデックスを作成する前に Algolia インデックスをクリアする |
fileParser | ヌル | ドキュメントを構築するためのカスタム ハンドラーへの関数参照 |
pattern | **/* | 入力ファイルと照合するグロブ パターン。配列または単一の文字列を指定できます |
ヒント: metalsmith-algolia は
debug
を使用します