Gutenberg 23.7: какво се променя в блоковия редактор
Gutenberg 23.7 е наличен за изтегляне и доизпипва промените от 23.6. Изданието носи видими корекции в блоковия редактор, по-ясен динамичен режим за блока „Галерия“, експериментален контрол за наследяването в Global Styles и много промени под капака.
Можеш да изпробваш Gutenberg 23.7 в WordPress Playground или да го изтеглиш като разширение.
Видими подобрения в редактора
Плаващите блокове вече не застават върху sticky блокове. Празният appender се позиционира правилно и в блокове, които показват собствена лента с инструменти. Блокът Pullquote вече прилага избраната височина на редовете и в редактора, така че изгледът му съвпада с този на сайта.
Възстановени са и фиксираните височини в прегледа за мобилни устройства и таблети.

Динамичният режим на „Галерия“ получава по-ясно действие
Динамичният режим на блока „Галерия“, въведен в Gutenberg 23.6, заменя неясния бутон „Convert to images“. Новият надпис е „Detach“, а преди действието се отваря модален прозорец, който обяснява какво ще стане с изображенията.


Други важни промени
- Наследяване в Global Styles. Експерименталният интерфейс вече работи само след изрично включване от страницата Gutenberg Experiments в настройките (#80815).
- Math блок. Грешките при LaTeX вече не прекъсват писането при всяко натискане на клавиш. Полето използва
ValidatedTextareaControl, показва обратна връзка, когато за първи път загуби фокус, и не изпраща екранно съобщение при всеки символ (#80500). - Групирани опции във формите.
Combobox,SelectиSelectControlполучават подкомпонентиGroupиGroupLabel. Така семействата контроли с падащи списъци изграждат групирани опции по един и същ начин (#80574).
Пълният списък с промени
Подобрения
- Базовите стилове позволяват да смениш цвета на focus ring в
outset-ring__focus(#80587). - Таблото с джаджи измерва мястото на header-а и документира chrome-а му (#80423).
- Widget Primitives се разпространява като script module (#80149).
Компоненти
Combobox,SelectиSelectControlдобавятGroupиGroupLabel(#80574).- DataViews и Font Library задават фиксирана ширина на полетата за търсене, за да избегнат разместване на оформлението (#80315).
- DataViewsPicker позволява избор на диапазон с Shift+Click в изгледите picker-table, picker-grid и picker-activity (#80413).
- Sandbox компонентът приема свойство
sandbox(#69617). - Полето
Inputскрива вградените контроли за увеличение и намаление приtype="number"(#80646). - SearchControl извежда suffix само когато има такъв (#80356).
- Интерфейсът добавя примитива
Autocomplete.Row(#80490).
Библиотека с блокове и редактор на публикации
- Добавено е end-to-end покритие на потребителския сценарий за Table of Contents (#80199).
- Math използва
ValidatedTextareaControlза LaTeX (#80500). - Настройката
responsiveEditingEnabledпозволява на редактора да скрие опцията Responsive styles (#80814). - Font Library уеднаквява размера на шрифта в селектора на страница с този на DataViews (#80617).
- При съвместна работа RTC изключва Quick Edit, докато някой редактира публикацията (#80016).
- Global Styles изважда общото управление на presets от сенките и размерите на шрифта (#79810).
- Инспекторът на блокове отразява наследените стойности от Global Styles (#77894).
Поправки в блоковия редактор и конфигурацията на изгледите
- Плаващите блокове не се застъпват със sticky блокове (#80749).
- Обновено е versioning поведението на API за конфигурации на изгледи (#80319).
- Конфигурациите на изгледи отхвърлят merge операции с несъвпадаща структура, дефинират семантиката на празните масиви и премахват
nullот добавените членове (#80571). createInterpolateElementобработва безопасно затварящи етикети без съответствие (#80618).
Поправки в блоковете
render_block_core_video()отчитаVIDEOетикети, които не са с малки букви (#80537).- Cover и Accordion излизат от режима си с Enter (#77301).
- Динамичната галерия преименува действието на Detach и показва обяснителен модален прозорец (#80727).
- Pullquote прилага персонализирана височина на редовете в редактора (#80586).
- Преобразуването в динамичния режим на Gallery заема само едно ниво в undo историята (#80665).
- List запазва типа на подредения списък при отстъп (#75353).
- Media Editor показва зареждане, докато зареди изрязания файл (#80460).
- Media премахва излишния флаг
__heicUploadSupport(#80452). - Navigation възстановява опцията „Add block“ в интерфейса за връзки вътре в template parts (#78427).
- Playlist скъсява етикета на бутона в лентата за инструменти (#80759).
- Query Loop добавя контекст за превод към етикета на настройката „Offset“ (#80582).
- Social Link премахва излишен затварящ етикет от иконата на Tumblr (#80257).
Поправки в интерфейса на редактора
- Контролата за фоново изображение премахва дублирания focus ring (#80671).
- Block Tools позиционира правилно празния appender в блокове със собствена лента (#80592).
- Forward delete пази правилната позиция на курсора при празни блокове (#77525).
- Тестовете за presets отново импортират правилно след обединяването на помощните функции (#80589).
- Панелите Global Styles не записват и не показват грешен preset, когато два цветови preset-а използват един и същ hex код (#80497).
- Global Styles разрешава стиловете за
linkв контролите на инспектора за блокове, които са връзки (#80607). - RTC не позволява синхронизацията на контролирани блокове да прихваща undo (#80503).
- Rich text премахва
tabIndexот редактируемите елементи, за да поправи избора с Shift+Click (#80651). - Shift+стрелка разширява избора на блокове, когато няма нативен избор (#80687).
- Shift+Click се отчита като жест за множествен избор (#80286).
- Страницата не се скролира при местене на каретката в блок, по-висок от viewport-а (#80708).
- RichText не прилага input transform без
onReplace(#80978). - Paste handler-ът на RichText не се срива при поставяне на файлове (#81010).
Редактор на публикации, компоненти и медия
- Полета със собствена undo логика оставят браузъра да управлява undo (#80768).
- Мобилният и таблетният преглед отново имат фиксирана височина (#80271).
- Meta boxes използват заглавия, съвпадащи със стила на Gutenberg панелите (#80670).
- Notes запомня целевия блок преди запис на бележка на ниво блок, регистрира inline формата при import, връща последователно успешен запис и синхронизира избора в страничната лента с маркера под каретката (#80690, #80576, #80748, #80610).
- Post Lock не показва погрешно „Someone else has taken over“ за потребител без право да поеме заключена публикация (#79997).
- Съобщенията се обвиват в ThemeProvider с радиус на ъглите 0 (#79523).
- iOS премахва workaround за подскачане и добавя typewriter (#74596).
- DataForm не позволява на валидацията на card и details да отнема фокуса; поправен е root override проблемът в
.prettierrc.js; GradientPicker избира по slug; Storybook поправяjsxImportSource; ToolsPanel преминава към SCSS Module (#80685, #80422, #80554, #80426, #80445). - При дълги анимирани GIF файлове качването не блокира: за статични резултати се декодира само първият кадър. Media вече не налага
crossoriginнаIMGетикетите в медийните шаблони, аwp-buildсинхронизира списъка preload полета за page template сcore-data(#80260, #80532, #80648).
Сътрудничество, Global Styles и слой с данни
- Notes отделя kses filter-а за mentions от ядрото в baseline strip теста, а RTC компактира при сериализация (#80656, #80707).
- Media REST API пренася проверката за размер при качване от URL path (#80659).
- Theme JSON изравнява специфичността на класовете за presets на ниво блок чрез
:Where()(#80657). - RTC пази незаписаните редакции на сътрудниците, когато друг потребител запази (#79936).
Достъпност и производителност
- Контролите за подравняване обработват по-добре свойствата си, а Navigation обновява
aria-expandedпри hover върху подменю в overlay (#63696, #77563). - Rich text чете атрибута
contentEditableвownsSelection, за да избегне принудително преизчисляване на оформлението, и има поправка на регресия в производителността при писане (#80549, #80507). - FlatTermSelector не презарежда излишно термини, а Core Data изнася
EntitiesSavedStateизвън редактора (#80623, #80485).
Експерименти, документация и качество на кода
- Dashboard Widgets подсилва sanitization на
hrefза действия и помощни връзки, а Global Styles поставя интерфейса за наследяване зад Gutenberg experiment (#80510, #80409, #80815). - Документацията добавя
nvm useи progressive-discovery указания за агенти; попълва липсваща глобална документация вtable-of-contents/index.phpи docblocks заWP_Icon_Collections_Registry; уточняваgetBlockс контролери на вътрешни блокове, backport процеса, изискването callback-ите на view configuration filters да връщат container-а и iframe насоките за 23.6 (#80755, #80650, #80442, #80172, #80753, #80773, #80593, #80642, #80629). - Обновени са примерите за admin цветови схеми в Storybook, насоките dialog срещу drawer, сървърните view configuration filters и inline документацията за URL (#80569, #80783, #80744, #80716).
- ESLint добавя липсващи компоненти към denylist;
webpack-dev-serverсе обновява до^5.2.1; changelog проверките работят при PR от fork; Interactivity API преработва директивите в саморегистриращи се модули (#80754, #80347, #80538, #79975). - RTC използва
array_any()при проверката за по-нова компактизация иstr_contains()вWP_Sync_Config; Storybook изгражда resolve specifier като URL низ; инструментите разрешават зависимости независимо от подредбата наnode_modules(#80522, #80476, #80416, #80414).
Още промени за разработчици
- Autocomplete свързва списъка с предложения чрез
aria-controlsиaria-haspopup; ExternalLink използва общия mixin за focus ring;useSelectionPropsне зависи от layout; Disabled, FormTokenField и SearchControl преминават към SCSS модули (#80403, #80573, #80677, #80643, #80472, #80474). - Пакетите обновяват
date-fnsдо 4.4.0, Color.js до 0.7.1 иmemizeдо 2.1.1. Премахнат е workaround в зависимосттаcolorjs.io, UI кодът в Storybook използва масиви за children, а публикуваният theme пакет не допускаsrc(#80763, #80762, #80272, #80352, #80213, #80764). - Библиотеката с блокове защитава от attribute стойности, които хвърлят грешка; прави
editableRootчастна настройка; включва поправки за WordPress-Develop 7.0 merges; използва null coalescing заparentPageID; премахва излишни jsdom pragma и__next40pxDefaultSizeсвойства; използваstr_contains()в Table of Contents и маха началния paragraph от шаблона на Tabs (#80558, #80820, #75985, #80728, #80676, #80540, #80418, #80565). - Duotone помощните функции се обединяват в
global-styles-engine, намаляват се дублираните preset utilities, аURLInputстава function component. Иконите валидиратviewBox, Notes отменя активното hover осветяване при напускане на нишка, тестовите файлове в Global Styles губят суфикса.spec.js, а Site Editor заменя Theme в canvas loader с CSS (#80598, #80245, #80721, #80273, #80752, #80711, #80688). - Кодът за съвместна работа се мести в
lib/experimental/collaboration(#80469).
Инструменти и тестове
- Документацията на release формуляра показва новия интерфейс на GitHub Release label, а release процесът изисква работещ GitHub CLI за cherry-pick (#80567, #80568).
- Build системата добавя независим vendor пакет за React 18, обработва пътища с интервали в dev скрипта, пропуска polymorphism prop типизациите при intersection, включва извлечените стилове в asset version hash и добавя end-to-end React 19 тест за булевия атрибут
inert(#80367, #80519, #80364, #80601, #80397). - Изолираното оформление разрешава Prettier изрично, Storybook премахва Emotion като JSX import source, WP Build избягва безкраен worker build loop, а предварителните проверки за npm достъп се подобряват (#80529, #80647, #80361, #80334).
- Jest поправя ignore pattern за TypeScript declaration файлове и се обновява до v30 с breaking промени. Flakiness.io се използва само в каноничното Gutenberg хранилище, тестът за производителност отчита коректно метриката „Selecting blocks“, RTC поправя теста за изтрит потребител в multisite, а Site Editor добавя end-to-end покритие за разширяемостта на view configuration (#80737, #80767, #80816, #80524, #80463, #80577).
- Base Styles премахва параметъра accent color от
input-control, а частният компонент Theme отпада (#80595, #80691).
Какво да направиш сега
Ако поддържаш сайт или разширение с блока „Галерия“, провери новия поток Detach и undo поведението му. За теми с Global Styles тествай наследените стойности в инспектора, а интерфейса за наследяване включи ръчно само ако искаш да работиш с експерименталната функция. При разработка на блокове обърни внимание и на responsiveEditingEnabled, новите групирани контроли и промените в build и тестовите инструменти.
Препратки / Източници
Елена Димитрова
Специалист по дигитален маркетинг и анализи. Интересувам се от Google Analytics и вземане на решения, базирани на данни. Измерването е първата стъпка към развитието.
Всички публикацииОще от Елена Димитрова
WP Composer: независим, community-funded заместител на WPackagist за WordPress пакети в Composer
WordPress Studio 1.7.0 и новият Studio CLI: локални сайтове, preview среди и WP-CLI от терминала
WP Media Cleanup: как безопасно да изчистиш неизползваните image вариации в WordPress и да си върнеш дисковото място