aboutsummaryrefslogtreecommitdiff
path: root/packages/astro/test/fixtures/astro-markdown-plugins/add-classes.mjs
diff options
context:
space:
mode:
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.mjs18
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}`;
+ };