diff --git a/web/package.json b/web/package.json index 81f50e75..2a496842 100644 --- a/web/package.json +++ b/web/package.json @@ -26,6 +26,7 @@ "less": "^4.1.3", "marked": "^13.0.2", "marked-highlight": "^2.1.4", + "md-editor-v3": "^4.16.7", "pinia": "^2.0.32", "vue": "^3.5.13", "vue-router": "^4.1.6" diff --git a/web/src/components/MessageComponent.vue b/web/src/components/MessageComponent.vue index 53acf069..b4bbcbc1 100644 --- a/web/src/components/MessageComponent.vue +++ b/web/src/components/MessageComponent.vue @@ -42,8 +42,8 @@ -
- + +
你停止生成了本次回答 重新编辑问题 @@ -73,6 +73,28 @@ import { markedHighlight } from 'marked-highlight'; import hljs from 'highlight.js'; import 'highlight.js/styles/github.css'; +import { MdPreview, config } from 'md-editor-v3' +config({ + markdownItConfig(md) { + md.renderer.rules.image = (tokens, idx, options, env, self) => { + tokens[idx].attrSet('style', 'display:inline-block;min-height:33px;padding:0;margin:0') + if (tokens[idx].content) { + tokens[idx].attrSet('title', tokens[idx].content) + } + tokens[idx].attrSet( + 'onerror', + 'this.src="/ui/assets/load_error.png";this.onerror=null;this.height="33px"' + ) + return md.renderer.renderToken(tokens, idx, options) + } + md.renderer.rules.link_open = (tokens, idx, options, env, self) => { + tokens[idx].attrSet('target', '_blank') + return md.renderer.renderToken(tokens, idx, options) + } + document.appendChild + } +}) + const props = defineProps({ // 消息角色:'user'|'assistant'|'sent'|'received' @@ -101,6 +123,7 @@ const props = defineProps({ }, }); +const editorRef = ref() const statusDefination = { init: '初始化', loading: '加载中',