@besnovatyj/snippets-core
v1.0.0
Published
Framework-agnostic пикер сниппетов (ядро). Используется самостоятельно или как зависимость адаптеров редакторов (Jodit, CKEditor).
Downloads
25
Readme
@besnovatyj/snippets-core
Framework-agnostic пикер сниппетов (ядро). Монтируется на любой странице, вставляет
выбранный HTML через коллбэк. Используется адаптерами редакторов (Jodit, CKEditor) — сам о
редакторе ничего не знает. Аналог @besnovatyj/filemanager-core, но радикально проще:
сниппеты read-only, поэтому только загрузка дерева + отображение.
Публичный API
import {createSnippetPicker} from '@besnovatyj/snippets-core';
const picker = createSnippetPicker({
snippetsUrl: '/Snippets/backend/api/tree', // GET → { groups: [...] }
headers: {'X-Requested-With': 'XMLHttpRequest'},
title: 'Сниппеты',
onSelect: (html) => editor.insertHTML(html), // вставка в контент движка
onClose: () => { /* освободить ресурсы интеграции */ },
});
await picker.open();- UI: категории + поиск (по заголовку и ключевым словам) + превью, в изолированном Shadow DOM.
- Формат ответа бэкенда —
SnippetTreeDto(см.src/api/dto.ts), зеркалит PHP-эндпоинтApiController::actionTreeмодуляbesnovatyj/yii2-cms-snippets.
Сборка
npm install
npm run build # → dist/standalone.js (CSS вшит в бандл)
npm run types # → dist/standalone.d.tsDev-потребление без публикации в npm: пакет-адаптер (напр. yii2-cms-jodit) алиасит
@besnovatyj/snippets-core на dist/standalone.js этого каталога (флаг SNIPPETS_CORE_LOCAL),
как это сделано для filemanager-core (FM_CORE_LOCAL).
