Files
unicorn-utterances/plugins/count-inline-code/index.js
2020-01-15 11:48:29 -08:00

29 lines
686 B
JavaScript

const flatFilter = require("unist-util-flat-filter");
const addInlineCount = ({ markdownAST, actions, markdownNode, ...props }) => {
const { createNodeField } = actions;
const inlineCodeAST = flatFilter(
markdownAST,
node => node.type === "inlineCode"
);
let inlineWords = 0;
if (inlineCodeAST && inlineCodeAST.children) {
inlineWords = inlineCodeAST.children.reduce(
(numberOfInline, inlineCodeNode) => {
const { value } = inlineCodeNode;
const words = value.split(/\b/g);
return numberOfInline + words.length;
},
0
);
}
createNodeField({
name: `inlineCount`,
node: markdownNode,
value: inlineWords
});
};
module.exports = addInlineCount;