sundown-ast

1.4.0 • Public • Published

File size

8.77 kB

Description

Sundown is a flavor of Markdown with the addition of imports

Installation

$ npm i -D sundown-ast

Usage

  const md = require("markdown-simple-ast");
  md("# Markdown\nParagraph");
  // [{
  //    type: "h1",
  //    depth: 0,
  //    children: ["Markdown"]
  // }, {
  //    type: "p",
  //    depth: 0,
  //    children: ["Paragraph"]
  //  }
  // ]

Node types

Inline

Strong

**Strong**

  {
    type: "strong",
    children: ["Strong"]
  }

Emphasis (Italics)

*Emphasis*

  {
    type: "emphasis",
    children: ["Emphasis"]
  }

Strikethrough (del)

~~Strikethrough~~

  {
    type: "strikethrough",
    children: ["Strikethrough"]
  }

Image

![A picture](http://www.cats.com/pictures/cat00001.jpg)

  {
    type: "img",
    src: "http://www.cats.com/pictures/cat00001.jpg",
    alt: "A picture"
  }

Inline code

`var inline_code`

  {
    type: "inline-code",
    children: ["var inline_code"]
  }

Links

Link

[A link](http://www.google.com)

  {
    type: "a",
    href: "http://www.google.com",
    children: ["A link"]
  }

Reference style link

[Reference style link][1]

  {
    type: "rlink",
    href: "1",
    children: ["A reference style link"]
  }

Reference

[arbitrary case-insensitive reference text]: https://www.mozilla.org

  {
    type: 'ref',
    depth: 0,
    href: 'https://www.mozilla.org',
    link: 'arbitrary case-insensitive reference text'
  }

Block quote

> Block quote

  {
    type: "quote",
    depth: 0,
    children: [{
      type: "p",
      depth: 0,
      children: ["Block quote"]
    }]
  }

Horizontal rule

___ or *** or ---

  {
    type: "hr",
    depth: 0,
    children: []
  }

Paragraph text

Paragraph text

  {
    type: "p",
    depth: 0,
    children: ["Paragraph text"]
  }

Heading

## Heading
#2 Heading

Maximum heading size is 6

  {
    type: "h2",
    depth: 0,
    children: ["Heading"]
  }

Unordered list

- List items

- List items

- List items

  {
    type: "ul",
    depth: 0,
    children: [{
      type: "li",
      children: ["List items"]
    }
    ...
    ]
  }

Ordered list

  1. Ordered list items

  2. Ordered list items

  3. Ordered list items

  {
    type: "ol",
    depth: 0,
    children: [{
      type: "li",
      children: ["Ordered list items"]
    }
    ...
    ]
  }

Tables

Status Code Error Description
400 request_conflict Attempted to create board that already exists.
400 request_invalid Attempted to create invalid board
401 authorization_expired Authorization token has expired
401 authorization_missing Authorization token was not found
403 authorization_forbidden Authenticated user is not allowed this action.
[{
type: "table",
depth: 0,
children: [{
  type: "th",
  depth: 0,
  children: [ [ "Status Code" ], [ "Error" ], [ "Description" ] ]
}, {
  type: "td",
  depth: 0,
  children: [ [ "400" ], [ "request_conflict" ], [ "Attempted to create ", { type: "strong", children: ["board"] } ," that already exists." ] ]
}, {
  type: "td",
  depth: 0,
  children: [ [ "400" ], [ "request_invalid" ], [ "Attempted to create invalid board" ] ]
}, {
  type: "td",
  depth: 0,
  children: [ [ "401" ], [ "authorization_expired" ], [ "Authorization token has expired" ] ]
}, {
  type: "td",
  depth: 0,
  children: [ [ "401" ], [ "authorization_missing" ], [ "Authorization token was not found" ] ]
}, {
  type: "td",
  depth: 0,
  children: [ [ "403" ], [ "authorization_forbidden" ], [ "Authenticated user is not allowed this action." ] ]
}]

Import

Three different ways to write your imports

Single import

@import(file/name.type)

Multiple import

@import(
  file/name.type
  file/name2.type
)
@import(
  file/name.type
  file/name2.type)
{
  type: "import",
  depth: 1,
  children: ["file/name.type", "file/name2.type"]
}

Readme

Keywords

none

Package Sidebar

Install

npm i sundown-ast

Weekly Downloads

1

Version

1.4.0

License

ISC

Last publish

Collaborators

  • seanjm