Gutenberg 23.7: opravy editoru, Galerie i nástroje pro vývojáře
Gutenberg 23.7 přináší hlavně desítky přesných oprav, které zlepšují chování editoru při běžné práci i vývoj komponent. Vedle nich upravuje dynamický režim Galerie, zpřístupňuje experiment s děděním globálních stylů a řeší regresi výkonu při psaní.
Verze navazuje na Gutenberg 23.6 a můžeš ji vyzkoušet v WordPress Playgroundu. Plugin je k dispozici také ke stažení z WordPress.org.
Stáhnout Gutenberg 23.7Nejdůležitější změny pro práci v editoru
Vizuální úpravy tentokrát míří na místa, kde editor dříve působil nevyzpytatelně. Plovoucí bloky už nepřekrývají sticky bloky, prázdný appender se ve blocích s vlastním toolbarem zobrazí na správné pozici a Pullquote respektuje nastavenou výšku řádku i v editoru. Náhledy pro mobil a tablet opět používají pevně danou výšku.

Dynamická Galerie s jasnějším odpojením obrázků
Dynamický režim bloku Galerie se objevil v Gutenbergu 23.6. Tlačítko v toolbaru, které se dosud jmenovalo „Convert to images“, však neříkalo přesně, co akce udělá. Gutenberg 23.7 ho přejmenovává na „Detach“ a před odpojením obrázků zobrazí dialog s vysvětlením důsledků.
Převod z dynamického režimu navíc tvoří jediný krok v historii změn, takže ho vrátíš jedním undo. Podrobnosti o původním zavedení dynamického režimu najdeš v přehledu Gutenberg 23.6.


Experimenty, formuláře a matematický blok
Rozhraní pro dědění globálních stylů je nově experiment. Neaktivuje se samo: zapneš ho v nastavení Gutenberg Experiments. Ovládací prvky inspektoru bloků zároveň dokážou zobrazit zděděné hodnoty globálních stylů a u bloků fungujících jako odkazy správně vyřeší styly elementu odkazu.
Matematický blok mění vstup LaTeXu na ValidatedTextareaControl. Chyby parsování už neoznamuje při každém stisku klávesy; zpětná vazba přijde až po prvním opuštění pole a čtečka obrazovky nepřerušuje psaní opakovaným hlášením.
Combobox, Select a SelectControl dostávají subkomponenty Group a GroupLabel. Seskupené volby tak složíš konzistentně napříč komponentami, které zobrazují položky ve vyskakovacím rozhraní.
Přehled vylepšení
Základ, dashboard a widgety
- Base styles dovolují přepsat barvu focus ringu v
outset-ring__focus. - Widget Dashboard změří, zda se hlavička vejde, a zadokumentuje chrome rozhraní.
- Widget Primitives se distribuují jako script module.
Komponenty
- Combobox, Select a SelectControl přidávají
GroupaGroupLabel. - Vyhledávací pole v DataViews a knihovně písem mají pevnou šířku, aby se rozvržení při práci neposouvalo.
- DataViewsPicker podporuje výběr rozsahu přes Shift+Click v rozvrženích picker-table, picker-grid i picker-activity.
- Komponenta sandbox přijímá vlastnost
sandbox. - Vstup
type="number"skrývá nativní ovladače pro zvyšování a snižování hodnoty. - SearchControl vykreslí suffix jen tehdy, když existuje právě jeden.
- UI přidává primitivu
Autocomplete.Row.
Knihovna bloků a editor příspěvku
- Blok Table of Contents získává end-to-end pokrytí uživatelského scénáře.
- Math používá pro LaTeX
ValidatedTextareaControl. - Nastavení editoru
responsiveEditingEnabledumožňuje skrýt volbu Responsive styles. - Knihovna písem sjednocuje velikost písma selektoru na navigační stránce s DataViews.
- Při úpravě příspěvku se v RTC vypne Quick Edit.
- Globální styly vyčleňují sdílenou správu presetů ze stínů a velikostí písem.
- Inspektor bloků promítne hodnoty zděděných globálních stylů do svých ovladačů.
Opravy chyb
Obecné opravy
- Plovoucí bloky už nepřekrývají sticky bloky.
- Konfigurace pohledu aktualizuje verzování API.
- Slučování konfigurace pohledu odmítne objekty s neodpovídajícím tvarem, definuje význam prázdných polí a z připojovaných členů odstraní hodnoty
null. createInterpolateElementbezpečně zpracuje neodpovídající uzavírací tagy.
Knihovna bloků
render_block_core_video()zohlední tag VIDEO, i když není psaný malými písmeny.- Z bloků Cover a Accordion odejdeš stiskem Enter.
- Dynamická Galerie přejmenovává akci na Detach a vysvětluje její dopad v dialogu.
- Pullquote v editoru správně použije vlastní výšku řádku.
- Konverze dynamického režimu Galerie vytvoří jen jednu úroveň undo.
- Blok Seznam při odsazení zachová číslovaný typ.
- Editor médií ukáže stav načítání, než se načte oříznutý soubor.
- Média odstraňují nadbytečný příznak
__heicUploadSupport. - Navigace v rozhraní odkazu znovu nabízí „Add block“, když pracuješ uvnitř částí šablony.
- Toolbar playlistu používá kratší popisek tlačítka stopy.
- Nastavení „Offset“ v Query Loop dostává překladový kontext.
- Markup ikony Tumblr v bloku Social Link už neobsahuje osamocený uzavírací tag.
Blokový editor
- Ovladač obrázku na pozadí už nekreslí duplicitní focus ring.
- Appender prázdného bloku se správně umístí uvnitř bloků, které přebírají toolbar.
- Při mazání dopředu v prázdných blocích zůstane kurzor na správné pozici.
- Testy importu presetů opět projdou po konsolidaci pomocných funkcí presetů.
- Když dva barevné presety sdílejí stejný hex kód, panel globálních stylů vybere a uloží správný preset.
- Globální styly správně vyřeší styly odkazů v ovladačích inspektoru bloků, které jsou odkazy.
- Synchronizace řízených bloků RTC už nezachytí undo.
- Editable prvky rich textu znovu nemají
tabIndex, což opravuje výběr přes Shift+Click. - Když neexistuje nativní výběr, Shift+šipka rozšíří výběr bloků.
- Shift+Click se označí jako gesto vícenásobného výběru.
- Pohyb kurzoru v bloku vyšším než viewport už neposouvá stránku.
- RichText nespustí input transform bez
onReplace. - Vložení souborů do RichTextu už nezpůsobí pád paste handleru.
Editor příspěvku
- Pole, která obsluhují vlastní undo, nechávají historii změn na prohlížeči.
- Mobilní a tabletový náhled znovu používá pevnou výšku.
- Meta boxy sjednocují styl nadpisů s panely Gutenbergu.
- Poznámky před uložením poznámky na úrovni bloku zachytí cílový blok.
- Inline formát poznámky se zaregistruje už při importu.
- Akce nad poznámkami vracejí stav úspěšného uložení jednotně.
- Výběr v postranním panelu poznámek se synchronizuje s inline značkou pod kurzorem.
- Dialog Post Lock se zamknutému uživateli chybně nepřepne do stavu „Someone else has taken over“.
- Oznámení používají ThemeProvider s nulovým poloměrem rohů.
- iOS odstraňuje hack proti poskakování a přidává typewriter.
Komponenty, média, spolupráce a data
- DataForm zabrání tomu, aby validace karty a detailu přebírala focus.
- Kořenový přepis
.prettierrc.jsfunguje správně. - GradientPicker vybírá preset podle slugu, takže dva presety se shodným gradientem neztratí identitu.
- Storybook opravuje
jsxImportSourcepro Emotion. - ToolsPanel přesouvá styly do SCSS modulu.
- Při konverzi dlouhých animovaných GIFů se upload nezasekne: pro statický výstup dekóduje jen první snímek.
- Šablony médií už nevynucují
crossoriginna tagu IMG. - wp-build synchronizuje seznam polí preloadu šablony stránky s
core-data. - Baseline strip test poznámek odpojuje KSES filtr zmínek z WordPress core.
- RTC při serializaci provede kompakci.
- Media REST API přenáší zpět kontrolu velikosti uploadu při sideloadu z URL cesty.
- Pravidla Theme JSON s
:Where()vyrovnají specificitu tříd presetů na úrovni bloků. - RTC zachová neuložené úpravy ostatních spolupracovníků, když jiný uživatel obsah uloží.
Přístupnost a výkon
- Alignment controls lépe zpracovávají své vlastnosti.
- Navigace správně aktualizuje
aria-expandedpři najetí na submenu uvnitř překryvu. - Rich text čte atribut
contentEditablevownsSelection, aby nevynutil přepočet rozvržení. - Editor řeší regresi výkonu při psaní.
- FlatTermSelector zbytečně znovu nestahuje termíny.
- Core Data přesouvá komponentu EntitiesSavedState mimo editor.
Bezpečnost a experimentální dashboard
Experimentální dashboardové widgety zpřísňují sanitizaci URL v href u akcí i odkazů nápovědy. Experiment dědění globálních stylů zůstává za přepínačem v Gutenbergu.
Změny pro vývoj a build
Dokumentace
- AGENTS.md popisuje použití
nvm use. - Instrukce pro agenty a jejich dovednosti používají postupné odkrývání informací.
table-of-contents/index.phpdoplňuje chybějící globální dokumentaci.- WP_Icon_Collections_Registry získává chybějící docblocky na úrovni souborů a tříd.
- Dokumentace zpřesňuje hledání pokynů pro agenty.
- Dokumentace vysvětluje chování
getBlocks controllery vnitřních bloků. - Průvodce backportováním do WordPress core se rozšiřuje.
- Callbacky filtrů konfigurace pohledu na serveru musí vracet container.
- Dokumentace aktualizuje doporučení pro iframe po Gutenbergu 23.6.
- Ukázky administrátorského barevného schématu šablony ve Storybooku jsou aktuální.
- UI dokumentace rozlišuje dialog a drawer.
- Dokumentace aktualizuje serverové filtry konfigurace pohledu.
- Inline dokumentace používá odkaz pro URL.
Kvalita kódu a interní úpravy
- ESLint přidává do denylistu chybějící nedoporučené komponenty.
webpack-dev-serverse aktualizuje na^5.2.1, aby omezil bezpečnostní hlášení závislostí.- GitHub workflow opravuje kontrolu changelogu u PR z forků.
- Interactivity API refaktoruje direktivy do samoregistrujících modulů.
- RTC používá
array_any()při kontrole novější kompakce na polling synchronizačním serveru. - RTC používá
str_contains()ve WP_Sync_Config. - Storybook sestavuje resolve specifier jako řetězec ve stylu URL.
- Nástroje vyřeší závislosti nezávisle na rozvržení
node_modules. - Autocomplete propojuje seznam návrhů přes
aria-controlsaaria-haspopup. - ExternalLink používá sdílený mixin focus ringu.
- Hook
useSelectionPropsnezávisí na rozvržení. - Disabled, FormTokenField a SearchControl přesouvají styly do SCSS modulů.
- Balíčky aktualizují date-fns na 4.4.0.
- Theme aktualizuje Color.js na 0.7.1.
- Theme aktualizuje závislost colorjs.io a odstraňuje náhradní řešení chyby.
- Storybook zpřehledňuje kód komponent UI pomocí polí pro potomky.
- Publikovaný balíček theme zakazuje adresář
src. - Knihovna bloků se chrání před hodnotami atributů, které vyhazují chybu.
editableRootse mění z veřejné podpory na privátní nastavení bloku.- Opravy slučování s WordPress-Develop 7.0 řeší různé drobnosti.
- Page List používá null coalescing operátor pro atribut
parentPageID. - Odstraňuje se nadbytečné pragma
@jest-environment jsdoma lint ho nově hlídá. - Form controls už nepředávají zbytečné vlastnosti
__next40pxDefaultSize. - Table of Contents používá
str_contains()namísto kontroly přesstrpos(). - Tabs odstraňují výchozí odstavec ze šablony panelu záložky.
- Duotone slučuje duplicitní utility do global-styles-engine.
- Pomocné implementace presetů se deduplikují.
URLInputse mění na funkční komponentu.- Ikony v editoru příspěvku ověřují přítomnost
viewBoxv SVG. - Poznámky zruší probíhající zvýraznění po najetí, když focus opustí vlákno poznámky.
- Balíčky aktualizují memize na 2.1.1.
- Testovací soubory globálních stylů se přejmenovávají a přestávají používat příponu
.spec.js. - Edit Site nahrazuje použití Theme v canvas loaderu za CSS.
- Kód pro spolupráci v reálném čase se přesouvá do
lib/experimental/collaboration.
Nástroje, sestavení a testy
- Dokumentace nástrojů aktualizuje snímek release formuláře pro nové rozhraní štítku GitHub Release.
- Release proces vyžaduje funkční GitHub CLI pro cherry-picking.
- Build přidává samostatný vendor balíček Reactu 18.
- Dev script zvládne cestu projektu s mezerami.
- Komponenty při průniku typů přeskočí typování vlastnosti polymorfismu.
- DependencyExtractionWebpackPlugin zahrne vyextrahované styly do hashe verze assetů.
- React 19 přidává end-to-end test kompatibility boolean atributu
inert. - Izolované rozvržení explicitně vyřeší Prettier.
- Storybook už nepoužívá Emotion jako zdroj JSX importů.
- WP Build zabrání nekonečné smyčce sestavení workeru.
- Kontroly přístupu npm před během jsou lepší.
- Jest opravuje ignorování TypeScript declaration souborů.
- Jest se aktualizuje na v30; jde o breaking změnu.
- Flakiness.io se používá jen v kanonickém repozitáři Gutenbergu.
- Performance testy správně reportují metriku „Selecting blocks“, místo chybné hodnoty 0 ms.
- RTC opravuje test s odstraněným uživatelem v multisite.
- Site Editor přidává end-to-end pokrytí rozšiřitelnosti konfigurace pohledu.
Další drobnosti
- Base Styles odstraňují parametr accent color z
input-control. - Odstraňuje se privátní komponenta Theme.
Co zkontrolovat po aktualizaci
Aktualizuj Gutenberg ve vývojovém prostředí a projdi zejména vlastní bloky, které pracují s globálními styly, editovatelným rich textem, výběrem v DataViews nebo konfigurací pohledů. Pokud používáš dynamické Galerie, ověř nový tok akce Detach a historii undo. Experiment dědění globálních stylů zapínej jen tehdy, když ho chceš cíleně vyzkoušet.
Lucie Procházková
Motion designérka a frontend animátorka. GSAP a Framer Motion jsou mé oblíbené. Webové stránky jsou dobré, když ožijí.
Všechny příspěvky