Skip to content
This repository has been archived by the owner on Jan 4, 2020. It is now read-only.

Latest commit

 

History

History
100 lines (74 loc) · 3.55 KB

README.md

File metadata and controls

100 lines (74 loc) · 3.55 KB

npm package @latest npm package @next

Travis-ci status CodeCov coverage

License agreement Open issues on GitHub

hoast-frontmatter

Extracts frontmatter from files. By default it only extracts JSON at the top of a file, but can easily be extended using the engine option.

As the name suggest this is a hoast module.

Usage

Install hoast-frontmatter using npm.

$ npm install --save hoast-frontmatter

Parameters

  • engine: Function to overwrite default frontmatter extraction. Function should accept two arguments the file path and content both of type string. The return should be an object with a content and frontmatter property both of type string.
    • Type: Function
    • Required: no
  • patterns: Glob patterns to match file paths with. If the engine function is set it will only give the function any files matching the pattern.
    • Type: String or Array of strings
      • Default: [ '*.md' ]
  • patternOptions: Options for the glob pattern matching. See planckmatch options for more details on the pattern options.
    • Type: Object
    • Default: {}
  • patternOptions.all: This options is added to patternOptions, and determines whether all patterns need to match instead of only one.
    • Type: Boolean
    • Default: false

Examples

CLI

{
  "modules": {
    "read": {},
    "hoast-frontmatter": {}
  }
}

Script

const Hoast = require(`hoast`);
const read = Hoast.read,
      frontmatter = require(`hoast-frontmatter`);

Hoast(__dirname)
  .use(read())
  .use(frontmatter())
  .process();

By default it will extract the JSON frontmatter from any .md files.

CLI

engine option is not compatible with the CLI tool as it requires a reference to a self specified function.

Script

const Hoast = require(`hoast`);
const read = Hoast.read,
      frontmatter = require(`hoast-frontmatter`);
const matter = require(`gray-matter`);

Hoast(__dirname)
  .use(read())
  .use(frontmatter({
    engine: function(filePath, content) {
      const result = matter(content, {
        excerpt: true
      });
      
      return {
        content: result.content,
        frontmatter: Object.assign({ excerpt: result.excerpt }, result.data)
      };
    }
  }))
  .process();

Extract the YAML frontmatter and an excerpt from any .md files using gray-matter.