astro/examples/with-markdown-plugins/add-classes.mjs
Matthew Phillips 2770588867
Remove rehype-add-classes (#2309)
* Remove rehype-add-classes

* Fix the markdown plugin test
2022-01-04 15:09:10 -05:00

16 lines
499 B
JavaScript

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}`;
};