@hil/barkdown
v0.1.0
Published
A small markdown parser
Readme
Barkdown
A small but capable Markdown parser. Spiritual successor to Snarkdown. At least that was my goal in the beginning. Scope-creep is real and now it's fully CommonMark compliant, but it's still relatively small, but def not 1kb like SnarkDown.
Goals
- Small Markdown parser with no deps: 9.12 kB minified and gzipped
- Full CommonMark spec coverage
- Trusted Markdown in, trusted HTML out: always sanitize your inputs (good light-weight sanitizer: unsane)
- Single file: copy it to your project and add features or remove things you don't need
Features
- Passes the full CommonMark test suite
- Open links to black by setting
targetBlankoption. It addtarget="_blank" rel="noreferrer"attributes to links
Usage
Not in npm yet, but soon.
import { barkdown } from '@hil/barkdown'
const html = barkdown('Foo [bar](/bar)', {
targetBlank: true, // Default false, open links to target _blank
})To do
- [ ] Make it pluggable
- [ ] Tables
- [ ] Task lists
- [ ] Strike through
- [ ] Definition lists
- [ ] Try to make it smaller
- [ ] Add an option to provide a proper html entity encoder
If you find any quirks or want some features please open an issue or drop a pr.
Development
There are two sets of tests:
pnpm test:commonruns the CommonMark test suite, uses a custom reporterpnpm test:unitruns the in-source unit tests inindex.ts
