JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1343
  • Score
    100M100P100Q99831F
  • License MIT

Adds variables support to remark

Package Exports

  • remark-variables

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (remark-variables) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

remark-variables

Travis Coverage
Status

This plugin adds variables support to remark using a customizable template syntax. Variables are checked against both the vfile's, and processor's data property and can use both dot and bracket syntax. For example, foo.bar[0] resolve to vfile.data.foo.bar[0] if it exists, or do nothing if the property does not exist. By default, this plugin uses double curly braces {{, }} to denote variables but can be configured.

Install

npm install --save remark-variables

Usage

If we have a file, example.md

# {{ title }}

- {{ list[0] }} (string)
- {{ list[1] }} (number)
- {{ list[2] }} (boolean)

> {{ subtitle }}

and

var unified = require('unified')
var parser = require('remark-parse')
var compiler = require('remark-stringify')
var variables = require('remark-variables')
var reporter = require('vfile-reporter')
var toVfile = require('to-vfile')

var markdown = toVfile('./example.md')

// Set the processor
var processor = unified()
  .use(parser)
  .use(compiler)
  .use(variables)

// Add some data
processor = processor()
  .data('title', 'Example')
  .data('subtitle', 'Variables in markdown!')
  .data('list', [ 'other text', 0, true ])

// And process
processor().process(markdown, function (err, file) {
  console.error(reporter(err || file))
  console.log(file.toString())
})

the output would be

./example.md: no issues found
# Example

-   other text (string)
-   0 (number)
-   true (boolean)

> Variables in markdown!

Options

Type: Object | Array | String

If options is a string, then it is used as the opening and closing fence markers, for example: .use(variables, ':') would match :some.variable[0]: look for vfile.data.some.variable[0]. If options is an array, options[0] and options[1] are used as fence markers.

fence

Type: Array

Default: [ '{{', '}}' ]

Markers used to denote a variable to be replaced.

License

MIT © Paul Zimmer