All files / plugins / markers.ts

100.00% Branches 2/2
100.00% Lines 11/11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
x1
 
x3
 
x3
x174
 
x1
 
 
 
 
 
 
 
 
 
 
 
x3
x3
x3
x40
x5
x3






















// Imports
import type { Plugin } from "../renderer.ts"
import remarkFlexibleMarkers from "remark-flexible-markers"

/** Marker attributes */
const dictionary = Object.fromEntries([..."abcdefghijklmnopqrstuvwxyz"].map((letter) => [letter, letter]))

/**
 * Add support for markers.
 *
 * @example
 * ```md
 * ==foo==
 * =r=bar=
 * ```
 * ```html
 * <p><mark>foo</mark></p>
 * <p><mark r>bar</mark></p>
 * ```
 */
export default {
  remark(processor) {
    return processor.use(remarkFlexibleMarkers, { dictionary, markerClassName: () => [], markerProperties: (letter) => (letter ? { [letter]: true } : {}) })
  },
} as Plugin