Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including mdast-util-to-nlcst with all npm packages installed. Try it out:

var mdastUtilToNlcst = require("mdast-util-to-nlcst")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

mdast-util-to-nlcst v4.0.0

mdast utility to transform to nlcst

mdast-util-to-nlcst

Build Coverage Downloads Size Sponsors Backers Chat

mdast utility to transform to nlcst.

Note: You probably want to use remark-retext.

Install

npm:

npm install mdast-util-to-nlcst

Usage

var toNLCST = require('mdast-util-to-nlcst')
var inspect = require('unist-util-inspect')
var English = require('parse-english')
var remark = require('remark')
var vfile = require('vfile')

var file = vfile('Some *foo*sball.')
var tree = remark().parse(file)

var nlcst = toNLCST(tree, file, English)

console.log(inspect(nlcst))

Yields:

RootNode[1] (1:1-1:17, 0-16)
└─ ParagraphNode[1] (1:1-1:17, 0-16)
   └─ SentenceNode[4] (1:1-1:17, 0-16)
      ├─ WordNode[1] (1:1-1:5, 0-4)
      │  └─ TextNode: "Some" (1:1-1:5, 0-4)
      ├─ WhiteSpaceNode: " " (1:5-1:6, 4-5)
      ├─ WordNode[2] (1:7-1:16, 6-15)
      │  ├─ TextNode: "foo" (1:7-1:10, 6-9)
      │  └─ TextNode: "sball" (1:11-1:16, 10-15)
      └─ PunctuationNode: "." (1:16-1:17, 15-16)

API

toNlcst(tree, file, Parser[, options])

Transform a tree in mdast, with a corresponding virtual file, into nlcst.

Parameters
node

Tree in mdast with positional information (MdastNode).

file

Virtual file (VFile).

parser

nlcst parser (Function). For example, parse-english, parse-dutch, or parse-latin.

options.ignore

List of types to ignore (Array.<string>).

'table', 'tableRow', and 'tableCell' are always ignored.

options.source

List of types to mark as source (Array.<string>).

'inlineCode' is always marked as source.

Returns

NlcstNode.

Examples
ignore

Say we have the following file example.md:

A paragraph.

> A paragraph in a block quote.

…and if we now transform with ignore: ['blockquote'], we get:

RootNode[2] (1:1-3:1, 0-14)
├─ ParagraphNode[1] (1:1-1:13, 0-12)
│  └─ SentenceNode[4] (1:1-1:13, 0-12)
│     ├─ WordNode[1] (1:1-1:2, 0-1)
│     │  └─ TextNode: "A" (1:1-1:2, 0-1)
│     ├─ WhiteSpaceNode: " " (1:2-1:3, 1-2)
│     ├─ WordNode[1] (1:3-1:12, 2-11)
│     │  └─ TextNode: "paragraph" (1:3-1:12, 2-11)
│     └─ PunctuationNode: "." (1:12-1:13, 11-12)
└─ WhiteSpaceNode: "\n\n" (1:13-3:1, 12-14)
source

Say we have the following file example.md:

A paragraph.

> A paragraph in a block quote.

…and if we now transform with source: ['blockquote'], we get:

RootNode[3] (1:1-3:32, 0-45)
├─ ParagraphNode[1] (1:1-1:13, 0-12)
│  └─ SentenceNode[4] (1:1-1:13, 0-12)
│     ├─ WordNode[1] (1:1-1:2, 0-1)
│     │  └─ TextNode: "A" (1:1-1:2, 0-1)
│     ├─ WhiteSpaceNode: " " (1:2-1:3, 1-2)
│     ├─ WordNode[1] (1:3-1:12, 2-11)
│     │  └─ TextNode: "paragraph" (1:3-1:12, 2-11)
│     └─ PunctuationNode: "." (1:12-1:13, 11-12)
├─ WhiteSpaceNode: "\n\n" (1:13-3:1, 12-14)
└─ ParagraphNode[1] (3:1-3:32, 14-45)
   └─ SentenceNode[1] (3:1-3:32, 14-45)
      └─ SourceNode: "> A paragraph in a block quote." (3:1-3:32, 14-45)

Security

Use of mdast-util-to-nlcst does not involve hast so there are no openings for cross-site scripting (XSS) attacks.

Related

Contribute

See contributing.md in syntax-tree/.github for ways to get started. See support.md for ways to get help.

This project has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.

License

MIT © Titus Wormer

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free