0.0.17 • Published 1 year ago

@worktile/tiny-marked v0.0.17

Weekly downloads
34
License
ISC
Repository
github
Last release
1 year ago

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
0.0.13

2 years ago

0.0.14

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

1 year ago

0.0.12

3 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.4

4 years ago

0.0.1

4 years ago