🚀 Big News:Socket Has Acquired Secure Annex.Learn More →
Socket
Book a DemoSign in
Socket

markdown-ast

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

markdown-ast

Markdown AST parser

latest
Source
npmnpm
Version
0.3.0
Version published
Weekly downloads
2.1K
2.9%
Maintainers
1
Weekly downloads
 
Created
Source

markdown-ast

npm Build status Coverage status Bundle size Install size Code style: Prettier Donate

Fork of snarkdown that returns an array of AST nodes, instead of an HTML string.

TypeScript support included!

import md from 'markdown-ast'

const ast = md(code)

The goal is to support Github-style markdown. Please file an issue if you run into any inconsistencies.

 

Notable behavior

  • Node locations are not tracked.
  • No HTML parsing. Embedded HTML is plain text.
  • Single \n chars are removed from the start/end of plain text.

 

Node types

Every node has a type property equal to one of these:

  • bold: __text__ or **text**
  • border: 3+ character sequence of [*-_] w/ optional spaces between
  • break: \n\n or \r\n\r\n or \s\s\n or \s\s\r\n
  • codeBlock: triple backticks or 4-spaces/tab indented
  • codeSpan: inline backticks
  • image: ![alt](url) or ![alt][key] or just ![altAsKey]
  • italic: _text_ or *text*
  • link: [text](url) or [text][key] or just [textAsKey]
  • linkDef: [key]: url
  • list: markdown w/ [-+*]|\d+[\.\)] prefix
  • quote: markdown w/ > prefix
  • strike: ~~text~~
  • text
  • title: markdown w/ #{1,6} prefix or underlined w/ 3+ =|- symbols

Available properties are defined here.

 

Block nodes

"Block nodes" have a block property containing any nested nodes. Blocks are auto-closed when their parent block is closed (unless the nested block is already closed, of course).

Some nodes (which may not be blocks) auto-close all open blocks. These include border, break, list, quote, and title nodes.

"Inline blocks" can be used anywhere in the document. These include bold, codeSpan, image, italic, link, and strike nodes.

"Recursive blocks" use their own parsing context to process any nested nodes. These include list, quote, and title nodes.

Keywords

markdown

FAQs

Package last updated on 22 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts