@ablogcms/plugins
v3.2.28-beta.0
Published
管理画面 JS 拡張基盤のプラグイン登録レジストリ
Keywords
Readme
@ablogcms/plugins
管理画面 JS 拡張基盤のプラグイン登録レジストリ(ACMS.plugins)を提供するパッケージ。
イベント購読・機能登録(unitEditor/dataview)・UI 差し込み(Slot/Fill)・設定参照を
1 つの setup(ctx) に束ねる。
拡張ポイントの一覧(イベント・Slot・レジストリの対応表)は HOOKS.md を参照。
使い方
import { register } from '@ablogcms/plugins';
register('acms-plugin-sample', {
version: '1.0.0',
setup(ctx) {
// ゲート: アップロード前の確認
ctx.events.on('media.upload.before', async (event) => {
const ok = await ACMS.Library.dialog.confirm('確認…');
return ok ? event : false;
});
// 通知: アップロード完了後の処理
ctx.events.on('media.upload.success', (event) => notifyExternal(event.items));
// レジストリ: カスタムユニットタイプ
ctx.unitEditor.registerUnitDefinition('myUnit', myUnitDef);
// UI: ユニットツールバーへのボタン追加
ctx.ui.fill('unit-editor.unit-toolbar', MyToolbarButton);
},
});register(name, definition): プラグインを登録する。同名の重複登録は throw する。unregister(name):setup(ctx)内で行ったイベント購読・レジストリ登録・Fill をすべて自動解除する。get(name)/getAll(): 登録済みプラグインを取得する(デバッグ用)。setup()が同期的に throw した場合、途中まで行われた登録は自動でロールバックされる。
