diff --git a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js index e4a55dba4ec927e4761511248f8ba546cea4e25c..9aee495b486bd99796690dec0fd44dce29a22358 100644 --- a/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js +++ b/wax-prosemirror-services/src/AiService/ReplaceSelectedText.js @@ -27,13 +27,31 @@ const replaceSelectedText = (view, responseText, replace = false) => { ); } - if (responseText.includes('\n\n')) { - responseText.split('\n\n').forEach(element => { - paragraphNodes.push( - parser.parse(elementFromString(element.replace(/\n/g, '<br />')), { - preserveWhitespace: true, - }), - ); + if (responseText.includes('\n')) { + responseText.split('\n\n').forEach(paragraph => { + let content = ''; + + if (/^\d+\..*\n/.test(paragraph)) { + content = `<ol>`; + + paragraph.split('\n').forEach(line => { + content += `<li>${line.replace(/^(\d+\.\s)/g, '').trim()}</li>`; + }); + + content += `</ol>`; + } else if (/^-.*\n/.test(paragraph)) { + content = `<ul>`; + + paragraph.split('\n').forEach(line => { + content += `<li>${line.replace(/[-\s]/g, '')}</li>`; + }); + + content += `</ul>`; + } else { + content = paragraph.replace(/\n/g, '<br />'); + } + + paragraphNodes.push(parser.parse(elementFromString(content))); }); }