feat(admonitions): start implementing autoformat

This commit is contained in:
Elian Doran 2025-03-14 11:25:38 +02:00
parent 878743500f
commit 83a4804c2c
3 changed files with 23 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import { Plugin } from 'ckeditor5/src/core.js';
import AdmonitionEditing from './admonitionediting.js'; import AdmonitionEditing from './admonitionediting.js';
import AdmonitionUI from './admonitionui.js'; import AdmonitionUI from './admonitionui.js';
import AdmonitionAutoformat from './admonitionautoformat.js';
/** /**
* The block quote plugin. * The block quote plugin.
@ -27,7 +28,7 @@ export default class Admonition extends Plugin {
* @inheritDoc * @inheritDoc
*/ */
public static get requires() { public static get requires() {
return [ AdmonitionEditing, AdmonitionUI ] as const; return [ AdmonitionEditing, AdmonitionUI, AdmonitionAutoformat ] as const;
} }
/** /**

View File

@ -0,0 +1,20 @@
import Plugin from "@ckeditor/ckeditor5-core/src/plugin";
import Autoformat from "@ckeditor/ckeditor5-autoformat/src/autoformat";
import blockAutoformatEditing from "@ckeditor/ckeditor5-autoformat/src/blockautoformatediting";
export default class AdmonitionAutoformat extends Plugin {
static get requires() {
return [ Autoformat ];
}
afterInit() {
if (!this.editor.commands.get("admonition")) {
return;
}
const instance = (this as any);
blockAutoformatEditing(this.editor, instance, /^\!\!\[*\! (.+) $/, (match) => {
console.log("Got match ", match);
});
}
}

View File

@ -10,6 +10,7 @@
export { default as Admonition } from './admonition.js'; export { default as Admonition } from './admonition.js';
export { default as AdmonitionEditing } from './admonitionediting.js'; export { default as AdmonitionEditing } from './admonitionediting.js';
export { default as AdmonitionUI } from './admonitionui.js'; export { default as AdmonitionUI } from './admonitionui.js';
export { default as AdmonitionAutoformat } from './admonitionautoformat.js';
export type { default as AdmonitionCommand } from './admonitioncommand.js'; export type { default as AdmonitionCommand } from './admonitioncommand.js';
import './augmentation.js'; import './augmentation.js';