UNPKG

@awesome-fe/translate

Version:
55 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listItemVisitor = void 0; var pad_1 = require("./utils/pad"); var tabSize = 4; // Stringify a list item. // // Prefixes the content with a checked checkbox when `checked: true`: // // ```markdown // [x] foo // ``` // // Prefixes the content with an unchecked checkbox when `checked: false`: // // ```markdown // [ ] foo // ``` function listItemVisitor(node, parent, position, bullet) { var _this = this; var style = this.options.listItemIndent; var marker = node.marker || bullet || this.options.bullet; var spread = node.spread == null ? true : node.spread; var checked = node.checked; var children = node.children; var values = children.map(function (it) { return _this.visit(it, node).trim(); }); if (spread) { values.push(''); } var value = values.join(spread ? '\n\n' : '\n'); if (typeof checked === 'boolean') { // Note: I’d like to be able to only add the space between the check and // the value, but unfortunately github does not support empty list-items // with a checkbox :( value = "[".concat(checked ? 'x' : ' ', "] ").concat(value); } var indent; var spacing; if (style === '1' || (style === 'mixed' && value.indexOf('\n') === -1)) { indent = marker.length + 1; spacing = ' '; } else { indent = Math.ceil((marker.length + 1) / tabSize) * tabSize; spacing = ' '.repeat(indent - marker.length); } if (value) { return marker + spacing + (0, pad_1.pad)(value, indent / tabSize).slice(indent); } else { return marker; } } exports.listItemVisitor = listItemVisitor; //# sourceMappingURL=list-item-visitor.js.map