Javascript 如何使用定义为RegExp或function的视图定义CKEditor5双向转换器?

Javascript 如何使用定义为RegExp或function的视图定义CKEditor5双向转换器?,javascript,ckeditor,rich-text-editor,ckeditor5,Javascript,Ckeditor,Rich Text Editor,Ckeditor5,我想创建一个插件,允许对许多值,这被认为是范围,而不是一个列表。 所以我想,我可以使用,但它似乎只接受特定的值,这些值保存在对象中,这在我的情况下是不可能的。我想知道如何使用所有可能的值(在我的例子中是颜色)定义视图元素。我想用某种RegExp或函数来匹配它们。如何实现这一点?实际上,似乎不可能使用随CKEditor5提供的转换器。此转换器需要为转换提供有限的预定义选项,这些选项将用于上行和下行 从插件的角度来看,我想写(彩色字体),这是不够的。我不想限制模型只接受少数颜色,并防止使用不同的颜色

我想创建一个插件,允许对许多值,这被认为是范围,而不是一个列表。
所以我想,我可以使用,但它似乎只接受特定的值,这些值保存在对象中,这在我的情况下是不可能的。我想知道如何使用所有可能的值(在我的例子中是颜色)定义视图元素。我想用某种RegExp或函数来匹配它们。如何实现这一点?

实际上,似乎不可能使用随CKEditor5提供的转换器。此转换器需要为转换提供有限的预定义选项,这些选项将用于
上行
下行

从插件的角度来看,我想写(彩色字体),这是不够的。我不想限制模型只接受少数颜色,并防止使用不同的颜色

为了更好地控制
upcast
downcast
,需要编写自己的函数来覆盖这些情况。并且可以接受任何插入到编辑器中的颜色。为此,需要使用方法。下面你们可以找到一些简单的解决方案,它将接受十六进制定义的颜色,并将其向上投射到模型中。和另一个功能,它将向下看

上抛: 沮丧:
editor.conversion.for( 'upcast' ).elementToAttribute( {
    view: {
        name: 'span',
        styles: {
            'color': /#\d+/
        }
    },
    model: {
        key: 'color',
        value: viewElement => {
            const color = viewElement.getStyle( 'color' );
            return color.replace( '#', '' );
        }
    }
} );
editor.conversion.for( 'downcast' ).attributeToElement( {
    model: 'color',
    view: ( modelAttributeValue, viewWriter ) => viewWriter.createAttributeElement( 'span', {
        style: 'color:#' + modelAttributeValue
    } );
} );