fix(admonitions): breaking math plugin

This commit is contained in:
Elian Doran 2025-03-14 23:29:41 +02:00
parent 2c6df42d51
commit 80de28c617
2 changed files with 9 additions and 8 deletions

View File

@ -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);
});
}

View File

@ -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<string, unknown> = {};
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 ]