@diplodoc/transform
Version:
A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML
39 lines • 1.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.append = exports.generateID = exports.сarriage = exports.nestedCloseTokenIdxFactory = void 0;
const chalk_1 = require("chalk");
const process_1 = require("process");
const nestedCloseTokenIdxFactory = (tokenName, matchOpenToken, matchCloseToken) => (tokens, idx, path, log) => {
let level = 0;
let i = idx;
while (i < tokens.length) {
if (matchOpenToken(tokens, i)) {
level++;
}
else if (matchCloseToken(tokens, i)) {
if (level === 0) {
return i;
}
level--;
}
i++;
}
log.error(`${tokenName} must be closed${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
return null;
};
exports.nestedCloseTokenIdxFactory = nestedCloseTokenIdxFactory;
exports.сarriage = process_1.platform === 'win32' ? '\r\n' : '\n';
function generateID() {
return Math.random().toString(36).substr(2, 8);
}
exports.generateID = generateID;
function append(target, key, ...values) {
if (!target[key]) {
target[key] = values;
return;
}
values.forEach((value) => target[key].push(value));
return target;
}
exports.append = append;
//# sourceMappingURL=utils.js.map
;