如何强制 CKEditor 使用表格标题?

问题描述 投票:0回答:1

我想在输出 GitHub 风格的 markdown 时使用 CKEditor 中的表格。要将表格输出为纯 Markdown,必须至少有一个标题行。添加新表时,通过此设置很容易实现:

table: {
    defaultHeadings: {
        rows: 1,
        columns: 0
    }
}

问题出在粘贴现有表格(例如从 Word 或其他地方粘贴)时。如果没有标题行,则不会添加它。我正在尝试为此制作一个自定义插件,但作为初学者,我没有成功这样做。我应该如何编写插件代码才能使其工作?

plugins ckeditor ckeditor5
1个回答
0
投票

我最终解决了这个问题,不是通过创建插件,而是在提交表单之前修改编辑器内容:

$('form').submit(function(event) {
    event.preventDefault();

    let content = watchdog.editor.getData().replace(/<tbody>(.+?)<\/tbody>/g, "$1");
    let headers = content.match(/(?<=<table><tr>)(<td>(.+?)<\/td>)+/g);
    $.each(headers, function(index, item) {
        content = content.replace(/(?<=<table><tr>)(<td>(.+?)<\/td>)+/, item.replace(/<td>(.+?)<\/td>/g, "<th>$1</th>"));
    });
    watchdog.editor.setData(content);

    $(this).unbind('submit').submit();
});

表格修改并更新编辑器内容后,成功转换为GFM,表单继续提交。

© www.soinside.com 2019 - 2024. All rights reserved.