Olddevs UI3.38.0
Рецепты

Свой Блок-контейнер: врезка

Блок, внутри которого живут другие Блоки, — с пунктом в Меню вставки и Действиями в меню Ручки Блока.

Врезка — заметка или предупреждение посреди статьи. Внутри неё обычные Блоки: абзацы, списки, код, у каждого своя Ручка Блока «⋮». Рецепт показывает две UI-записи, которые не требуют рисовать меню: пункт вставки и Действия над Блоком.

Наберите «/» и найдите «Врезка» (или Ctrl+Alt+N). Откройте «⋮» у врезки: там «Сделать предупреждением» и «Убрать врезку».

Как устроено

  • Контейнер — Признак, а не код. container: true в правилах Схемы даёт Блокам внутри свою Ручку, как у Обёртки кита. В Части для движка — только content: "block+".
  • Тон — атрибут со списком. acme_tone: { kind: "list", values: ["info", "warning"] }: значение вне списка не пройдёт ни из value, ни из вставки, ни на сервере.
  • Пункт вставки встаёт в «/», в «+» Панели и в «Добавить ›» Ручки. В section: "insert" кит сам готовит пустой абзац под каретку, run только ставит Блок — одна правка, одна отмена.
  • Действия над Блоком стоят секцией перед «Удалить». pos — позиция Блока Ручки: это может быть сама врезка или абзац прямо в ней, поэтому notePos находит врезку. isVisible прячет Действие, которое ничего не изменит.

В пресете basic нет Меню вставки. Без "insertMenu" в tools пункту негде стоять, и в «/» его не будет.

Вид

Вид Блока — обычный CSS по data-block на токенах кита. Тот же CSS работает в Редакторе, в RichTextView и на листе surface="paper": токены переключает тема.

[data-block="acme_note"][data-acme_tone="warning"] {
  border-color: var(--warning);
  background: var(--warning-soft);
}

На этой странице