UNPKG

@awesome-fe/translate

Version:
36 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SourceCodeRenderer = void 0; const block_node_renderer_1 = require("./block-node-renderer"); const need_delimiter_1 = require("./utils/need-delimiter"); function getDelimiter(style) { switch (style) { case 'source': return '----'; case 'literal': return '....'; case 'listing': return '----'; default: return '===='; } } function needStyleAttribute(style, node) { return style === 'source' || style === 'literal' && !(0, need_delimiter_1.needDelimiter)(node); } class SourceCodeRenderer extends block_node_renderer_1.BlockNodeRenderer { positionalAttributes = [{ name: 'style', position: 1 }, { name: 'language', position: 2 }, { name: 'linenums', position: 3 }]; getDefaultAttributes(node) { const style = node.getStyle(); return { style: needStyleAttribute(style, node) ? '' : style, linenums: '' }; } renderBody(node) { const children = node.getSourceLines() .map(it => ' '.repeat(+node.getAttribute('indent')) + it) .join('\n'); const delimiter = getDelimiter(node.getStyle()); return [delimiter, children, delimiter].filter(it => !!it).join('\n') + '\n'; } } exports.SourceCodeRenderer = SourceCodeRenderer; //# sourceMappingURL=source-code-renderer.js.map