summaryrefslogtreecommitdiff
path: root/examples/with-markdown-plugins/add-classes.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/with-markdown-plugins/add-classes.mjs')
-rw-r--r--examples/with-markdown-plugins/add-classes.mjs16
1 files changed, 16 insertions, 0 deletions
diff --git a/examples/with-markdown-plugins/add-classes.mjs b/examples/with-markdown-plugins/add-classes.mjs
new file mode 100644
index 000000000..54879e55d
--- /dev/null
+++ b/examples/with-markdown-plugins/add-classes.mjs
@@ -0,0 +1,16 @@
+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}`;
+};