An open API service indexing awesome lists of open source software.

https://github.com/purocean/markdown-it-attributes

An alternate of markdown-it-attr, write by TypeScript, 132x faster! Add classes, identifiers and attributes to your markdown with {} curly brackets, similar to pandoc's header attributes.
https://github.com/purocean/markdown-it-attributes

markdown-it

Last synced: about 1 year ago
JSON representation

An alternate of markdown-it-attr, write by TypeScript, 132x faster! Add classes, identifiers and attributes to your markdown with {} curly brackets, similar to pandoc's header attributes.

Awesome Lists containing this project

README

          

# Markdown-it-attributes

Add classes, identifiers and attributes to your markdown with {} curly brackets, similar to pandoc's header attributes

An alternate of [markdown-it-attr](https://github.com/arve0/markdown-it-attrs), write by TypeScript, 132x faster!

Note: *Not support css-module and `hr` tag*.

Article: [Yank Note 系列 07 - 性能暴增 132 倍的秘密——重写](https://blog-purocean.vercel.app/yank-note-07/)

**Benchmark**

```
node benchmark.js

simple content ---------- 100001 lines, 300000 characters
no plugin: 51ms
markdown-it-attrs: 183ms
markdown-it-attributes: 52ms
inc: 132x
complex content ---------- 290001 lines, 2668000 characters
no plugin: 393ms
markdown-it-attrs: 2321ms
markdown-it-attributes: 449ms
inc: 34.42857142857143x
compare result ----------
result equal: true
```

## Install

```sh
npm install --save markdown-it-attributes
```

## Usage

```js
var md = require('markdown-it')();
var markdownItAttrs = require('markdown-it-attributes');

md.use(markdownItAttrs, {
// optional, these are default options
leftDelimiter: '{',
rightDelimiter: '}',
allowedAttributes: [] // empty array = all attributes are allowed
});

var src = '# header {.green #id}\nsome text {with=attrs and="attrs with space"}';
var res = md.render(src);

console.log(res);
```