0.11.1 • Published 7 months ago

@md-parser/parser v0.11.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

markdown-parser

What is this?

Markdown parser that returns an AST (Abstract Syntax Tree) of the markdown document.

What is different?

  • Line breaks are always hard breaks
  • No inline HTML
  • Output is not sanitized
  • Headings can only be defined by # characters

Line breaks

Line breaks are always hard breaks. This means that a line break in the markdown document will always result in a <br /> tag in the HTML output. No additional spaces or slashes are required.

Hello
World
<p>Hello<br />World</p>

Headings

Headings can only be defined by # characters. This means that headings cannot be defined by underlines or = characters.

Valid:

# Heading 1

## Heading 2

### Heading 3

#### Heading 4

##### Heading 5

###### Heading 6

Invalid:

# Heading 1

Inline HTML

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.

Sanitization

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.

Install

yarn add @md-parser/parse

How to use

import { parseMarkdown } from '@md-parser/parse';

const ast = parseMarkdown('# Hello World');

// ast = [
//   {
//     "type": "heading",
//     "level": 1,
//     "children": [
//       {
//         "type": "text",
//         "value": "Hello World"
//       }
//     ]
//   }
// ]

Configuration

GitHub Flavored Markdown

import { parseMarkdown, GFM } from '@md-parser/parse';

const ast = parseMarkdown('# Hello World', {
  presets: [GFM()],
});
0.11.1

7 months ago

0.10.0

12 months ago

0.11.0

12 months ago

0.9.0

12 months ago

0.8.1

12 months ago

0.8.2

12 months ago

0.8.0

1 year ago

0.7.1

1 year ago

0.7.0

1 year ago