html-matter

0.1.1 • Public • Published

html-matter

NPM version NPM downloads Build Status donate

Install

yarn add html-matter

Usage

By default you can use @frontmatter at the beginning of the comment to indicate that its content is front-matter:

const htmlMatter = require('html-matter')

htmlMatter(`
<!-- @frontmatter title: Hello World -->
`)
//=> yields:
{ title: 'Hello World' }

// multi-line
htmlMatter(`
<!-- @frontmatter
title: Hello
tags:
  - js
  - es6
-->
`)
//=> yields:
{
  title: 'hello',
  tags: ['js', 'es6']
}

Use a custom namespace instead of frontmatter:

htmlMatter(`
<!-- @config
port: 3000
-->
`, { namespace: 'config' })
//=> yields:
{ port: 3000 }

Use a custom parser instead of Yaml:

htmlMatter(`
<!-- @config {
  "port": 3000
} -->
`, { namespace: 'config', parse: JSON.parse })
//=> yields:
{ port: 3000 }

If no front-matter was found, it returns null.

API

htmlMatter(input, [options])

input

Type: string
Required: true

HTML string.

options

namespace

Type: string
Default: 'frontmatter'

parse

Type: function

The default value is differnt in node.js and browser environment:

  • in node.js, it defaults to require('js-yaml').safeLoad, which means it's treated as YAML
  • in browser (CDN/bundler), it defaults to val => val, which means it simply returns the raw content, how to parse it is depending on you.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

html-matter © egoist, Released under the MIT License.
Authored and maintained by egoist with help from contributors (list).

egoistian.com · GitHub @egoist · Twitter @rem_rin_rin

Readme

Keywords

none

Package Sidebar

Install

npm i html-matter

Weekly Downloads

0

Version

0.1.1

License

MIT

Last publish

Collaborators

  • rem