0

In my webpage we'll only allow users to use H3 and H4, but it's confusing to see these as "Title 3" and "Title 4". I wanted to rename these as "Title" and "Subtitle", but setting format_h3.name doesn't seem to affect that.

I can't write custom JS to configure the editor as I'm using a Django Plugin, that actually converts a python dictionary into the final JSON config used.

The relevant part of what I tried is as follows:

CKEDITOR_CONFIGS = {
    'default': {
        'allowedContent': 'h3 h4 p b i u a[*]',
        'format_p': {'name': 'Standard text', 'element': 'p'},
        'format_h3': {'name': 'Title', 'element': 'h3'},
        'format_h4': {'name': 'Subtitle', 'element': 'h4'},
        'toolbar': [
            {'name': 'styles', 'items': ['Format']},
            {'name': 'basicstyles', 'items': ['Bold', 'Italic', 'Underline', '-', 'RemoveFormat']},
            {'name': 'links', 'items': ['Link', 'Unlink']},
        ]
    }
}
4

2 回答 2

1

不幸的是,无法通过配置更改 CKEditor 中的格式名称。我已经为此填写了功能请求

但是,如果您能够修改编辑器的文件,您总是可以直接更改语言条目,位于plugins/format/lang/<language>.js.

第二种解决方法是修改format插件源,尤其是init功能

init: function() {
    this.startGroup( lang.panelTitle );

    for ( var tag in styles ) {
        var label = config[ 'format_' + tag ] && config[ 'format_' + tag ].name || lang[ 'tag_' + tag ];

        // Add the tag entry to the panel list.
        this.add( tag, styles[ tag ].buildPreview( label ), label );
    }
}
于 2017-11-30T12:53:38.600 回答
0

这仍然没有在 CKEditor 4 中正式解决,但我确实想出了这个大锤方法......

CKEDITOR.lang.load('en', 'en', function(lc, data) {
    data.format.tag_p = 'Standard text';
    data.format.tag_h3 = 'Title';
    data.format.tag_h4 = 'Subtitle';
});

根据手册,第一个“en”是您要加载的语言代码,第二个是备用语言。您需要在回调中覆盖标签,否则您将收到有关标签不存在的错误。

此示例将更改您运行此页面上每个 CKEditor 实例的文本。它还将为在所述实例中使用这些翻译的每个插件更改它。

我还没有找到按实例执行此操作的方法。

于 2022-01-18T03:39:57.027 回答