particle-iot/metalsmith-lunr

Name: metalsmith-lunr

Owner: Particle

Description: Metalsmith plugin to integrate Lunr.js search engine.

Created: 2015-07-14 21:14:49.0

Updated: 2016-02-10 01:37:48.0

Pushed: 2018-01-03 18:33:14.0

Homepage: null

Size: 22

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

metalsmith-lunr

A Metalsmith plugin that integrates the Lunr.js client side search engine.

Builds a searchable JSON index based on Metalsmith metadata.

Installation
$ npm install metalsmith-lunr
Usage

Include lunr: true in file metadata to include it in the search index.


: true
e: My Article
: maybe some tags for indexing


rticle contents...

Metalsmith-lunr can be used without options:

lunr = require('metalsmith-lunr');

lsmith.use(lunr()).

Use file metadata as fields for the search and assign weight for each field. The content field refers Metalsmith's internal record of the files contents and should not be included in the file metadata.

lunr = require('metalsmith-lunr');
lunr_ = require('lunr');
ire('lunr-languages/lunr.stemmer.support')(lunr_);
ire('lunr-languages/lunr.no')(lunr_);

lsmith.use(lunr({
f: 'title',
dexPath: 'index.json',
elds: {
  contents: 1,
  tags: 10

pelineFunctions: [
lunr_.trimmer,
lunr_.no.stopWordFilter,
lunr_.no.stemmer

eprocess: function(content) {
// Replace all occurrences of __title__ with the current file's title metadata.
return content.replace(/__title__/g, this.title);


Optional Parameters Default Parameter Values
Client Side Search

Metalsmith-lunr will generate searchIndex.json. Include lunr.js in your javascript source files. Client side search example can be found here.

Once the JSON file has been parsed into javascript, simply run the following:

dex is the parsed JSON file
= lunr.Index.load(index)
results = idx.search("Your Search Terms Here");
CLI Usage

lugins": {
"metalsmith-lunr": {
  "fields": {
    "tags": 10,
    "contents": 1
  }
}


Tests

npm test

License

MIT


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.