2018-09-30 20:34:01 +01:00
|
|
|
const visit = require('unist-util-visit');
|
|
|
|
const { selectAll } = require('hast-util-select');
|
|
|
|
|
|
|
|
const { sectionFilter } = require('./utils');
|
|
|
|
|
|
|
|
function createPlugin() {
|
|
|
|
return function transformer(tree, file) {
|
|
|
|
function visitor(node) {
|
|
|
|
if (sectionFilter(node, 'solution')) {
|
|
|
|
const solutions = selectAll('code', node).map(
|
|
|
|
element => element.children[0].value
|
|
|
|
);
|
2018-10-23 16:21:53 +03:00
|
|
|
file.data = {
|
|
|
|
...file.data,
|
|
|
|
solutions
|
|
|
|
};
|
2018-09-30 20:34:01 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
visit(tree, 'element', visitor);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = createPlugin;
|