Инлайн-инструмент render() → MenuConfig
render() { /* returns an HTMLElement button */ }render() { return { icon, name, onActivate, isActive }; }Все переименования кодмода, карта CSS и совместимость по каждому тулзу.
Сначала предпросмотр, затем применение.
npx -p @bloklabs/core migrate-from-editorjs ./src --dry-runnpx -p @bloklabs/core migrate-from-editorjs ./srcКаждое переименование, которое выполняет codemod, — до и после.
import EditorJS from '@editorjs/editorjs';import { Blok } from '@bloklabs/core';import Header from '@editorjs/header';import { Header } from '@bloklabs/core/tools';import type { EditorConfig } from '@editorjs/editorjs';import type { BlokConfig } from '@bloklabs/core';.ce-block[data-blok-element]<div id="editorjs"></div><div id="blok"></div>data-iddata-blok-idBlok заменяет классы Editor.js на data-атрибуты. Перенесите свои стили по этой таблице.
.codex-editor[data-blok-editor].ce-block[data-blok-element].ce-block--selected[data-blok-selected="true"].ce-toolbar[data-blok-toolbar].ce-inline-toolbar[data-blok-testid="inline-toolbar"].ce-toolbar__settings-btn[data-blok-settings-toggler].ce-popover[data-blok-popover]data-placeholderdata-blok-placeholderБлочные инструменты переносятся без изменений. Инлайн-инструменты возвращают MenuConfig — или оберните старый класс и обойдитесь без переписывания.
render() { /* returns an HTMLElement button */ }render() { return { icon, name, onActivate, isActive }; }Оберните класс существующего инлайн-инструмента EditorJS вместо переработки. Обёртка отображает старый API на MenuConfig и сохраняет title, shortcut, sanitize и иконку инструмента. Без неё Blok пропускает устаревший render(), возвращающий HTMLElement, и инструмент молча исчезает.
marker: wrapLegacyInlineTool(MarkerTool)Blok читает те же ключи — render, save, validate, renderSettings, merge, onPaste и статические toolbox/conversionConfig. При желании добавьте setReadOnly(state) для более дешёвого переключения режима только для чтения.
Когда миграция отбрасывает поле без эквивалента в Blok, она выводит console.warn с именем блока и поля — потеря никогда не проходит молча. Если какое-то из этих полей вам нужно, сверьтесь с таблицей до миграции.
quotealignment (caption автоматически переносится в следующий параграф)imagewithBackgroundlinkToolmeta.site_namelist itemmeta (отбрасывается молча — без console.warn)Совместимость зависит от инструментов, которые использует ваш контент, а не от версии Editor.js.
Эти инструменты загружают сохранённые данные как есть.
paragraphheadercodeembedmarkerinlineCodeaudioКонвертируются на лету, кодмодом или обоими способами.
listchecklisttoggleListcalloutimagesimple-imagelinkTooldelimiterquotetablerawwarningattachesУ Blok нет эквивалента — зарегистрируйте свой инструмент или оставьте инструмент Editor.js.
personalitybuttonНеизвестные типы блоков отображаются как заглушки с предупреждением "Tool «name» is not found" в консоли. Их данные сохраняются — зарегистрируйте инструмент позже, и блок вернётся.