Pierwsze wydanie Bonsole.

Po wielu znojach z próbą wykorzystania Gecko, jako silnika Bonsole, postanowiłem wykorzystać WebKit2 w wersji GTK+. Po jednym dniu pracy (i trochę dzisiejszego), wszystko zaczyna działać.

Czym jest Bonsole

Bonsole to zestaw narzędzi, który ma pomóc dodawać do narzędzi cui tryb bardziej przyjemny dla oka. W dodatku, jak libgreattao, daje możliwość użytkownikowi wpływania na prezentację. Bonsole jest przeglądarką internetową, która ma wyświetlać programy uruchomione na naszym komputerze. Niby nic rewelacyjnego, ale jednak... Otóż Bonsole jest dostarczane wraz biblioteką do rozmawiania z nią. W dodatku, to mamy separację procesu interfejsu użytkownika i logiki aplikacji. Bonsole otwiera drogę do nowych narzędzi, jak np. możliwość wyświetlania okien z zapytaniem przez pewne usługi. Tutaj nie będzie istotne, czy skorzystamy z Bonsole czy jakiegoś klona (np. opartego o Qt), a w dodatku użytkownik może dostarczyć własne arkusze styli xsl. Można nawet się pokusić o przerobienie linksa, w3c to współdziałania, ale oczywiście nie będzie wtedy wyświetlanych grafik. W przyszłości planuję też dodać możliwość zdefiniowania własnych styli xsl do generowania tekstu z sekwencjami ucieczki terminala i integrację z cui2gui. Mam też inne plany, jak zastąpienie zwyczajnych potoków nowoczesnymi potokami, które aplikacja będzie wykorzystywać do przesyłania danych wstępnie przetworzonych przez xsl. GUI Bonsole pozwoli na proste zdefiniowanie wielu ścieżek danych.

Po co?

Jak już wspomniałem, Bonsole ma służyć dodawaniu programom CUI/CLI interfejsu HTML. Elementy, jak paski postępu, formularze, przyciski, listy plików, arkusze stylów CSS, itd., mają być dostępne na wyciągnięcie ręki. W dodatku, gdy nie mamy uruchomionego Bonsole, program będzie (przez bibliotekę klienta Bonsole) przetwarzać kontrolki/itd. na tekst, przez co programy konsolowe nie stracą uroku.

Czego brakuje do wersji stabilnej

Wielu rzeczy. Głównie brakuje arkuszów xsl. Inną kwestią jest biblioteka kliencka, która obecnie oferuje mało funkcji - brakuje m.in funkcji do obsługi pętli zdarzeń. Obecnie program może tylko wizualizować dane. Jednak naistotniejsze jest zdefiniowanie języka znaczników, jak również wspomnanych arkuszy stylów xsl, które miałyby przetwarzać wyjście aplikacji.

Projekt jest na sourceforge.net. Kliknij tutaj, by odwiedzić jego stronę na sourceforg-u.

Jak się nim posługiwać

Tak wygląda okno.

Na dole mamy trzy przyciski i jedno pole edycyjne. Add param (dodaj parametr) jest rodzajem przycisku, tworzonym oddzielnie dla każdego polecenia (należy się posłużyć add command). Do zatwierdzenia wszystkiego, klikamy w Run commands. Pierwszym parametrem musi zawsze być pełna ścieżka do uruchamianego programu. Obecnie nie da się tworzyć żadnych związków pomiędzy poleceniami.

Bonsole należy uruchamiać obecnie z jakiegoś podkatalogu w katalogu projektu, ze wskazaniem ścieżki do biblioteki klienckiej (../lib/client_lib) w zmiennej LD_LIBRARY_PATH. Przykładowy program ls (ten, którego wyjście zostało pokolorowane przez bibliotekę kliencką; patrz zdjęcie) przyjmuje jako parametr ścieżkę do katalogu, z którego ma wyświetlić pliki.