diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index 765d76cd..e32c96cc 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -359,6 +359,18 @@ class RichText { return html.replace(/


<\/p>$/, '') } + // 给html字符串中的节点样式按样式名首字母排序 + sortHtmlNodeStyles(html) { + return html.replace(/(<[^<>]+\s+style=")([^"]+)("\s*>)/g, (_, a, b, c) => { + let arr = b.match(/[^:]+:[^:]+;/g) || [] + arr = arr.map(item => { + return item.trim() + }) + arr.sort() + return a + arr.join('') + c + }) + } + // 隐藏文本编辑控件,即完成编辑 hideEditText(nodes) { if (!this.showTextEdit) { @@ -369,6 +381,7 @@ class RichText { beforeHideRichTextEdit(this) } let html = this.getEditText() + html = this.sortHtmlNodeStyles(html) let list = nodes && nodes.length > 0 ? nodes : this.mindMap.renderer.activeNodeList list.forEach(node => {