kubernetes-handbook/node_modules/gitbook-plugin-search-plus/index.js

65 lines
1.3 KiB
JavaScript
Raw Normal View History

2021-04-13 00:24:28 +08:00
var Entities = require('html-entities').AllHtmlEntities
var Html = new Entities()
// Map of Lunr ref to document
var documentsStore = { }
module.exports = {
book: {
assets: './assets',
js: [
'jquery.mark.min.js',
'search.js'
],
css: [
'search.css'
]
},
hooks: {
// Index each page
'page': function (page) {
if (this.output.name !== 'website' || page.search === false) {
return page
}
var text
this.log.debug.ln('index page', page.path)
text = page.content
// Decode HTML
text = Html.decode(text)
// Strip HTML tags
text = text.replace(/(<([^>]+)>)/ig, '')
text = text.replace(/[\n ]+/g, ' ')
var keywords = []
if (page.search) {
keywords = page.search.keywords || []
}
// Add to index
var doc = {
url: this.output.toURL(page.path),
title: page.title,
summary: page.description,
keywords: keywords.join(' '),
body: text
}
documentsStore[doc.url] = doc
return page
},
// Write index to disk
'finish': function () {
if (this.output.name !== 'website') return
this.log.debug.ln('write search index')
return this.output.writeFile('search_plus_index.json', JSON.stringify(documentsStore))
}
}
}