diff --git a/packages/ckeditor5-admonition/src/admonitioncommand.ts b/packages/ckeditor5-admonition/src/admonitioncommand.ts index 3ff85e0dc..ad6f262bc 100644 --- a/packages/ckeditor5-admonition/src/admonitioncommand.ts +++ b/packages/ckeditor5-admonition/src/admonitioncommand.ts @@ -162,6 +162,10 @@ export default class AdmonitionCommand extends Command { quote = writer.createElement( 'aside', { type }); writer.wrap( groupRange, quote ); + } else if (quote.is("element")) { + this.editor.model.change((writer) => { + writer.setAttribute("type", type, quote as Element); + }); } quotesToMerge.push( quote ); diff --git a/packages/ckeditor5-admonition/src/admonitionediting.ts b/packages/ckeditor5-admonition/src/admonitionediting.ts index ce6ac6d8b..d57d05bfc 100644 --- a/packages/ckeditor5-admonition/src/admonitionediting.ts +++ b/packages/ckeditor5-admonition/src/admonitionediting.ts @@ -70,16 +70,24 @@ export default class AdmonitionEditing extends Plugin { } }); - editor.conversion.for("downcast").elementToElement( { - model: 'aside', - view: (modelElement, { writer }) => { - return writer.createContainerElement( - "aside", { - class: [ "admonition", modelElement.getAttribute("type") ].join(" ") - } - ) - } - }); + editor.conversion.for("downcast") + .elementToElement( { + model: 'aside', + view: (modelElement, { writer }) => { + return writer.createContainerElement( + "aside", { + class: [ "admonition", modelElement.getAttribute("type") ].join(" ") + } + ) + } + }) + .attributeToAttribute({ + model: "type", + view: (value) => ({ + key: "class", + value: [ "admonition", value as string ] + }) + }); // Postfixer which cleans incorrect model states connected with block quotes. editor.model.document.registerPostFixer( writer => {