1.4.9 • Published 4 years ago

remark-variables v1.4.9

Weekly downloads
958
License
MIT
Repository
github
Last release
4 years ago

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, options0 and options1 are used as fence markers.

fence

Type: Array

Default: '{{', '}}'

Markers used to denote a variable to be replaced.

License

MIT © Paul Zimmer

1.4.9

4 years ago

1.4.8

4 years ago

1.4.7

5 years ago

1.4.6

5 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.0

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago