@diplodoc/transform
Version:
A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML
44 lines • 1.74 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
const markdown_it_1 = __importDefault(require("markdown-it"));
const path_1 = require("path");
const utils_1 = require("../../utils");
const utilsFS_1 = require("../../utilsFS");
const deflist_1 = __importDefault(require("../deflist"));
const imsize_1 = __importDefault(require("../imsize"));
const collect = (input, options) => {
const md = new markdown_it_1.default().use(imsize_1.default).use(deflist_1.default);
const { root, path, destPath = '', copyFile, singlePage } = options;
const tokens = md.parse(input, {});
let result = input;
tokens.forEach((token) => {
if (token.type !== 'inline') {
return;
}
const children = token.children || [];
children.forEach((childToken) => {
if (childToken.type !== 'image') {
return;
}
const src = (0, utils_1.getSrcTokenAttr)(childToken);
if (!(0, utils_1.isLocalUrl)(src)) {
return;
}
const targetPath = (0, utilsFS_1.resolveRelativePath)(path, src);
const targetDestPath = (0, utilsFS_1.resolveRelativePath)(destPath, src);
if (singlePage && !path.includes('_includes/')) {
const newSrc = (0, path_1.relative)(root, (0, utilsFS_1.resolveRelativePath)(path, src));
result = result.replace(src, newSrc);
}
copyFile(targetPath, targetDestPath);
});
});
if (singlePage) {
return result;
}
return null;
};
module.exports = collect;
//# sourceMappingURL=collect.js.map