0.2.22 • Published 1 year ago

@xieyuheng/postmark v0.2.22

Weekly downloads
-
License
GPL-3.0-or-later
Repository
-
Last release
1 year ago

Postmark

A framework for building markdown extensions.

Install

npm i @xieyuheng/postmark

Used By

Usage

Command Line Interface

After installed the @xieyuheng/postmark package, you can run postmark help to see help messages.

API Docs

Postmark.createParser(opts: ParserOptions)

import Postmark from "@xieyuheng/postmark"

const parser = Postmark.createParser({
  enableTable: true, // default
})

parser.parseDocument(text: string)

const text = `\
---
title: The principle of type theory
date: 2021-08-27
author: Xie Yuheng
---

# The principle

The principle of type theory is:

> We should study **terms** and **types** together.
`

const document = parser.parseDocument(text)

console.log(document)

Output:

Document {
  kind: 'Document',
  attributes: {
    title: 'The principle of type theory',
    date: 2021-08-27T00:00:00.000Z,
    author: 'Xie Yuheng'
  },
  span: Span {
    start: Position { line: 1, column: 1 },
    end: Position { line: 5, column: 51 }
  },
  children: [
    Headline { ... },
    Paragraph { ... },
    BlockQuote { ... }
  ]
}

parser.use<T>(plugin: Plugin<T>)

const parser = Postmark.createParser()
  .use<null>({
    kind: "CustomBlock",
    customKind: "Katex",
    recognize: ({ name }) => name.toLowerCase() === "katex",
  })
  .use<Dialog>({
    kind: "CustomItem",
    customKind: "Dialog",
    recognize: (item) =>
      item.start.some((tag) => tag.name.toLowerCase() === "dialog"),
    build: (item, { previousCustomItems }) =>
      Dialog.build(item, { previousCustomItems }),
  })

node.format() & node.render()

The node.format & node.render methods, help user to avoid handle Node recursively.

  • node.format() -- format node back to markdown itself.
  • node.render() -- render node to html.

Development

npm install    // Install dependencies
npm run build  // Compile `src/` to `lib/`
npm run watch  // Watch the compilation
npm run test   // Run test

Contributions

Be polite, do not bring negative emotion to others.

License

0.2.22

1 year ago

0.2.21

2 years ago

0.2.20

2 years ago

0.2.19

2 years ago

0.2.17

2 years ago

0.2.16

2 years ago

0.2.15

2 years ago

0.2.14

2 years ago

0.2.13

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.3

2 years ago

0.1.4

3 years ago

0.2.2

2 years ago

0.1.3

3 years ago

0.2.5

2 years ago

0.1.6

2 years ago

0.2.4

2 years ago

0.1.5

3 years ago

0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago