UNPKG

books-cli

Version:

由于本人经常性的写一些文档,然后现有的很多插件版本各方面存在问题,甚至还有一些作者已经放弃维护了,所以决定自己写一个综合性的插件用来满足个人需求。

53 lines (42 loc) 1.25 kB
/** * 搜索 */ var Entities = require('html-entities').AllHtmlEntities; var Html = new Entities(); // 文件索引到文件索引的映射 var documentsStore = {}; function hooks_page(gitbook, page) { if (gitbook.output.name !== 'website' || page.search === false) { return page; } gitbook.log.debug.ln('index page', page.path); var text = page.content; // 解码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 || []; } // 添加索引 var doc = { url: gitbook.output.toURL(page.path), title: page.title, summary: page.description, keywords: keywords.join(' '), body: text }; documentsStore[doc.url] = doc; return page; } function hooks_finish(gitbook) { if (gitbook.output.name !== 'website') return; gitbook.log.debug.ln('编写搜索索引'); return gitbook.output.writeFile('search_plus_index.json', JSON.stringify(documentsStore)); } module.exports = { hooks_page, hooks_finish };