@worktile/tiny-marked
TypeScript icon, indicating that this package has built-in type declarations

0.0.17 • Public • Published

wt-tiny-marked

tiny marked parser.

Installation

npm i @worktile/tiny-marked --save

Usage

Basic

import { TinyMarked } from "@worktile/tiny-marked";

const source = `Hello [@d007d3f455d846098c96b51d22eac16c|Peter Xu], how are you?\n> This is blockquote`;
const html = TinyMarked.toHTML(source);
const text = TinyMarked.toPlainText(source)

Custom Renderer

import { TinyMarked, HTMLRenderer, TinyLinkNode } from "@worktile/tiny-marked";

class MyHTMLRenderer extends HTMLRenderer {
    blockquote(text: string) {
        return `<blockquote class="my-blockquote">${text}</blockquote>`
    }

    link(node: TinyLinkNode): string {
        return `<a class="my-link" href="${node.href}" target="_blank">${node.text}</a>`;
    }
}

const source = `Hello [@d007d3f455d846098c96b51d22eac16c|Peter Xu], how are you?\n> This is blockquote`;
const html = TinyMarked.toHTML(source, new MyHTMLRenderer());

Rules

mention [@{uid}|{name}]

Source

[@d007d3f455d846098c96b51d22eac16c|Peter Xu]

HTML

<a class="mention" data-uid="d007d3f455d846098c96b51d22eac16c" href="javascript:;">@Peter Xu</a>

Plain Text

@Peter Xu

number-sign [#{type}-{id}|{identifier}|{name}]

Source

[#epic-d007d3f455d846098c96b51d22eac16c|AGL-100|Work item1]

HTML

<a class="number-sign" data-id="5e0ae6bc350483f8efdf739c" data-type="task" href="javascript:;">#AGL-100</a>

Plain Text

#AGL-100

color #ddd

Source

#ddd

HTML

<span class="color" data-color="#ddd"><span class="color-block" style="background: #ddd"></span>#ddd</span>

Plain Text

#ddd

blockquote >

Source

> hello

HTML

<blockquote><p>hello</p></blockquote>

Plain Text

hello

code ``

Source

`int i = 0;`

HTML

<p><code>int i = 0;</code></p>

Plain Text

int i = 0;

Bench Test

TinyMarked VS marked and LiteMarked(teams)

TinyMarked#renderHTML x 121,504 ops/sec ±2.27% (81 runs sampled)
Marked#renderHTML x 48,539 ops/sec ±2.59% (81 runs sampled)
LiteMarked#renderHTML x 52,851 ops/sec ±2.15% (90 runs sampled)

Fastest is TinyMarked#renderHTML

Release & Publish

  1. release by one of the following commands that contains bump version, generate changelog and add tag for release version.
     npm run release-patch
     npm run release-minor
     npm run release-major
    
  2. publish by npm run pub which contain build, published to npm

Readme

Keywords

none

Package Sidebar

Install

npm i @worktile/tiny-marked

Weekly Downloads

114

Version

0.0.17

License

ISC

Unpacked Size

74.2 kB

Total Files

45

Last publish

Collaborators

  • huanhuanwa
  • why520crazy
  • shaunxu
  • pubuzhixing
  • walkerkay001
  • swordman
  • handsomebutterball
  • xiaobei_lu
  • maple13