xt - system szablonów

xt, czyli precz z szablonowym pseudojęzykiem

xt to system szablonów w pełni opartych tylko o xhtml. Nie musisz uczyć się żadnego pseudojęzyka, wystarczy znać xhtml, php oraz css, o który opiera się cały silnik.

Projekt umarł śmiercią naturalną - zainteresowanych proszę o kontakt.

Śmierć, kliniczna?

20.05.2008

Projekt przeżywa stadium śmierci klinicznej. Nikt się nim nie interesuje, nawet ja.

Postaram się wydzielić z niego coś, co może być przydatne, czyli translator css do xpath.

Pomysł

21.01.2008

Projekt czeka na wszelkie pomysły. Aktualnie brak jest znanych mi problemów, nie mam również nic do zaimplementowania. Wszystko zdaje się działać dobrze.

Od dziś strona działa też na najnowszej wersji xt (svn).

Nowa wersja xt

3.10.2007

Od dziś dostępna jest nowa wersja xt.

Przede wszystkim zmieniła się nieco idea - każda strona posiada teraz dwa pliki. Dzięki temu zabiegowi nasze szablony zostają nadal czystymi plikami xml, natomiast ich logika zostaje przeniesiona do osobnego pliku, co jest tak bardzo pożądane. Pozbywamy się natomiast problemu przebudowy całej strony w przypadku, gdyby jakiś szablon miał się zmienić.

Przerwa ideologiczna

27.09.2007

Podczas tej długiej przerwy następowały rzadkie aktualizacje na serwerze svn. Zastanawia mnie jaki kierunek powinien obrać projekt, aby być tak funkcjonalnym i wygodnym jak to tylko możliwe.

Bardzo proszę o wyrażanie swoich pomysłów na forum forumweb.

Namespace

20.04.2007

Zdaje się, że udało się uporać z problemami związanymi z namespace. Na razie rozwiązanie pozostawia sporo do życzenia, lecz powinno działać bez większych zarzutów. Zmiany dynamicznie zachodzą na serwerze svn, paczka wypuszczana na sourceforge pojawiać się będzie rzadziej, gdy zajdą większe zmiany lub gdy moduł getnode zostanie lepiej uporządkowany.

Jak zwykle zapraszam programistów do uczestnictwa w projekcie, a użytkowników do uzupełnienia dokumentacji.

Cache

7.04.2007

Po długim okresie ciszy ukazuje się pierwsza wersja xt z mechanizmem cache. Na razie nie obsługuje on całej gamy funkcji, którą oferuje wersja bez cache, jednak podstawowe add i set działają. Paczkę z kodem można znaleźć na stronach download projektu.

Cache ciąg dalszy

20.03.2007

Cache wykazuje dużą ochotę do pracy - jak na razie szybkością dziwięciokrotnie przewyższa smarty. Testy zostały przeprowadzone przy dodawaniu najprostszych wartości, czyli kilku zmiennych tekstowych. Do cache należałoby dopisać jeszcze mechanizm obsługi pętli, obsługę atrybutów oraz tagów. Wszystko to powinno pojawiać się stopniowo na serwerze svn. Być może docelowo wersja bez cache przestanie być rozwijana.

Zastanawiające są jednak szybkości wykonywania skryptu - bez cache - około 0.003 sekundy, natomiast najprostsza wersja z cache jest jedynie 3 razy szybsza! Czy zatem opłacalne jest tworzenie dość skomplikowanego mechanizmu cache, czy może w końcu rozwój php spowoduje dalsze przyspieszenie metod dom, co poskutkuje w szybszym parsowaniu szablonów bez żadnego cachowania. Zapraszam do dyskusji.

Nadal poszukuję osób chętnych do współpracy - wtedy wszystkie te problemy mogłyby być rozwiązane zdecydowanie szybciej.

Xt i cache

17.03.2007

Dziś światło dzienne ujrzała pierwsza wersja xt z mechanizmem cache. Co prawda na razie nie działają pętle, ani żadne inne bajery, ale najprostsze dodanie ciągu działa bezproblemowo. Wszystko można zobaczyć na razie wyłącznie korzystając z svn. Gdy tylko będzie taka możliwość - testowa paczka ukaże się na sourceforge.

Kolejna wersja xt

16.03.2007

Wczoraj wydano nową wersję xt. Do jednoosobowego zespołu dołączył oficjalnie Minchal, który podjął się wrzucania co jakiś czas paczek z xt z svn (którego, niestety, popularność jest nikła) na sourceforge. Dzięki Minchal.

Najnowsza paczka zawiera dużo drobnych poprawek. Dodałem magiczny atrybut #text do klasy getnode, więc do obiektów można się odwoływać na podstawie ich zawartości tekstowej, np. div[#text^="test"].

Wszelkie uwagi proszę kierować na wiki.

Nowa wersja xt

4.03.2007

Postanowiłem wrzucić dziś na serwer sourceforge paczkę zawierającą najnowszy kod xt ze względu na niską używalność serwera svn. Najnowsze źródło można więc znaleźć na stronie projektu.

Najwięcej zmian spowodowanych jest rozdrobnieniem kodu, który pierwotnie mieścił się w jednym pliku na moduły (obecnie jest to 9 plików). Następuje również powolna implementacja obsługi wyjątków.

Z najnowszej wersji został usunięty small_tidy, więc szablon musi być poprawnym dokumentem xml. W razie jakichś problemów z utrzymaniem kodu szablonów, czy dostosowaniem pod wymogi xt (poprawność xml) polecam tidy, które jest dostępne online.

Kolejne większe zmiany

3.03.2007

Trwają prace nad dodaniem wyjątków do xt oraz obsługą błędów. Oczywiście najnowszą wersję skryptu zawierającą poprawki można na bieżąco znaleźć przez serwer svn.

Najprawdopodobniej klasa small_tidy przestanie być wspierana, a xt będzie wymagało poprawnego xml-a. Z pewnością ograniczy to błędy związane z nieudolnością klasy small_tidy.

Poszukuję deveoperów

25.02.2007

Brak rąk do pracy. Sam, niestety, mam sporo obowiązków na głowie, które utrudniają pracę dla xt, dlatego szukam ludzi, którzy mają czas, chęci i umiejętności, aby pomagać przy projekcie. Wszystkich zainteresowanych zapraszam do współpracy. Proszę o kontakt bezpośredni lub przez forumweb.

Nowy serwer

20.02.2007

Wreszcie po długich zapowiedziach udało się przejść na nowy serwer, który sponsoruje firma infeo. Mam nadzieję, że przyczyni się to do dalszego rozwoju projektu i rozwiąże niejeden techniczny problem.

Nowe metody obsługi pętli

18.02.2007

Niedawno została dodana metoda loop pozwalająca na dość proste wprowadzenie pętli. Jej krótki opis znajduje się w dokumentacji. Mam zamiar wprowadzić również interfejs pozwalający na prostą współpracę z bazą danych - propozycje proszę przedstawiać na forum.

W dziale download, który został całkowicie przeniesiony na sourceforge można znaleźć paczki zawierające przykładowe skrypty - póki dokumentacja nie zostanie uzupełniona takowe przykłady powinny pomóc w zrozumieniu idei xt.

Najnowsze poprawki

10.02.2007

Wczoraj informowałem o problemach z działaniem pseudo-klas css3 zawierających słowo child. Dzisiejsza paczka zdaje się rozwiązywać te problemy. Zostały również dodane dwie ostatnie pseudo-klasy: :nth-last-child oraz :nth-last-of-type. Zatem xt zyskuje sobie pełną obsługę dopiero nadchodzącego standardu css3.

Błędy w obsłudze css3

9.02.2007

Okazuje się, że pseudo-klasy zawierające słowo child nie działają poprawnie. Poza tym pominąłem jakoś :nth-last-child oraz :nth-last-of-type. Postaram się o jak najszybszą poprawkę tych błędów.

Pełna integracja z css3

8.02.2007

Mam zaszczyt przedstawić po ponad tygodniu najnowszą wersję xt, która, przynajmniej w założeniu, obsługuje wszystkie „bajery” css3. Po raz kolejny zapraszam do testów.

Z zauważonych problemów nasuwa się głównie jeden - nie wolno nadawać atrybutu xmlns, który negatywnie wpływa na pojmowanie dokumentu przez xpath.

Serwer svn

7.01.2007

Dziś otrzymałem hosting na stronie sourceforge. Stonę projektu można znaleźć pod nazwą xhtml-templates. Zatem najnowsze wersję xt będzie można znaleźć korzystając z zalet svn :-)

Xt w konkursie art.php.pl

1.02.2007

Od dziś można głosować na najlepsze bilbioteki w konkursie portalu php.pl. Zapraszam wszystkich do głosowania na bilbiotekę xt. Mam nadzieję, że dzięki konkursowi uda się zwerbować jakiegoś developera, który pomoże w dalszym rozwoju.

Wiki dla xt

27.01.2007

Dokumentacja projektu xt od dziś powinna rosnąć na stronie wiki! Na razie należałoby zaplanować układ dokumentacji. Pewna jego część znajduje się na stronie głównej, ale wszelkie modyfikacje, pomysły, usprawnienia jak najbardziej wskazane. Myślę, że takim wzorem dokumentacji może być manual php. Zapraszam wszystkich do jej uzupełniania.

Niestety nie mam na razie pomysłu na automatyczny podgląd (jak to funkcjonuje w obecnej dokumentacji) - nie mogę pozwolić na wprowadzanie kodu php osobom postronnym. Z drugiej strony na serwerach nazwa.pl ze względu na segfault przestarzałej wersji biblioteki libxml skrypt nie działa.

Serwera pod wiki użycza nam firma infeo. Dziękujemy.

Nowy silnik pobierania elementów

26.01.2007

Najnowsza wersja xt wreszcie korzysta z nowego silnika pobierania elementów. Powinien on obsługiwać css2 oraz niektóre nowości css3. Do dyspozycji aktualnie mamy następujące selektory:

Nowy silnik został nieco oddzielony od kodu, bo wyeksportowany do nowej klasy. Dzięki temu będzie łatwiejszy w modyfikacji.

Co prawda silnik pozostawia jeszcze nieco do życzenia - ta sama struktura kodu powtarza się aż trzykrotnie - ale na dzień dzisiejszy nie mam pomysłu na idealne rozwiązanie.

Nowy silnik powinien działać nieco szybciej, ze względu na maksymalne wykorzystanie xpath. W stosunku do starego zyskuje również nowe selektory (E + F oraz E ~ F).

Zapraszam do testów i zgłaszania na forum ewentualne błędy. Aby zgłosić błąd nie zapomnij podać szablonu oraz kodu php.

Przygotowania do nowego silnika pobierającego elementy

24.01.2007

Trwają prace nad nowym silnikiem pobierania elementów (nowa funkcja getNode). Nowy silnik powinien być gotowy najpóźniej w weekend, dlatego błędy w wersjach starszych nie będą poprawione. Do najnowszej wersji zostanie dodana nowa funkcja obsługująca pętle, loop. Jej nazwa może jednak ulec zmianie, jeśli tak zadecyduje forum. Nowa funkcja umożliwi wygodne tworzenie pętli, nie wymagające zagnieżdżania tablic, co do najprzyjemniejszych zjawisk programistycznych nie należy.

Przeprowadzka na nowy serwer

16.01.2007

Jestem blisko przeprowadzki na nowy, mocny serwer sponsorowany przez kolegę. Jeszcze tylko parę problemów z niedziałaniem xt na nim i skończą się problemy z niedostępną stroną xt czy archiwum.

(nowa) szata graficzna

15.01.2007

Na stronie pojawiła się szata graficzna. Twórcą loga jest kolega Wigrom. Autorem całej reszty Minchal. Serdeczne podziękowania za wkład w xt chłopaki! Mam nadzieję, że odwdzięczę się dalszym rozwojem projektu.

Nastąpiły również drastyczne zmiany w sposobie odwoływania się do obiektów, które naśladuje składnię css. Więcej na ten temat w dokumentacji. Nowa wersja przestała być kompatybilna z poprzednimi na rzecz kompatybilności ze standardami w3.

Uroczyste otwarcie

7.01.2006

Mam zaszczyt poinformować, że dziś została oddana do użytku pierwsza wersja xt.

Skrypt można pobrać ze strony download.

Zapraszam wszystkich do testowania oraz dyskusji.

Ta strona została wygenerowana właśnie dzięki xt.