@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
71 lines (70 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.listItem = void 0;
var _ = require("..");
var _paragraph = require("./paragraph");
var _unknown = require("./unknown");
var _codeBlock = require("./code-block");
var _mediaGroup = require("./media-group");
var _mediaInline = require("./media-inline");
var listItem = exports.listItem = function listItem(node, prefix, context) {
var result = [];
var contentBuffer = [];
node.forEach(function (n) {
switch (n.type.name) {
case 'paragraph':
{
contentBuffer.push((0, _paragraph.paragraph)(n, {
context: context
}));
break;
}
case 'bulletList':
case 'orderedList':
case 'taskList':
{
if (contentBuffer.length) {
result.push("".concat(prefix, " ").concat(contentBuffer.join('\n')));
contentBuffer = [];
}
// eslint-disable-next-line @atlassian/perf-linting/no-expensive-split-replace -- Ignored via go/ees017 (to be fixed)
var nestedList = (0, _.encode)(n, context).split('\n').map(function (line) {
if (['#', '*'].indexOf(line.substr(0, 1)) !== -1) {
return "".concat(prefix).concat(line);
}
return line;
}).join('\n');
result.push(nestedList);
break;
}
case 'codeBlock':
{
contentBuffer.push((0, _codeBlock.codeBlock)(n));
break;
}
case 'mediaInline':
{
contentBuffer.push((0, _mediaInline.mediaInline)(n, {
context: context
}));
break;
}
case 'mediaSingle':
{
// mediaSingle and mediaGroup are holding the same conversion logic
contentBuffer.push((0, _mediaGroup.mediaGroup)(n, {
context: context
}));
break;
}
default:
contentBuffer.push((0, _unknown.unknown)(n));
}
});
if (contentBuffer.length) {
result.push("".concat(prefix, " ").concat(contentBuffer.join('\n')));
}
return result.join('\n');
};