add-classes.mjs 497 B

123456789101112131415161718
  1. import { selectAll } from 'hast-util-select';
  2. export default (additions) => {
  3. const adders = Object.entries(additions).map(adder);
  4. return (node) => adders.forEach((a) => a(node));
  5. };
  6. const adder = ([selector, className]) => {
  7. const writer = write(className);
  8. return (node) => selectAll(selector, node).forEach(writer);
  9. };
  10. const write =
  11. (className) =>
  12. ({ properties }) => {
  13. if (!properties.className) properties.className = className;
  14. else properties.className += ` ${className}`;
  15. };