takedown
Version:
Customizable markdown parser
29 lines (20 loc) • 635 B
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var re = require('../../lib/re.js');
let tabRe = /\t/;
/*
Converts markdown block structure tabs to the proper tab stop in spaces.
*/
function detabber ({ convertTabsAfter, tabSize })
{
let marks = convertTabsAfter.join('|');
let linesRe = re.default.gm(`^(?:(?:${marks})[\\t ]*)+`);
return source => source.replace(linesRe, m =>
{
let index;
while ((index = m.search(tabRe)) >= 0)
m = m.replace(tabRe, ' '.repeat(tabSize - (index % tabSize)));
return m;
});
}
exports.default = detabber;
;