@worktile/tiny-marked
v0.0.17
Published
> tiny marked parser.
Downloads
431
Keywords
Readme
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
- 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
- publish by
npm run pub
which contain build, published to npm