不同插件中多个样式属性的转换不起作用?

Conversion for multiple style attributes in different plugins are not working?

我为 ckeditor 开发了一些插件,它们通过添加带有样式属性的 span 标签来工作。

当我在编辑器中进行更改时,它们工作正常,但是,当我使用 <p><span style="line-height:3;letter-spacing:18px;text-transform:uppercase;font-family:Ubuntu, Arial, sans-serif;font-size:12px;">safasfasfas</span></p> 初始化编辑器时,只有 text-transformfont-familyfont-size 工作正常,但休息共 2 个 plugins/style 个属性无效。

有什么想法,我做错了什么吗?

编辑: 我有如下转换

editor.conversion.for( 'downcast' )
            .add( downcastAttributeToElement( {
                model: {
                    key: 'letterSpacing',
                    name: '$text'
                },
                view: ( modelAttributeValue, viewWriter ) => {
                    return viewWriter.createAttributeElement( 'span', { style: 'letter-spacing:' + modelAttributeValue + 'px' } );
                }
            } ) );

        editor.conversion.for( 'upcast' )
            .add( upcastElementToAttribute( {
                view: {
                    name: 'span'
                },
                model: {
                    key: 'letterSpacing',
                    value: viewElement => {
                        const letterSpacing = viewElement.getStyle( 'letter-spacing' );

                        if (letterSpacing === undefined) {
                            return null;
                        }

                        return letterSpacing.substr( 0, letterSpacing.length - 2 );
                    }
                }
            } ) );

我可以通过在转换中添加以下代码来解决这个问题。

styles: {
   'letter-spacing': /[\S]+/
}

现在转换变成像

editor.conversion.for( 'downcast' )
            .add( downcastAttributeToElement( {
                model: {
                    key: 'letterSpacing',
                    name: '$text'
                },
                view: ( modelAttributeValue, viewWriter ) => {
                    return viewWriter.createAttributeElement( 'span', { style: 'letter-spacing:' + modelAttributeValue + 'px' } );
                }
            } ) );

        editor.conversion.for( 'upcast' )
            .add( upcastElementToAttribute( {
                view: {
                    name: 'span',
                    styles: {
                        'letter-spacing': /[\S]+/
                    }
                },
                model: {
                    key: 'letterSpacing',
                    value: viewElement => {
                        const letterSpacing = viewElement.getStyle( 'letter-spacing' );

                        if (letterSpacing === undefined) {
                            return null;
                        }

                        return letterSpacing.substr( 0, letterSpacing.length - 2 );
                    }
                }
            } ) );