Files
30-seconds-of-code/node_modules/remark-stringify/lib/compiler.js
2019-08-20 15:52:05 +02:00

64 lines
2.0 KiB
JavaScript

'use strict';
var xtend = require('xtend');
var toggle = require('state-toggle');
module.exports = Compiler;
/* Construct a new compiler. */
function Compiler(tree, file) {
this.inLink = false;
this.inTable = false;
this.tree = tree;
this.file = file;
this.options = xtend(this.options);
this.setOptions({});
}
var proto = Compiler.prototype;
/* Enter and exit helpers. */
proto.enterLink = toggle('inLink', false);
proto.enterTable = toggle('inTable', false);
proto.enterLinkReference = require('./util/enter-link-reference');
/* Configuration. */
proto.options = require('./defaults');
proto.setOptions = require('./set-options');
proto.compile = require('./macro/compile');
proto.visit = require('./macro/one');
proto.all = require('./macro/all');
proto.block = require('./macro/block');
proto.visitOrderedItems = require('./macro/ordered-items');
proto.visitUnorderedItems = require('./macro/unordered-items');
/* Expose visitors. */
proto.visitors = {
root: require('./visitors/root'),
text: require('./visitors/text'),
heading: require('./visitors/heading'),
paragraph: require('./visitors/paragraph'),
blockquote: require('./visitors/blockquote'),
list: require('./visitors/list'),
listItem: require('./visitors/list-item'),
inlineCode: require('./visitors/inline-code'),
code: require('./visitors/code'),
html: require('./visitors/html'),
thematicBreak: require('./visitors/thematic-break'),
strong: require('./visitors/strong'),
emphasis: require('./visitors/emphasis'),
break: require('./visitors/break'),
delete: require('./visitors/delete'),
link: require('./visitors/link'),
linkReference: require('./visitors/link-reference'),
imageReference: require('./visitors/image-reference'),
definition: require('./visitors/definition'),
image: require('./visitors/image'),
footnote: require('./visitors/footnote'),
footnoteReference: require('./visitors/footnote-reference'),
footnoteDefinition: require('./visitors/footnote-definition'),
table: require('./visitors/table'),
tableCell: require('./visitors/table-cell')
};