గ్నోమ్ మ్యాప్స్ అప్లికేషన్ డెవలపర్ అయిన జేమ్స్ వెస్ట్మన్, GTK లైబ్రరీని ఉపయోగించి ఇంటర్ఫేస్లను రూపొందించడానికి రూపొందించిన బ్లూప్రింట్ అనే కొత్త మార్కప్ లాంగ్వేజ్ను పరిచయం చేశారు. బ్లూప్రింట్ మార్కప్ను GTK UI ఫైల్లుగా మార్చడానికి కంపైలర్ కోడ్ పైథాన్లో వ్రాయబడింది మరియు LGPLv3 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
ప్రాజెక్ట్ను రూపొందించడానికి కారణం GTKలో ఉపయోగించిన UI ఇంటర్ఫేస్ వివరణ ఫైల్లను XML ఫార్మాట్కు బైండింగ్ చేయడం, ఇది ఓవర్లోడ్ చేయబడింది మరియు మార్కప్ను మాన్యువల్గా వ్రాయడానికి లేదా సవరించడానికి అనుకూలమైనది కాదు. బ్లూప్రింట్ ఫార్మాట్ దాని స్పష్టమైన సమాచార ప్రదర్శన ద్వారా వేరు చేయబడుతుంది మరియు దాని చదవగలిగే సింటాక్స్కు ధన్యవాదాలు, ఇంటర్ఫేస్ మూలకాలలో మార్పులను సృష్టించేటప్పుడు, సవరించేటప్పుడు మరియు మూల్యాంకనం చేసేటప్పుడు ప్రత్యేకమైన విజువల్ ఇంటర్ఫేస్ ఎడిటర్లను ఉపయోగించకుండా చేయడం సాధ్యపడుతుంది.
అదే సమయంలో, బ్లూప్రింట్కు GTKకి మార్పులు అవసరం లేదు, GTK విడ్జెట్ మోడల్ను పూర్తిగా ప్రతిబింబిస్తుంది మరియు GtkBuilder కోసం ప్రామాణిక XML ఫార్మాట్లో మార్కప్ను కంపైల్ చేసే యాడ్-ఆన్గా ఉంచబడుతుంది. బ్లూప్రింట్ యొక్క కార్యాచరణ పూర్తిగా GtkBuilderకి అనుగుణంగా ఉంటుంది, సమాచారాన్ని ప్రదర్శించే పద్ధతి మాత్రమే భిన్నంగా ఉంటుంది. ప్రాజెక్ట్ను బ్లూప్రింట్కి తరలించడానికి, కోడ్ను మార్చకుండా బిల్డ్ స్క్రిప్ట్కు బ్లూప్రింట్-కంపైలర్ కాల్ని జోడించండి. Gtk 4.0ని ఉపయోగించడం; టెంప్లేట్ MyAppWindow : Gtk.ApplicationWindow {శీర్షిక: _("నా యాప్ శీర్షిక"); [titlebar] HeaderBar header_bar {} Label { styles ["heading"] label: _("Hello, world!"); } }
ప్రామాణిక GTK XML ఆకృతిలో కంపైలర్తో పాటు, GNOME బిల్డర్ ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్ కోసం బ్లూప్రింట్ మద్దతుతో కూడిన ప్లగ్ఇన్ కూడా అభివృద్ధిలో ఉంది. బ్లూప్రింట్ కోసం ప్రత్యేక LSP సర్వర్ (లాంగ్వేజ్ సర్వర్ ప్రోటోకాల్) అభివృద్ధి చేయబడుతోంది, ఇది విజువల్ స్టూడియో కోడ్తో సహా LSPకి మద్దతిచ్చే కోడ్ ఎడిటర్లలో హైలైట్ చేయడం, దోష విశ్లేషణ, సూచనలు మరియు కోడ్ పూర్తి చేయడం కోసం ఉపయోగించబడుతుంది.
బ్లూప్రింట్ అభివృద్ధి ప్రణాళికలు GTK4లో అందించబడిన Gtk.Expression తరగతిని ఉపయోగించి అమలు చేయబడిన మార్కప్కు రియాక్టివ్ ప్రోగ్రామింగ్ మూలకాల జోడింపును కలిగి ఉంటాయి. ప్రతిపాదిత పద్ధతి JavaScript వెబ్ ఇంటర్ఫేస్ల డెవలపర్లకు బాగా సుపరిచితం మరియు ప్రతి డేటా మార్పు తర్వాత వినియోగదారు ఇంటర్ఫేస్ను బలవంతంగా నవీకరించాల్సిన అవసరం లేకుండా, అనుబంధిత డేటా మోడల్తో ఇంటర్ఫేస్ ప్రదర్శనను స్వయంచాలకంగా సమకాలీకరించడానికి అనుమతిస్తుంది.
మూలం: opennet.ru