takedown
Version:
Customizable markdown parser
43 lines (33 loc) • 1.31 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var resourcePool = require('../../lib/resource-pool.js');
var agent = require('./agency/agent.js');
var detabber = require('./detabber.js');
var index = require('./entitor/index.js');
var finalizer = require('./finalizer.js');
var interpolator = require('./interpolator.js');
var parser$1 = require('./parser.js');
let insecureRe = /&#x?0+;/gi;
function parser (config)
{
let detab = detabber.default(config);
let madoe = index.default(config);
let inter = interpolator.default(config);
let finalize = finalizer.default(config, inter);
let agentPool = resourcePool.default(() => agent.default(config));
return (source) =>
{
let document = { id: performance.now().toString(16).replace('.', ''), refs: {} };
let parse = parser$1.default({ document, agentPool, madoe });
// replace insecure character
source = source.replace(insecureRe, '�');
// replace structural tabs with spaces
source = detab(source);
// parse document
let target = parse(source, 'root');
// render document
target = finalize(target, document);
return { source, doc: target, meta: document };
}
}
exports.default = parser;
;