Markdown parser
npm install @md-parser/parserMarkdown parser that returns an AST (Abstract Syntax Tree) of the markdown document.
- Line breaks are always hard breaks
- No inline HTML
- Output is not sanitized
- Headings can only be defined by # characters
Line breaks are always hard breaks. This means that a line break in the markdown document will always result in a tag in the HTML output.
No additional spaces or slashes are required.
``md`
Hello
World
` Hellohtml`
World
Headings can only be defined by # characters. This means that headings cannot be defined by underlines or = characters.
Valid:
`mdHeading 1
#### Heading 4
##### Heading 5
###### Heading 6
`
Invalid:
`md`Heading 1
Inline HTML is parsed as is. This means that the HTML is not parsed as markdown. To prevent security vulnerabilities, the markdown renderer should sanitize the output.
In a markdown parser, "sanitized output" refers to removing or encoding potentially harmful HTML or code to prevent security vulnerabilities. This is not the job of a markdown parser. This is the job of a markdown renderer. This parser only returns an AST. It is up to the renderer to sanitize the output.
`sh`
yarn add @md-parser/parse
`ts
import { parseMarkdown } from '@md-parser/parse';
const ast = parseMarkdown('# Hello World');
// ast = [
// {
// "type": "heading",
// "level": 1,
// "children": [
// {
// "type": "text",
// "value": "Hello World"
// }
// ]
// }
// ]
`
`ts
import { parseMarkdown, GFM } from '@md-parser/parse';
const ast = parseMarkdown('# Hello World', {
presets: [GFM()],
});
``