ปลั๊กอิน metalsmith สำหรับการจัดทำดัชนีเนื้อหาใน Algolia
ปลั๊กอินนี้ช่วยให้คุณสามารถจัดทำดัชนีเนื้อหาของคุณในเครื่องมือค้นหา 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 สำหรับไฟล์ทั้งหมดที่มี algolia: true
ด้วยตัวอย่างนี้ เอกสารที่สร้างขึ้นจะมีลักษณะดังนี้:
{
"title" : " My awesome static page ! " ,
"description" : " This is a exemple page " ,
"contents" : " <h1>My awesome static page ! n <p>content exemple</p> "
}
หากคุณต้องการล้างเนื้อหาของคุณ คำนวณฟิลด์เพิ่มเติม หรือลบข้อมูลเมตาออกจากการทำดัชนี คุณสามารถใช้ตัวเลือก fileParser
เพื่อปลั๊กอิน Constructor เพื่อให้การโทรกลับแบบกำหนดเองเพื่อสร้างเอกสารของคุณเอง:
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 | - | รูปแบบ Glob เพื่อให้ตรงกับไฟล์อินพุต อาจเป็นอาร์เรย์หรือสตริงเดียวก็ได้ |
คำแนะนำ: metalsmith-algolia ใช้
debug