@diplodoc/transform
Version:
A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML
40 lines • 1.37 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
const chalk_1 = require("chalk");
const log_1 = require("./log");
const liquid_1 = __importDefault(require("./liquid"));
const md_1 = __importDefault(require("./md"));
function applyLiquid(input, options) {
const { vars = {}, path, conditionsInCode = false, disableLiquid = false, isLiquided = false, } = options;
return disableLiquid || isLiquided
? input
: (0, liquid_1.default)(input, vars, path, { conditionsInCode });
}
function handleError(error, path) {
log_1.log.error(`Error occurred${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
throw error;
}
function emitResult(html, env) {
return {
result: Object.assign(Object.assign({}, env), { html }),
logs: log_1.log.get(),
};
}
function transform(originInput, options = {}) {
const input = applyLiquid(originInput, options);
const { parse, compile, env } = (0, md_1.default)(options);
try {
const tokens = parse(input);
if (options.tokens === true) {
return tokens;
}
return emitResult(compile(tokens), env);
}
catch (error) {
handleError(error, options.path);
}
}
module.exports = transform;
//# sourceMappingURL=index.js.map
;