KDA Custom Editor Buttons

Описание

KDA Custom Editor Buttons позволяет определить свои элементы классического редактора:

  • Обертывайте выделенное в любой тег / CSS-класс
  • Вставляйте HTML-шаблоны (например, списки определений)
  • Добавляйте класс к текущему блоку (опционально с тегом)
  • Открывайте диалог сниппета кода (язык, номера строк, редактирование на месте)
  • Показывайте каждый элемент на панели, в форматах или и там, и там
  • Ограничивайте кнопки выбранными типами записей (включая пользовательские, например articles)

За фронтенд CSS отвечает ваша тема, если вы хотите свой вид; плагин включает нейтральное окно сниппета, кнопку «Копировать», номера строк и цвета токенов. Prism.js и Highlight.js включены в плагин, ничего не грузится с CDN. Админка на английском и переводится через translate.wordpress.org.

Установка

  1. Загрузите папку плагина в /wp-content/plugins/kda-custom-editor-buttons
  2. Активируйте плагин через меню «Плагины»
  3. Перейдите в Настройки KDA Editor Buttons
  4. При редактировании контента используйте Classic Editor

Часто задаваемые вопросы

Работает ли с блочным редактором (Gutenberg)?

Version 1 рассчитана на Classic Editor / TinyMCE. Если по умолчанию используется блочный редактор, показывается мягкое предупреждение.

Будут ли применяться стили моей темы?

Да, на фронтенде, если тема определяет классы, которые вы вставляете. В плагин также встроены окно сниппета и цвета токенов (светлая/тёмная). Заменить эти стили можно через фильтры kda_ceb_snippet_css и kda_ceb_highlight_css.

Как стилизовать превью в редакторе?

Используйте стандартный WordPress-фильтр mce_css в теме или фильтры плагина kda_ceb_snippet_css / kda_ceb_highlight_css. Плагин не хранит пользовательский CSS.

Могу ли я использовать свои файлы Prism.js / Highlight.js?

Yes, with the PHP filter kda_ceb_asset_base in your theme (it works for built-in, Prism.js and Highlight.js). The earlier kda_ceb_prism_base and kda_ceb_highlightjs_base filters still work and run on top of the universal one. See the Documentation tab in the settings screen or docs/adding-a-button.en.md / .ru.md.

Есть ли русский перевод?

English is the source language. Translations are managed on translate.wordpress.org. The full user guide is in docs/adding-a-button.en.md and docs/adding-a-button.ru.md, and is also rendered inside the plugin under Settings KDA Editor Buttons Documentation in the admin language.

Can I copy the plugin’s JS/CSS into my theme?

Yes. Open Settings KDA Editor Buttons Customization, set a folder path (must start and end with /, relative to the site root). Use the Copy select to pick Built-in, Prism.js, Highlight.js, or All libraries, then add one of these snippets to wp-config.php:

`php

// short form: path comes from the setting above
define( ‘KDA_CEB_CUSTOM_ASSETS’, true );

// detailed form: path is also defined in wp-config (the form’s path
// field becomes read-only when KDA_CEB_CUSTOM_PATH is set)
define( ‘KDA_CEB_CUSTOM_ASSETS’, true );
define( ‘KDA_CEB_CUSTOM_PATH’, ‘/wp-content/themes/your-child/kda-ceb/’ );
`

The tab shows a green «Custom assets: active» badge when the constant is on. The plugin creates the destination folder if it doesn’t exist, and surfaces a clear error when the web server can’t write there. The tab reminds you to re-copy after a plugin update.

Can I lock the highlight engine and theme from wp-config?

Yes. Define KDA_CEB_HIGHLIGHT_ENGINE (builtin | prism | highlightjs) and KDA_CEB_HIGHLIGHT_THEME (light | dark) in wp-config.php. When set, they override the settings screen and the corresponding fields become read-only. Use this together with KDA_CEB_CUSTOM_ASSETS to pin the entire asset configuration in code:

`php

define( ‘KDA_CEB_CUSTOM_ASSETS’, true );
define( ‘KDA_CEB_CUSTOM_PATH’, ‘/wp-content/themes/your-child/kda-ceb/’ );
define( ‘KDA_CEB_HIGHLIGHT_ENGINE’, ‘prism’ );
define( ‘KDA_CEB_HIGHLIGHT_THEME’, ‘dark’ );
`

Отзывы

Нет отзывов об этом плагине.

Участники и разработчики

«KDA Custom Editor Buttons» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«KDA Custom Editor Buttons» переведён на 1 язык. Благодарим переводчиков за их работу.

Перевести «KDA Custom Editor Buttons» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.6.3

  • Bug fix: Show language checkbox now correctly toggles disabled state when changing the language in the code dialog (was stuck disabled after the first selection)

1.6.2

  • Enhancement: code selector is now configurable in Main tab settings
  • Enhancement: when using custom folder, config is injected directly into frontend.js (no inline script needed)
  • Enhancement: KDA_CEB_SCRIPT_VERSION can be set to » or false to omit version parameter entirely
  • Bug fix: Show language checkbox is now disabled for auto-detect and plain text languages
  • Bug fix: fixed duplicate line numbers when re-editing a code block
  • Bug fix: replaced entire code block wrapper on edit (no stray paragraph added)
  • Bug fix: padding for code blocks without line numbers

1.6.1

  • Bug fix: prevented duplicate line numbers when re-editing a code block
  • Bug fix: replaced entire code block wrapper on edit (no stray paragraph added)
  • Enhancement: code block line numbers use new Variant 3 structure (kda-ceb-nums + kda-ceb-code)
  • Enhancement: added confirmation dialog before deleting a code block

1.5.9

  • Customization: new KDA_CEB_LIBRARY_MODE constant (bundled | individual) forces library loading mode. When set, the corresponding UI option becomes read-only and shows a lock message.
  • Frontend: fixed 404 error on frontend-config.js when KDA_CEB_LIBRARY_MODE is set to bundled — config is now embedded directly into library .min.js files instead of loading separately.
  • Customization: path-aware copy tracking. The plugin now remembers which folder each library was copied to, so the «Custom folder is empty» notice no longer fires when copies exist in a different (older) folder. If copies are found elsewhere, the notice lists the previous paths and explains how to recover.
  • New wp-config constants KDA_CEB_HIGHLIGHT_ENGINE (builtin | prism | highlightjs) and KDA_CEB_HIGHLIGHT_THEME (light | dark) override the admin settings. When defined, the corresponding fields in the settings screen become read-only.
  • Public-label example changed to English ('Copy' / 'Copied!') in the admin UI and both user guides.

1.5.8

  • Customization: the path can now be set in wp-config.php via the new KDA_CEB_CUSTOM_PATH constant. When it’s defined, the form’s path field is read-only and the wp-config snippet in the tab shows the value. Two wp-config examples are shown side by side (short form and detailed form).
  • «Copy» action: dropped the separate «Copy everything» button; the library select now includes an «All libraries» option.
  • Copy action: destination folder is created if missing, and a clear error is shown when it’s not writable (instead of a generic failure).

1.5.7

  • Settings screen split into four tabs: Main, Customization, Import / Export, Documentation.
  • Customization tab: custom-folder loading is enabled by the KDA_CEB_CUSTOM_ASSETS constant in wp-config.php; the tab shows a green «active» / gray «inactive» badge. Path is any subfolder under the site root, must start and end with a forward slash.
  • Documentation tab: removed the locale-switch hint and added a clickable table of contents with smooth scroll.
  • New universal filter kda_ceb_asset_base for built-in, Prism.js and Highlight.js; the previous per-library filters still work and run on top of it.
  • docs/ is shipped to the WordPress.org plugin so the Documentation tab works there too.

1.5.6

  • Internal: tabs and copy flow scaffolding (replaced by 1.5.7).
  • Убрано поле «CSS превью редактора» — плагин больше не хранит и не отдаёт произвольный CSS (используйте mce_css или фильтры стилей плагина)
  • Убраны настройки папок Prism.js / Highlight.js; библиотеки загружаются из папки плагина, фильтры kda_ceb_prism_base / kda_ceb_highlightjs_base оставлены для разработчиков тем
  • Удаление значений этих полей, сохранённых в предыдущих версиях, при обновлении
  • Обновление встроенного Highlight.js до 11.12.0 и Prism.js до 1.30.0
  • Переводы переехали на translate.wordpress.org (встроенные .po/.mo-файлы удалены)

1.5.5

  • Bug fix: copy files to custom folder with correct paths (fixed duplicate folder nesting)
  • Bug fix: missing frontend-config.js in copied files

1.5.4

  • Экранирование HTML/script-тегов в сниппетах на выходе, чтобы смесь PHP+HTML не ломала страницу
  • Очистка остаточных артефактов подсветки (tok-kw) перед подсветкой

1.5.3

  • Автоопределение языка в диалоге кода (включая смесь PHP/HTML); метка языка для auto никогда не показывается

1.5.2

  • Всегда удалять опции плагина при деактивации; убран чекбокс «Удалить данные» из настроек

1.5.1

  • Загрузка Prism.js / Highlight.js из папки темы или URL (поля настроек + фильтры)
  • В настройках есть ссылки на страницы загрузки и документацию

1.5.0

  • Настройка движка подсветки на фронтенде: встроенный, Prism.js или Highlight.js (в комплекте, без CDN)
  • В диалоге кода для форматирования используется js-beautify для JS/JSON/CSS/HTML/XML; встроенний фоллбэк для PHP/SQL/Bash

1.4.6

  • Надёжное форматирование XML/HTML по OK (своим токенизатор; без внешних библиотек)

1.4.5

  • Диалог кода всегда форматирует по OK (чекбокс удалён: TinyMCE его не отправлял)

1.4.4

  • Убрано урезанную подсказку выхода из диалога кода (она остаётся только в визуальном редакторе)

1.4.3

  • Полный русский перевод (админка, диалоги редактора, подсказка выхода, Копировать)
  • Полные руководства пользователя (EN/RU)

1.4.2

  • Видимая подсказка о выходе в визуальном редакторе и в диалоге кода

1.4.1

  • Надёжные клавиши выхода из блока (Ctrl+Enter, Escape, пустая последняя строка); удаление остаточных BR

1.4.0

  • Нейтральное окно сниппета + kda_ceb_snippet_css
  • Расширяется только <pre> блоки плагина
  • Quicktags (Текстовый режим), превью токенов в редакторе, тёмная палитра, языки в настройках

1.3.2

  • Снятие остаточного оформления кода из темы, чтобы обновление плагина могло переоформить сниппеты

1.3.1

  • Оформление сниппета: нет пустой панели языка; кнопка Копировать перекрывает блок, если не включён «Показывать язык»

1.3.0

  • Подсветка, кнопка копирования и номера строк на фронтенде идут в плагине (не зависят от темы)
  • Фильтр kda_ceb_highlight_css для использования стилей темы для цветов токенов
  • Выйти из блока кода в редакторе: пустая последняя строка + Enter или Ctrl+Enter

1.2.2

  • Диалог кода: «Показывать язык» необязательно и выключено по умолчанию
  • Номера строк совмещены с каждой строкой кода (без рассогласования наложений)

1.2.1

  • Диалог кода: опция «Форматировать код» (включена по умолчанию) удаляет лишние пробелы и отступы

1.2.0

  • Новое действие: диалог сниппета кода (язык, номера строк, редактирование на месте)
  • Демо: CODE обернёт короткую строку pre.dk-code; BLOCK откроет большое окно сниппета

1.1.0

  • Выбор Dashicons, превью панели в реальном времени, поля по действию
  • Переключение wrap / add class (повторный клик снимает форматирование)
  • Строки панели 1–3 и группированные кнопки меню
  • Необязательное удаление данных при деактивации
  • Документация: добавление кнопки (EN/RU)

1.0.0

  • Первый выпуск: настраиваемые кнопки, форматы, белый список kses, импорт, экспорт/копирование