Gutenberg 23.7: dinamikus galéria, szerkesztői javítások és új kísérlet
Megjelent a Gutenberg 23.7, amely elsősorban a blokkszerkesztő kisebb, de napi használatban érezhető javításait hozza. Pontosabb lett több szerkesztőfelület viselkedése, átdolgozták a Galéria blokk dinamikus módjának leválasztási folyamatát, és kísérleti kapcsoló mögé került a Global Styles öröklődésének kezelőfelülete.
A bővítmény letölthető a WordPress.org-ról, vagy kipróbálhatod közvetlenül a WordPress Playgroundban.
Röviden
A Gutenberg 23.7 a 23.6-ra épít. A kiadásban a felhasználói felület finomításai mellett komponens-, build-, tesztelési és adatkezelési változások is vannak.
Szerkesztő: kisebb hibák, jobb elrendezés
A lebegtetett blokkok többé nem lógnak rá a sticky blokkokra. Az üres blokk beszúrója most a megfelelő helyen jelenik meg azokban a blokkokban is, amelyek saját toolbar-t kezelnek, a Pullquote blokk pedig a szerkesztőben is figyelembe veszi az egyedi sormagasságot, így megegyezik a front enddel.
Visszatértek a mobil- és tablet-előnézetek rögzített magasságai is. Ezek apró változásoknak tűnnek, de a hosszabb tartalmak szerkesztésekor és reszponzív ellenőrzésekor közvetlenül javítják a munkafolyamatot.

Egyértelműbb lett a dinamikus Galéria blokk leválasztása
A Gutenberg 23.6-ban érkezett dinamikus galériamód korábbi „Convert to images” gombja nem mondta meg egyértelműen, mi fog történni. A 23.7 ezt Detach névre cseréli, és egy modalban előre elmagyarázza a képek leválasztásának következményét.
A leválasztás egyetlen undo lépésként működik. Ez biztonságosabbá teszi a műveletet, mert egy visszavonással visszatérhetsz a dinamikus galéria eredeti állapotához.


Kiemelt fejlesztések
- A Global Styles öröklődésének UI-ja kísérleti funkció lett. Alapból ki van kapcsolva, a Gutenberg Experiments beállítási oldalán aktiválhatod (#80815).
- A Math blokk LaTeX-mezője ValidatedTextareaControlt használ. A feldolgozási hiba nem minden leütéskor jelenik meg: a mező első fókuszvesztése után kapsz visszajelzést, és eltűnt a képernyőolvasó leütésenkénti bejelentése (#80500).
- A Combobox, Select és SelectControl komponensek megkapták a Group és GroupLabel alkomponenseket. Így az elemválasztó popupokban egységesen lehet csoportosított opciókat felépíteni (#80574).
Fejlesztések
Alapok, widgetek és komponensek
- A Base Styles rendszerben felülírhatóvá vált az
outset-ring__focusfókuszgyűrű színe (#80587). - A Widget Dashboard méri a header illeszkedését, és dokumentálja a böngészői chrome méreteit (#80423).
- A Widget Primitives script module-ként érkezik (#80149).
- A DataViews és a Font Library keresőmezői rögzített szélességet kaptak, hogy kereséskor ne ugorjon el az elrendezés (#80315).
- A DataViewsPicker táblázat-, grid- és activity-nézetében Shift+Clickkel tartományt jelölhetsz ki (#80413).
- A sandbox komponens
sandboxpropot is fogad (#69617). - A
type="number"Input elrejti a natív léptetőgombokat (#80646). - A SearchControl csak akkor rendereli a suffixet, ha valóban van ilyen (#80356).
- Megjelent az
Autocomplete.RowUI primitive (#80490).
Blokkok, bejegyzésszerkesztő és stílusok
- A Table of Contents blokk teljes felhasználói folyamatát end-to-end tesztek fedik le (#80199).
- Új
responsiveEditingEnabledszerkesztői beállítással elrejthető a Responsive styles opció (#80814). - A Font Library navigációs oldalának betűmérete a DataViews méretéhez igazodik (#80617).
- Real-time collaboration (RTC) mellett a Quick Edit nem használható, amikor valaki már szerkeszti a bejegyzést (#80016).
- A Global Styles árnyék- és betűméret-presetjeinek közös kezelése külön lett választva (#79810).
- A blokk inspector a Global Styles-ból örökölt értékeket is megjeleníti a vezérlőkben (#77894).
Hibajavítások
Általános és blokkoldali javítások
- Frissült a view configuration API verziókezelése, a hibás alakú merge-ek elutasulnak, az üres tömbök szemantikája definiált lett, az appendelt tagokból pedig eltűnnek a
nullértékek (#80319, #80571). - A
createInterpolateElementmár hibakezeléssel fogadja a pár nélküli záró tageket (#80618). - A
render_block_core_video()kezeli a nem kisbetűsVIDEOtaget is (#80537). - A Cover és Accordion blokkból Enterrel ki lehet lépni (#77301).
- Behúzáskor a Lista blokk megőrzi a rendezett lista típusát (#75353).
- A Media Editor töltési állapotot mutat, amíg a vágott fájl betöltődik; a Media modulból eltűnt a felesleges
__heicUploadSupportflag (#80460, #80452). - A template parten belüli Navigation Link UI-ban ismét elérhető az „Add block” opció (#78427).
- Rövidebb lett a Playlist sáv toolbar-gombjának felirata (#80759).
- A Query Loop „Offset” felirata fordítási kontextust kapott (#80582).
- Javították a Tumblr Social Link ikon markupjában maradt hibás záró taget (#80257).
Blokkszerkesztő és bejegyzésszerkesztő
- A háttérkép vezérlőből eltűnt a duplikált fókuszgyűrű (#80671).
- Az üres blokkok előre törlésekor helyesen marad a kurzor pozíciója, a Shift+nyilakkal pedig natív kijelölés nélkül is bővíthető a blokkkijelölés (#77525, #80687).
- A preset utility-k összevonása után helyreálltak a preset round-trip tesztimportok; két azonos hex értékű színpresetnél a Global Styles a helyes presetet menti és mutatja (#80589, #80497).
- A linkként működő blokkok inspectorában feloldódnak a linkelem stílusai (#80607).
- Az RTC kontrollált blokkszinkronja nem kapja el az undo műveletet (#80503).
- A szerkeszthető elemekről ismét lekerült a
tabIndex, így működik a Shift+Click kijelölés; a Shift+Click többes kijelölési gesztusként van jelölve (#80651, #80286). - A caret mozgatása nem görgeti az oldalt a viewportnál magasabb blokkokban; a RichText nem futtat input transformot
onReplacenélkül, és nem omlik össze fájlok beillesztésekor (#80708, #80978, #81010). - A saját undo-kezelésű mezőkben a böngésző kezeli a visszavonást. A meta boxok címsora a Gutenberg panelekhez igazodik (#80768, #80670).
- A Notes funkció mentés előtt eltárolja a célblokkot, importkor regisztrálja az inline note formátumot, egységesen jelzi a mentési sikert, és az oldalsáv kijelölését a caret alatti inline markerhez szinkronizálja (#80690, #80576, #80748, #80610).
- A Post Lock modal nem vált tévesen „Someone else has taken over” állapotba kizárt nézőnél. A notice-ok 0-s sarokkerekítéssel kapnak ThemeProvidert, iOS-en pedig eltűnt az ugrást javító hack és érkezett typewriter-kezelés (#79997, #79523, #74596).
Komponensek, média, együttműködés és adatok
- A DataForm kártya- és részletekvalidációja nem viszi el a fókuszt; a GradientPicker slug alapján választ, így két azonos gradient preset megőrzi az azonosságát (#80685, #80554).
- Javult a root
.prettierrc.jsfelülírás, a Storybook EmotionjsxImportSource, és a ToolsPanel SCSS Module-ra váltott (#80422, #80426, #80445). - A hosszú animált GIF-ek still kimenetté alakításakor csak az első frame dekódolódik, így nem akad el a feltöltés. A média template-ek IMG tagjei nem kapnak kényszerített
crossoriginattribútumot (#80260, #80532). - A
wp-buildpage template preload mezőlistája szinkronba került acore-datacsomaggal; a Media REST API URL-útvonalról történő sideloadjánál visszakerült a feltöltési méretellenőrzés (#80648, #80659). - A collaboration tesztelésben leválasztották a core mention KSES filterét, az RTC serializálás közben tömörít, és megőrzi más közreműködők mentetlen szerkesztéseit, ha valaki ment (#80656, #80707, #79936).
- A theme.json blokk-szintű presetosztályai
:where()használatával azonos specificitást kapnak (#80657).
Akadálymentesség és teljesítmény
- Az Alignment vezérlők propkezelése javult, a Navigation overlayben pedig hoverre frissül az almenü
aria-expandedattribútuma (#63696, #77563). - A rich text
ownsSelectionellenőrzi acontentEditableattribútumot, hogy elkerülje a kényszerített layoutot. Javították a gépelési teljesítmény regresszióját is (#80549, #80507). - A FlatTermSelector nem kér le feleslegesen újra termeket, a Core Data
EntitiesSavedStatekomponense pedig kikerült a szerkesztőből (#80623, #80485).
Kísérleti funkciók, fejlesztői eszközök és kódminőség
A Dashboard Widgets action és help linkjeinek href értékei szigorúbb sanitizationt kaptak (#80510, #80409). A dokumentáció kiegészült többek között nvm-használati, agent-instrukciós, view configuration filter-, iframe-, backportolási, dialog-vs-drawer- és Storybook adminszínséma-útmutatóval.
- Az ESLint denylist bővült, a
webpack-dev-server^5.2.1verzióra frissült, és forkból érkező PR-eknél javult a changelog ellenőrzése (#80754, #80347, #80538). - Az Interactivity API direktívái önregisztráló module-okra lettek átszervezve. Az RTC újabb tömörítést vizsgáló kódja
array_any()-t, aWP_Sync_Configpedigstr_contains()-t használ (#79975, #80522, #80476). - A függőségek feloldása független lett a
node_moduleselrendezésétől, a Storybook URL-stílusú resolve specifiert épít (#80414, #80416). - Az Autocomplete
aria-controlsésaria-haspopupattribútummal hivatkozik a javaslatlistára. Több komponens SCSS Module-ra költözött: Disabled, FormTokenField és SearchControl (#80403, #80643, #80472, #80474). - Frissült a date-fns 4.4.0-ra, a Color.js 0.7.1-re; a colorjs.io függőség frissítése után eltűnt egy korábbi kerülőmegoldás (#80763, #80762, #80272).
- A blokkkönyvtár védekezik hibát dobó attribútumértékek ellen, az
editableRootprivát blokkbeállítás lett, a Tabs paneltemplate-jéből eltűnt az alapértelmezett bekezdés (#80558, #80820, #80565). - A Duotone utility-k a global-styles-engine-be kerültek, csökkent a duplikált preset utility-k száma, a
URLInputpedig funkcionális komponens lett (#80598, #80245, #80721). - A collaboration kód a
lib/experimental/collaborationkönyvtárba költözött, az Edit Site canvas loader már CSS-t használ Theme helyett (#80469, #80688).
Build és tesztelés
- A build rendszer külön React 18 vendor csomagot kapott, kezeli a szóközt tartalmazó projektútvonalakat, és az asset version hashbe bekerülnek a kinyert stílusok (#80367, #80519, #80601).
- Készült React 19 kompatibilitási end-to-end teszt a boolean
inertattribútumhoz; explicit módon oldódik fel a Prettier izolált layoutban, és megszűnt a végtelen worker build loop (#80397, #80529, #80361). - Javultak az npm-hozzáférés előzetes ellenőrzései, a Jest TypeScript declaration ignore patternje, és a tesztkörnyezet Jest 30-ra váltott, ami breaking változás (#80334, #80737, #80767).
- A Flakiness.io csak a kanonikus Gutenberg repóban fut. Javították a „Selecting blocks” teljesítménymetrika 0 ms-os hibáját, az RTC multisite törölt felhasználós tesztjét, valamint end-to-end lefedettséget adtak a Site Editor view configuration bővíthetőségéhez (#80816, #80524, #80463, #80577).
Mit érdemes most ellenőrizni?
Frissíts Gutenberg 23.7-re tesztkörnyezetben, majd nézd át a dinamikus galériák leválasztását, a Pullquote egyedi sormagasságát és a mobil- vagy tablet-előnézetet. Ha block theme-et vagy egyedi szerkesztői UI-t fejlesztesz, ellenőrizd a Global Styles öröklődést is, de számolj vele, hogy ez továbbra is külön engedélyezhető kísérleti funkció.
Hivatkozások / Források
Szabó Péter
Full-stack fejlesztő, JavaScript és Vue.js rajongó. Cikkeimet a gyakorlati problémamegoldás inspirálja. Ha nem kódolok, akkor biztosan podcastot hallgatok.
Összes bejegyzés