diff options
Diffstat (limited to 'examples/with-markdown-plugins/add-classes.mjs')
-rw-r--r-- | examples/with-markdown-plugins/add-classes.mjs | 16 |
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}`; +}; |