summaryrefslogtreecommitdiff
path: root/examples/with-markdown-plugins/add-classes.mjs
blob: 54879e55db5408ff6a2c4a97fc55d996eee8b2bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { selectAll } from 'hast-util-select';

export default additions => {
    const adders = Object.entries(additions).map(adder);
    return node => adders.forEach(a => a(node));
};

const adder = ([selector, className]) => {
    const writer = write(className);
    return node => selectAll(selector, node).forEach(writer);
};

const write = className => ({ properties }) => {
    if(!properties.className) properties.className = className;
    else properties.className += ` ${className}`;
};