mrkdown
Version:
Markdown files to HTML static site generator - angular.js app
54 lines (53 loc) • 2.56 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.markdownRenderer = void 0;
var marked_1 = __importDefault(require("marked"));
var path_1 = __importDefault(require("path"));
var common_1 = require("./common");
var config_1 = require("./config");
function markdownRenderer(sourceFile, distFile, obj) {
var ren = new marked_1.default.Renderer();
ren.image = function (href, title, text) {
var folderName = (0, common_1.removeIfAnyEmptyStringInArray)(path_1.default.dirname(distFile).replace(path_1.default.resolve(config_1.defaultConfig.distFolderName), "").split("/").join("\\").split("\\"));
var hrefFolder = (0, common_1.removeIfAnyEmptyStringInArray)(href.split("/").join("\\").split("\\"));
var curDot = hrefFolder[0];
while (curDot == "." || curDot == "..") {
if (curDot == "..") {
folderName.pop();
hrefFolder.shift();
}
else {
hrefFolder.shift();
}
curDot = hrefFolder[0];
}
href = __spreadArray(__spreadArray(["."], folderName, true), hrefFolder, true).join('/');
return "<img src=\"".concat(href, "\" title=\"").concat(text, "\" alt=\"").concat(text, "\">");
};
ren.code = function (code, language, isEscaped) {
var id = ("id" + obj.codeCount);
if (obj.codeCount > 0) {
obj.code += "$scope.".concat(id, " = ") + "`" + code.replace(/\`/g, "\\`").replace(/\$/g, '\\$') + "`;\n";
}
else {
obj.code = "$scope.".concat(id, " = ") + "`" + code.replace(/\`/g, "\\`") + "`;\n";
}
obj.codeCount++;
obj.code += "$timeout(function () { var ".concat(id, " = $scope.").concat(id, "; $scope.").concat(id, " = ''; $timeout(function () { $scope.").concat(id, " = ").concat(id, " }, 0) }, 1000);\n");
return "<textarea ng-model=\"".concat(id, "\" ui-codemirror></textarea>");
};
return ren;
}
exports.markdownRenderer = markdownRenderer;