修改CKEditor5数据源处理方式为html而不是markdown;修复back按钮会导致outHTML null

master
joefalmko 3 months ago
parent 3c0646ea92
commit 81bd2da001

@ -38,7 +38,7 @@ import {
LinkImage, LinkImage,
List, List,
ListProperties, ListProperties,
Markdown, // Markdown,
MediaEmbed, MediaEmbed,
Mention, Mention,
PageBreak, PageBreak,
@ -82,7 +82,8 @@ import {
getStyle, getStyle,
getPageContent, getPageContent,
getUserConfigFromBackend, getUserConfigFromBackend,
saveData saveData,
// markdown2html
} from './utils'; } from './utils';
// 导出为docx插件 // 导出为docx插件
@ -418,7 +419,7 @@ function setConfig() {
LinkImage, LinkImage,
List, List,
ListProperties, ListProperties,
Markdown, // Markdown,
MediaEmbed, MediaEmbed,
Mention, Mention,
PageBreak, PageBreak,

@ -1,5 +1,5 @@
// utils.js // utils.js
import { MarkdownToHtml } from '@ckeditor/ckeditor5-markdown-gfm/src/markdown2html/markdown2html.js';
// 获取用户配置 // 获取用户配置
export function getUserConfigFromBackend() { export function getUserConfigFromBackend() {
// TODO 请求用户配置 // TODO 请求用户配置
@ -101,6 +101,7 @@ export function saveData(data) {
// resolve(); // resolve();
// }, HTTP_SERVER_LAG ); // }, HTTP_SERVER_LAG );
// } ); // } );
console.log('saving...');
console.log(data); console.log(data);
} }
@ -121,9 +122,10 @@ export function getStyle() {
// 获取用户编辑的内容 <html> // 获取用户编辑的内容 <html>
export function getPageContent() { export function getPageContent() {
const pageContent =document.querySelector("#app > div > div > div.editor-container.editor-container_document-editor.editor-container_include-style > div.editor-container__editor-wrapper > div > div"); return window.editor.getData();
// const pageContent =document.querySelector("#app > div > div > div.editor-container.editor-container_document-editor.editor-container_include-style > div.editor-container__editor-wrapper > div > div");
// const pageContent = document.querySelector("#app > div > div > div > div.editor-container__editor-wrapper > div > div > div"); // const pageContent = document.querySelector("#app > div > div > div > div.editor-container__editor-wrapper > div > div > div");
return pageContent.outerHTML; // return pageContent.outerHTML;
} }
// 获取并应用用户定义的样式 // 获取并应用用户定义的样式
@ -136,3 +138,12 @@ export function getAndApplyUserStyles() {
document.head.appendChild(styleElement); document.head.appendChild(styleElement);
return styles; return styles;
} }
// markdown转html 便于将大语言模型的输出一般为markdown格式转换为ckeditor的html格式
// 利用ckeditor markdown插件但不能在CkeditorView.vue中使用
// 否则会改变编辑器数据处理器为markdown即getData()需要传入markdown stringsetData()返回markdown string
export function markdown2html(markdownString){
const markdownToHtml = new MarkdownToHtml();
const htmlString = markdownToHtml.parse(markdownString);
return htmlString;
}

@ -345,6 +345,7 @@ export default {
// pageContent // pageContent
// TODO // TODO
editor.setData(pageContent); editor.setData(pageContent);
window.editor = editor;
}, },
// sidebar // sidebar
// / // /

Loading…
Cancel
Save