جیمز وستمن، توسعهدهنده برنامه نقشههای GNOME، یک زبان نشانهگذاری جدید به نام Blueprint را معرفی کرد که برای ساخت رابطها با استفاده از کتابخانه GTK طراحی شده است. کد کامپایلر برای تبدیل نشانه گذاری Blueprint به فایل های GTK UI در پایتون نوشته شده و تحت مجوز LGPLv3 توزیع می شود.
دلیل ایجاد این پروژه، اتصال فایلهای توضیح رابط رابط کاربری مورد استفاده در GTK به فرمت XML است، که بیش از حد بارگذاری شده است و برای نوشتن یا ویرایش نشانهگذاری دستی مناسب نیست. قالب Blueprint با ارائه واضح اطلاعات متمایز است و به لطف نحو قابل خواندن آن، بدون استفاده از ویرایشگرهای رابط بصری تخصصی هنگام ایجاد، ویرایش و ارزیابی تغییرات در عناصر رابط، امکان پذیر است.
در عین حال، Blueprint نیازی به تغییرات در GTK ندارد، مدل ویجت GTK را کاملاً تکرار می کند و به عنوان یک افزونه قرار می گیرد که نشانه گذاری را در قالب استاندارد XML برای GtkBuilder کامپایل می کند. عملکرد Blueprint کاملاً با GtkBuilder سازگار است، فقط روش ارائه اطلاعات متفاوت است. برای انتقال یک پروژه به Blueprint، کافی است یک فراخوانی کامپایلر بلوپرینت را بدون تغییر کد به اسکریپت ساخت اضافه کنید. با استفاده از Gtk 4.0. template MyAppWindow : Gtk.ApplicationWindow { عنوان: _("عنوان برنامه من"); [titlebar] HeaderBar header_bar {} Label { styles ["heading"] label: _("سلام، دنیا!"); } }
علاوه بر کامپایلر در قالب استاندارد GTK XML، افزونهای با پشتیبانی Blueprint برای محیط توسعه یکپارچه GNOME Builder نیز در حال توسعه است. یک سرور LSP جداگانه (پروتکل سرور زبان) برای Blueprint در حال توسعه است که می تواند برای برجسته کردن، تجزیه و تحلیل خطا، نمایش نکات و تکمیل کد در ویرایشگرهای کد که از LSP پشتیبانی می کنند، از جمله کد ویژوال استودیو استفاده شود.
طرحهای توسعه بلوپرینت شامل افزودن عناصر برنامهنویسی واکنشی به نشانهگذاری است که با استفاده از کلاس Gtk.Expression ارائه شده در GTK4 پیادهسازی میشود. روش پیشنهادی برای توسعهدهندگان رابطهای وب جاوا اسکریپت آشناتر است و امکان همگامسازی خودکار ارائه رابط با مدل داده مرتبط را بدون نیاز به بهروزرسانی اجباری رابط کاربر پس از هر تغییر داده فراهم میکند.
منبع: opennet.ru