Cut out sections from TxtAST.
npm install select-sectionCut out sections from TxtAST or mdast.
A section is slitted by Header Node.
This rule defined section as following:
The Markdown contents
``Header1
text.
text.
`
to be
``
------------|---- # Header 1
|
Section1 | text.
|
------------|---- # Header 2
|
Section2 | text.
|
------------|---------------
A section is slitted by Header Node.
This rule defined section as following:
The Markdown contents
`Header1
text.
text.
`
to be
``
--------------------------|---- # Header 1
|
Section1 | text.
|
--------------|---- ## Header 2
- -|
- Section2 -| text.
- -|
--------------------------|---------------
Tree view:
``
└── _Section1_
├── # Header 1
├── text.
└── _Section2_
├── ## Header 2
└── text.
Install with npm:
npm install select-section
Create "Section" node that compatible with TxtAST.
`js# Header
const createSections = require("select-section");
const parse = require("markdown-to-ast").parse;
const AST = parse(
text1
text1
text2
text2);`
const results = createSections(AST);
/*
[
{
"type": "Section",
"range": [
0,
20
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 5
}
},
"raw": "# Headertext1\ntext1",
"children": [
{
"type": "Header",
"depth": 1,
"children": [
{
"type": "Str",
"value": "Header",
"loc": {
"start": {
"line": 1,
"column": 2
},
"end": {
"line": 1,
"column": 8
}
},
"range": [
2,
8
],
"raw": "Header"
}
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 8
}
},
"range": [
0,
8
],
"raw": "# Header"
},
{
"type": "Paragraph",
"children": [
{
"type": "Str",
"value": "text1\ntext1",
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 3,
"column": 5
}
},
"range": [
9,
20
],
"raw": "text1\ntext1"
}
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 3,
"column": 5
}
},
"range": [
9,
20
],
"raw": "text1\ntext1"
}
]
},
{
"type": "Section",
"range": [
22,
43
],
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"raw": "# Headertext2\ntext2",
"children": [
{
"type": "Header",
"depth": 1,
"children": [
{
"type": "Str",
"value": "Header",
"loc": {
"start": {
"line": 5,
"column": 2
},
"end": {
"line": 5,
"column": 8
}
},
"range": [
24,
30
],
"raw": "Header"
}
],
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 8
}
},
"range": [
22,
30
],
"raw": "# Header"
},
{
"type": "Paragraph",
"children": [
{
"type": "Str",
"value": "text2\ntext2",
"loc": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"range": [
32,
43
],
"raw": "text2\ntext2"
}
],
"loc": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"range": [
32,
43
],
"raw": "text2\ntext2"
}
]
}
]
*/
- Use in textlint: azu/textlint-rule-no-empty-section: textlint rule not allow to create empty section.
See Releases page.
Install devDependencies and Run npm test:
npm i -d && npm test
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
1. Fork it!
2. Create your feature branch: git checkout -b my-new-featuregit commit -am 'Add some feature'
3. Commit your changes: git push origin my-new-feature`
4. Push to the branch:
5. Submit a pull request :D
MIT © azu