Плагины расширяют Meridian, не трогая ядро. Кинь папку в
.meridian/plugins/<твой-плагин>/, и Meridian подхватит её — с
hot-reload. Чистый ESM, без шага сборки.
Минимальный плагин
Плагины регистрируют команды, реагируют на события vault и рисуют боковые панели. Самый маленький полезный пример — счётчик слов:
// .meridian/plugins/word-counter/main.js
export default class WordCounter {
onLoad(api) {
api.registerCommand({
id: 'word-counter:show',
name: 'Word Counter: Show stats',
run: () => {
const text = api.editor.getActiveText() ?? '';
const words = text.trim().split(/\s+/).filter(Boolean).length;
api.ui.toast(`${words} words`);
},
});
}
}
Сохрани файл. Команда сразу появится в палитре (⌘K) — без
рестарта, без пересборки.
Структура папки
Плагин — это папка с одним обязательным файлом:
.meridian/plugins/word-counter/
├── main.js обязательно
├── plugin.json опционально — метаданные в Settings
└── README.md опционально — показывается в Settings → Plugins
Что могут плагины
Объект api, который передаётся в onLoad, позволяет:
- Регистрировать команды, появляющиеся в палитре
- Реагировать на события vault — создание, изменение, удаление заметки
- Рисовать боковые панели в правом сайдбаре
- Показывать toast’ы и notice’ы в UI
Полные определения типов api см. в исходниках в репозитории.
Hot reload
Сохрани main.js — Meridian пересоздаст плагин в свежем контексте.
Сначала отрабатывает onUnload предыдущей версии. Рестарт не нужен.
Дистрибуция
Магазина плагинов нет. Опубликуй папку в GitHub-репозиторий или
поделись zip-архивом — пользователь кладёт его в свою
.meridian/plugins/. Это весь pipeline.