JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18766
  • Score
    100M100P100Q152578F
  • 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

Usage

Say we have the following file, example.md:

# Foo

Bar.

# Baz

And our script, example.js, looks as follows:

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

remark()
  .use(plugin)
  .process(vfile.readSync('example.md'), function (err, file) {
    if (err) throw err;
    console.log(String(file));
  });

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

Now, running node example 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