UNPKG

takedown

Version:
29 lines (20 loc) 635 B
'use strict'; 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;