aboutsummaryrefslogtreecommitdiff
path: root/examples/with-markdown-plugins/add-classes.mjs
blob: 39acabd526702bf7e7df6a384daadd3e6d91cc2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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}`;
	};