From 80de28c617deb35d1a6f905310af1583190d3db1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 14 Mar 2025 23:29:41 +0200 Subject: [PATCH] fix(admonitions): breaking math plugin --- .../ckeditor5-admonition/src/admonitioncommand.ts | 5 +++-- .../ckeditor5-admonition/src/admonitionediting.ts | 12 ++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/ckeditor5-admonition/src/admonitioncommand.ts b/packages/ckeditor5-admonition/src/admonitioncommand.ts index 2b97af491..234e41a93 100644 --- a/packages/ckeditor5-admonition/src/admonitioncommand.ts +++ b/packages/ckeditor5-admonition/src/admonitioncommand.ts @@ -18,6 +18,7 @@ import type { DocumentFragment, Element, Position, Range, Schema, Writer } from */ export const ADMONITION_TYPES = [ "note", "tip", "important", "caution", "warning" ] as const; +export const ADMONITION_TYPE_ATTRIBUTE = "admonitionType"; export const DEFAULT_ADMONITION_TYPE = ADMONITION_TYPES[0]; export type AdmonitionType = typeof ADMONITION_TYPES[number]; @@ -119,7 +120,7 @@ export default class AdmonitionCommand extends Command { // In the current implementation, the admonition must be an immediate parent of a block element. const firstQuote = findQuote( firstBlock ); if (firstQuote?.is("element")) { - return firstQuote.getAttribute("type") as AdmonitionType; + return firstQuote.getAttribute(ADMONITION_TYPE_ATTRIBUTE) as AdmonitionType; } return false; @@ -203,7 +204,7 @@ export default class AdmonitionCommand extends Command { writer.wrap( groupRange, quote ); } else if (quote.is("element")) { this.editor.model.change((writer) => { - writer.setAttribute("type", type, quote as Element); + writer.setAttribute(ADMONITION_TYPE_ATTRIBUTE, type, quote as Element); }); } diff --git a/packages/ckeditor5-admonition/src/admonitionediting.ts b/packages/ckeditor5-admonition/src/admonitionediting.ts index 3f644b56a..6af25b965 100644 --- a/packages/ckeditor5-admonition/src/admonitionediting.ts +++ b/packages/ckeditor5-admonition/src/admonitionediting.ts @@ -11,7 +11,7 @@ import { Plugin } from 'ckeditor5/src/core.js'; import { Enter, type ViewDocumentEnterEvent } from 'ckeditor5/src/enter.js'; import { Delete, type ViewDocumentDeleteEvent } from 'ckeditor5/src/typing.js'; -import AdmonitionCommand, { AdmonitionType, ADMONITION_TYPES, DEFAULT_ADMONITION_TYPE } from './admonitioncommand.js'; +import AdmonitionCommand, { AdmonitionType, ADMONITION_TYPES, DEFAULT_ADMONITION_TYPE, ADMONITION_TYPE_ATTRIBUTE } from './admonitioncommand.js'; /** * The block quote editing. @@ -46,7 +46,7 @@ export default class AdmonitionEditing extends Plugin { schema.register( 'aside', { inheritAllFrom: '$container', - allowAttributes: "type" + allowAttributes: ADMONITION_TYPE_ATTRIBUTE } ); editor.conversion.for("upcast").elementToElement({ @@ -62,9 +62,9 @@ export default class AdmonitionEditing extends Plugin { } } - return writer.createElement("aside", { - type - }); + const attributes: Record = {}; + attributes[ADMONITION_TYPE_ATTRIBUTE] = type; + return writer.createElement("aside", attributes); } }); @@ -74,7 +74,7 @@ export default class AdmonitionEditing extends Plugin { view: "aside" }) .attributeToAttribute({ - model: "type", + model: ADMONITION_TYPE_ATTRIBUTE, view: (value) => ({ key: "class", value: [ "admonition", value as string ]