James Westman, vývojár aplikácie GNOME Maps, predstavil nový jazyk značkovania Blueprint, určený na tvorbu rozhraní pomocou knižnice GTK. Kód kompilátora na prevod značkovania Blueprint na ui-súbory GTK je napísaný v jazyku Python a šíri sa pod licenciou LGPLv3.
Dôvodom vytvorenia projektu je viazanosť používaných ui-súborov popisu rozhrania v GTK na formát XML, ktorý je preplnený a nepohodlný na písanie alebo úpravu značkovania manuálne. Formát Blueprint sa vyznačuje prehľadnosťou prezentácie informácií a vďaka čitateľnej syntaxi umožňuje obísť použitie špecializovaných vizuálnych editorov rozhraní pri tvorbe, úprave a hodnotení zmien v prvkoch rozhrania.
Blueprint nevyžaduje zmeny v GTK, plne kopíruje model widgetov GTK a je propagovaný ako nadstavba, ktorá kompiluje značkovanie do štandardného formátu XML pre GtkBuilder. Funkčné možnosti Blueprintu plne zodpovedajú GtkBuilder, líši sa len metódou prezentácie informácií. Na prevedenie projektu na Blueprint stačí pridať volanie blueprint-compiler do skriptu zostavy bez zmeny kódu. using Gtk 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _(„My App Title“); [titlebar] HeaderBar header_bar {} Label { styles [„heading“] label: _(„Hello, world!“); } }

Okrem kompilátora do štandardného XML formátu GTK sa vyvíja aj plugin s podporou Blueprint pre integrované vývojové prostredie GNOME Builder. Samostatne sa vyvíja LSP server (Language Server Protocol) pre Blueprint, ktorý bude možné použiť na zvýrazňovanie, analýzu chýb, výstup nápovedy a automatické dopĺňanie kódu v editoroch kódu, ktoré podporujú LSP, vrátane Visual Studio Code.
V plánoch rozvoja Blueprint sa uvádza pridanie prvkov reaktívneho programovania implementovaných pomocou triedy Gtk.Expression, poskytovanej v GTK4. Navrhovaná metóda je pre vývojárov webových rozhraní na JavaScript obvyklá a umožňuje automatickú synchronizáciu zobrazenia rozhrania so súvisiacim modelom údajov, bez potreby nútenej aktualizácie používateľského rozhrania po každej zmene údajov.
Zdroj: opennet.ru
