Un complemento de metalistería para indexar contenido en Algolia
Este complemento le permite indexar su contenido en el motor de búsqueda de Algolia sobre el proceso de construcción de orfebrería.
Si este complemento no se ajusta a sus necesidades, no dude en solicitar solicitudes de funciones.
npm install --save metalsmith-algolia
El siguiente ejemplo muestra el código mínimo requerido para indexar su contenido. (nodo: no se requiere 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 ( ) ;
por favor, utilice argumentos de línea de comando o variables de entorno para almacenar su clave privada de algolia
Aquí hay un ejemplo con una plantilla de rebajas falsa ./src/mypage.md
---
title : My awesome static page !
description : This is a exemple page
algolia : true
---
# My awesome static page !
content exemple
De forma predeterminada, los metadatos (cadena/booleano/enteros) y el contenido se enviarán a Algolia para todos los archivos con algolia: true
.
Con este ejemplo, el documento generado quedará así:
{
"title" : " My awesome static page ! " ,
"description" : " This is a exemple page " ,
"contents" : " <h1>My awesome static page ! n <p>content exemple</p> "
}
Si necesita limpiar su contenido, calcular campos adicionales o eliminar metadatos de la indexación, puede usar la opción fileParser
para complementar el constructor y brindar una devolución de llamada personalizada para generar sus propios 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 ( ) ;
Esta vez, el documento generado se verá así:
{
"title" : " My awesome static page ! " ,
"contents" : " content exemple "
}
nombre | por defecto | descripción |
---|---|---|
projectId | (obligatorio) Identificador del proyecto Algolia | |
privateKey | (obligatorio) Clave privada de Algolia | |
index | (obligatorio) * Índice de Algolia | |
clearIndex | FALSO | Borre el índice de Algolia antes de indexar nuevos documentos |
fileParser | nulo | Referencia de función a un controlador personalizado para crear documentos |
pattern | **/* | Patrón global para hacer coincidir los archivos de entrada. Puede ser una matriz o una sola cadena. |
pista: metalsmith-algolia usa
debug