Um plugin metalsmith para indexação de conteúdo no Algolia
Este plugin permite que você indexe seu conteúdo no mecanismo de busca Algolia no processo de construção de metalurgia.
Se este plugin não atender às suas necessidades, não hesite em solicitar solicitações de recursos.
npm install --save metalsmith-algolia
O exemplo abaixo mostra o código mínimo necessário para indexar seu conteúdo. (nó: metalsmith-markdown não é necessário)
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 ( ) ;
por favor, use argumentos de linha de comando ou variáveis de ambiente para armazenar sua chave privada algolia
Aqui está um exemplo com um modelo de markdown falso ./src/mypage.md
---
title : My awesome static page !
description : This is a exemple page
algolia : true
---
# My awesome static page !
content exemple
Por padrão, os metadados (string/booleanos/inteiros) e o conteúdo serão enviados ao Algolia para todos os arquivos com algolia: true
metadata
Com este exemplo, o documento gerado ficará assim:
{
"title" : " My awesome static page ! " ,
"description" : " This is a exemple page " ,
"contents" : " <h1>My awesome static page ! n <p>content exemple</p> "
}
Se precisar limpar seu conteúdo, calcular campos adicionais ou remover metadados da indexação, você pode usar a opção fileParser
no construtor do plug-in para fornecer um retorno de chamada personalizado para gerar seus próprios documentos:
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 ( ) ;
Desta vez, o documento gerado ficará assim:
{
"title" : " My awesome static page ! " ,
"contents" : " content exemple "
}
nome | padrão | descrição |
---|---|---|
projectId | (obrigatório) Identificador do projeto Algolia | |
privateKey | (obrigatório) Chave privada Algolia | |
index | (obrigatório) * Índice Algolia | |
clearIndex | falso | Limpe o índice Algolia antes de indexar novos documentos |
fileParser | nulo | Referência de função para um manipulador personalizado para construção de documentos |
pattern | **/* | Padrão Glob para combinar os arquivos de entrada. Pode ser um array ou uma única string |
dica: metalsmith-algolia usa
debug