UNPKG

@awesome-fe/translate

Version:
43 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlockQuoteRenderer = void 0; const block_node_renderer_1 = require("./block-node-renderer"); const need_delimiter_1 = require("./utils/need-delimiter"); class BlockQuoteRenderer extends block_node_renderer_1.BlockNodeRenderer { positionalAttributes = [{ name: 'style', position: 1 }, { name: 'attribution', position: 2 }, { name: 'citetitle', position: 3 }]; getDefaultAttributes(node) { const hasAnotherPositionalAttribute = this.positionalAttributes.some(it => it.name !== 'style' && node.hasAttribute(it.name)); if (!isQuote(node) || hasAnotherPositionalAttribute) { return {}; } else { return { style: 'quote' }; } } getBlockAttributes(node) { if (isQuote(node) && !(0, need_delimiter_1.needDelimiter)(node)) { return []; } else { return this.getNonDefaultAttributes(node); } } renderBody(node) { const children = this.renderChildren(node); if (isQuote(node) && !(0, need_delimiter_1.needDelimiter)(node)) { const attributes = node.getAttributes(); const attribution = attributes.attribution; const citetitle = attributes.citetitle; return `"${children}"\n-- ${[attribution, citetitle].filter(it => !!it).join(', ')}`; } else { const delimiter = (0, need_delimiter_1.needDelimiter)(node) ? '____' : ''; return [delimiter, children.trim(), delimiter].filter(it => !!it).join('\n'); } } } exports.BlockQuoteRenderer = BlockQuoteRenderer; function isQuote(node) { return node.getStyle() === 'quote'; } //# sourceMappingURL=block-quote-renderer.js.map