diff options
Diffstat (limited to 'packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs')
-rw-r--r-- | packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs b/packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs new file mode 100644 index 000000000..39acabd52 --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs @@ -0,0 +1,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}`; + }; |