markdown-to-ast v6.0.3
markdown-to-ast
Parse Markdown to AST with location info.
This library is not parser itself, it dependent on wooorm/remark.
Markdown -> remark -> markdown-to-ast ->
TxtNode
s
The AST consists of TxtNode
s.
A TxtNode
of the AST has following properties:
loc
- Nodes have line and column-based location info.range
- Nodes have an index-based location range (array).raw
- Node have araw
text.value
- Node have avalue
of text.
The interface are defined in textlint/txtnode.md
This library is a part of textlint/textlint.
If you need to markdown parser, please use wooorm/remark directly.
DEMO
Online Parsing Demo provide markdown to AST on-the-fly.
Installation
npm install markdown-to-ast
Usage
var parse = require("markdown-to-ast").parse;
var markdown = "It's a *text*";
var AST = parse(markdown);
/*
{
"type": "Document",
"children": [
{
"type": "Paragraph",
"children": [
{
"type": "Str",
"value": "It's a ",
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 7
}
},
"range": [
0,
7
],
"raw": "It's a "
},
{
"type": "Emphasis",
"children": [
{
"type": "Str",
"value": "text",
"loc": {
"start": {
"line": 1,
"column": 8
},
"end": {
"line": 1,
"column": 12
}
},
"range": [
8,
12
],
"raw": "text"
}
],
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 13
}
},
"range": [
7,
13
],
"raw": "*text*"
}
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 13
}
},
"range": [
0,
13
],
"raw": "It's a *text*"
}
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 13
}
},
"range": [
0,
13
],
"raw": "It's a *text*"
}
*/
If you want to know real use-case, please see textlint/textlint.
Tests
npm test
Create fixtures
See tools/ directory.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
License
MIT
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago