UNPKG

@awesome-fe/translate

Version:
61 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.customCompiler = void 0; const strong_visitor_1 = require("./strong-visitor"); const emphasis_visitor_1 = require("./emphasis-visitor"); const list_item_visitor_1 = require("./list-item-visitor"); const ng_inline_at_visitor_1 = require("./ng-inline-at-visitor"); const html_comment_visitor_1 = require("./html-comment-visitor"); const html_raw_visitor_1 = require("./html-raw-visitor"); const html_tag_visitor_1 = require("./html-tag-visitor"); const ng_doc_directive_visitor_1 = require("./ng-doc-directive-visitor"); function createTableCellVisitor(tableCell) { return function (node, parent, position, bullet) { const text = tableCell.call(this, node, parent, position, bullet); return text.replace(/\n/g, '&NewLine;').replace(/\\\|/g, '&verbar;'); }; } function createLinkVisitor(link) { return function (node, parent, position, bullet) { const text = link.call(this, node, parent, position, bullet); return text.replace(/^<(.*)>$/, '$1'); }; } function createTextVisitor(text) { return function (node, parent, position, bullet) { let content = text.call(this, node, parent, position, bullet); if (parent.type === 'link') { content = content // `[` 默认已经被转义过了,不需要这里补充转义 .replace(/]/g, '\\]'); } content = content .replace(/&#x3A;/g, ':') .replace(/®/g, '&reg;') .replace(/^@/g, '&commat;') .replace(/→/g, '&rarr;') .replace(/—/g, '&mdash;'); return content; }; } /** * Teach remark that some HTML blocks never include markdown */ function customCompiler() { const processor = this; const Compiler = processor.Compiler; const visitors = Compiler.prototype.visitors; visitors.link = createLinkVisitor(visitors.link); visitors.text = createTextVisitor(visitors.text); visitors.listItem = list_item_visitor_1.listItemVisitor; visitors.strong = strong_visitor_1.strongVisitor; visitors.emphasis = emphasis_visitor_1.emphasisVisitor; visitors['comment'] = html_comment_visitor_1.htmlCommentVisitor; visitors['htmlRaw'] = html_raw_visitor_1.htmlRawVisitor; visitors['htmlTag'] = html_tag_visitor_1.htmlTagVisitor; visitors.ngInlineAt = ng_inline_at_visitor_1.ngInlineAtVisitor; visitors.tableCell = createTableCellVisitor(visitors.tableCell); visitors.ngDocDirective = ng_doc_directive_visitor_1.ngDocDirectiveVisitor; } exports.customCompiler = customCompiler; //# sourceMappingURL=custom-compiler-plugin.js.map