UNPKG

958 BJavaScriptView Raw
1'use strict';
2
3var xtend = require('xtend');
4var visit = require('unist-util-visit');
5
6var headingPlugin = require('./headingVisitor');
7var referenceVisitors = require('./referenceVisitors');
8
9module.exports = preprocess;
10
11function preprocess(ctx, tree) {
12 var _referenceVisitors = referenceVisitors(),
13 definitionVisitor = _referenceVisitors.definitionVisitor,
14 imageReferenceVisitor = _referenceVisitors.imageReferenceVisitor;
15
16 var defaultVisitors = {
17 definition: [definitionVisitor],
18 imageReference: [imageReferenceVisitor],
19 heading: [headingPlugin]
20 };
21
22 var visitors = xtend(defaultVisitors, ctx.preprocessors || {});
23
24 Object.keys(visitors).forEach(function (nodeType) {
25 if (Array.isArray(visitors[nodeType])) {
26 visitors[nodeType].forEach(function (visitor) {
27 return visit(tree, nodeType, visitor(ctx, tree));
28 });
29 } else {
30 visit(tree, nodeType, visitors[nodeType](ctx, tree));
31 }
32 });
33}
\No newline at end of file