r   e   k   l   a   m   a
r   e   k   l   a   m   a

Parsoid: pierwsze kroki Wikipedii w stronę szerszego wykorzystania HTML

Strona główna Aktualności

Pierwsi redaktorzy Wikipedii chcieli dobrze – na początku tego stulecia znajomość HTML nie była umiejętnością powszechną, mało kto też dobrze wykorzystywał arkusze stylów do budowania layoutów stron i formatowania treści. Dlatego też stworzenie własnego języka znaczników do formatowania artykułów w redagowanej przez internetową społeczność encyklopedii było pomysłem dobrym.

12 lat później sytuacja wygląda zgoła odmiennie. Z jednej strony przynajmniej podstawowa znajomość HTML nie jest niczym rzadkim wśród zainteresowanych internautów, z drugiej zaś sam Wikitext – język znaczników używany w Wikipedii – stał się ogromnie skomplikowany, i nawet doświadczeni wikipedyści mają problemy z poprawnym jego stosowaniem, gubiąc się w tych wszystkich apostrofach. Co gorsza, ten język znaczników praktycznie uniemożliwia wprowadzenie do Wiki wizualnego edytora WYSIWYG, dziś oczekiwanego przez internautów niemal w każdej popularnej webowej aplikacji.

Dodatkowo trzeba pamiętać, że i tak oprogramowanie MediaWiki, na którym Wikipedia działa, musi te wszystkie dokumenty zapisane Wikitekstem przekonwertować do HTML, by były zrozumiałe dla przeglądarek. Tym zajmuje się w miarę prosty skrypt PHP, jednak przy obecnej liczbie edycji dokonywanych w internetowej encyklopedii, coraz wyraźniej widać jego niewystarczającą wydajność. Gabriel Wicke pisze na łamach bloga Fundacji Wikimedia, że konwersja dużego artykułu z Wikitekstu na HTML może zająć nawet 40 sekund.

Idealnie byłoby całkowicie zrezygnować z Wikitekstu, przechowywać zawartość artykułów wyłącznie w HTML. Pozwoliłoby to zaoszczędzić miejsce i łatwo wprowadzić wizualny edytor, czemu więc tego do tej pory nie zrobiono? Problemem, oprócz zachowania zgodności z ogromną bazą istniejących dokumentów jest zachowanie możliwości bezstratnej konwersji między Wikitekstem a HTML, tak by przekształcenie dokumentu z jednej wersji na drugą nie wprowadzało żadnych semantycznych różnic.

Niestety jednak konwersja między Wikitekstem a HTML nie jest prosta. Po pierwsze, parser musiałby sobie poradzić ze złożoną, wykorzystującą wyrażenia regularne heurystyką przekształceń stylów, czyniącą tradycyjne techniki parsowania niemożliwymi do zastosowania, po drugie problemem jest skomplikowany system szablonów i preprocesor tekstów, który nie daje żadnej gwarancji, że na wyjściu uzyskamy dobrze zbudowany fragment dokumentu HTML, po trzecie trzeba zapewnić, że każdy Wikitext będzie przekształcony do poprawnego HTML (nie ma czegoś takiego jak błąd składniowy Wikitekstu), po czwarte wreszcie – znajdowanie różnic w edycjach tego samego dokumentu w Wikitekście jest znacznie łatwiejsze, niż w wypadku HTML.

Rozwiązaniem tych bolączek ma być Parsoid, webowa usługa pozwalająca na konwersję w obie strony między Wikitekstem i HTML5, a napisana na bazie frameworka Node.js. Na początku Parsoid posłuży jako podstawa działania projektu VisualEditor, a w przyszłości możne nawet pozwoli na wykorzystanie HTML jako głównego formatu przechowywania dokumentów w oprogramowaniu MediaWiki. Na razie programiści Wikimediów będą starali się raczej utrzymać równolegle systemy przechowywania dokumentów w obu formatach.

Zainteresowanych tym, jak działają obie części Parsoida – konwerter wykorzystujący proces tokenizacji na bazie formalnych gramatyk do przekształcenia Wikitekstu w HTML, oraz konwerter przeprowadzający serializację HTML, by przekształcić go na Wikitext – zapraszamy do zapoznania się z wpisem na blogu Wikimediów. Niezainteresowanych zresztą też zapraszamy, gdy następnym razem będziecie czytali coś w Wikipedii, odczujecie wyraźniej, jak bardzo skomplikowanym systemem jest MediaWiki.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.