JSPM

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

Markdown heading as ranges in mdast

Package Exports

  • mdast-util-heading-range

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 (mdast-util-heading-range) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

mdast-util-heading-range Build Status Coverage Status Chat

Markdown heading as ranges in MDAST.

Installation

npm:

npm install mdast-util-heading-range

mdast-util-heading-range is also available as an AMD, CommonJS, and globals module, uncompressed and compressed.

Usage

Dependencies:

var heading = require('mdast-util-heading-range');
var remark = require('remark');

Plug-in:

function plugin() {
    return function (node) {
        heading(node, 'foo', function (start, nodes, end) {
            return [
                start,
                {
                    'type': 'paragraph',
                    'children': [{
                        'type': 'text',
                        'value': 'Qux.'
                    }]
                },
                end
            ];
        });
    }
}

Process a document.

var file = remark().use(plugin).process([
    '# Foo',
    '',
    'Bar.',
    '',
    '# Baz',
    ''
].join('\n'));

Yields:

# Foo

Qux.

# Baz

API

heading(node, test, onrun)

Transform part of a document without affecting other parts, by changing a section: a heading which passes test, until the next heading of the same or lower depth, or the end of the document.

Parameters
  • node (Node) — Node to search;
  • test (string, RegExp, function(string, Node): boolean) — Heading to look for. When string, wrapped in new RegExp('^(' + value + ')$', 'i'); when RegExp, wrapped in function (value) {expression.test(value)}.
  • onrun (Function).

function onrun(start, nodes, end?, scope)

Callback invoked when a range is found.

Parameters
  • start (Heading) — Start of range;

  • nodes (Array.<Node>) — Nodes between start and end;

  • end (Heading?) — End of range, if any.

  • scope (Object):

    • parent (Node) — Parent of the range;
    • start (number) — Index of start in parent;
    • end (number?) — Index of end in parent.

License

MIT © Titus Wormer