1.0.5-rc.2 • Published 6 months ago
md-json-parser v1.0.5-rc.2
md-json-parser
A markdown parsing library build on the top of unified.
Feature Highlights
- Markdown to JSON Tree Conversion
- Fully Extentible (Using Remark Plugins)
- Frontmatter Support
- TODO: Table of Content (TOC) Support With Options
What is Markdown Parser?
The package is a Fully featured, extentible markdown to JSON Parser, using Syntax Trees. In the input, a markdown string can be given to it with optional plugins and extentions.
Installation
This package is ESM Only. It can be installed via NPM:
npm install md-json-parser
Usage
The Package can be imported like:
Markdown to JSON Parser:
import { MdJsonParserService } from 'md-json-parser'
let markdown = `---
file: abc.txt
creationDate: 2022-02-12
---
# Heading-1
## Heading-2`
// Optionally you can pass the changed configuration via the constructor parameters.
const mdJsonParserService= new MdJsonParserService()
const {data, body} = mdJsonParserService.parseMarkdown(markdown)
{
"data": {
"file": "abc.txt",
"creationDate": "2022-02-12T00:00:00.000Z"
},
"body": {
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "Heading-1",
"position": {
"start": {
"line": 3,
"column": 3,
"offset": 8
},
"end": {
"line": 3,
"column": 12,
"offset": 17
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 6
},
"end": {
"line": 3,
"column": 12,
"offset": 17
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "Heading-2",
"position": {
"start": {
"line": 4,
"column": 4,
"offset": 22
},
"end": {
"line": 4,
"column": 13,
"offset": 31
}
}
}
],
"position": {
"start": {
"line": 4,
"column": 1,
"offset": 19
},
"end": {
"line": 4,
"column": 13,
"offset": 31
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 4,
"column": 13,
"offset": 31
}
}
}
}
Markdown Options:
{
toc : {
active: true // To Generate TOC or not for the provided markdown.
depth: 2 // From h2 onwards, max tags which are supported.
searchDepth: 3 // Max Depth In which It should search for TOC Items in JSON Tree.
},
remarkPlugins : [
// Array of Remark Plugins For Customization. For More Info Refer: https://github.com/remarkjs/remark/blob/main/doc/plugins.md#create-plugins
]
}
Upcoming/TODO Tasks:
- Removal of position property from nodes
- TOC Support
- Custom Component Types Addition
- Other general optimization during node parsing
1.0.5-rc.2
6 months ago
1.0.5-rc.1
6 months ago
1.0.4
6 months ago
1.0.3
6 months ago
1.0.2
10 months ago
1.0.1
2 years ago
1.0.0
2 years ago