Title: Interfejs wyjÅcia --- TypeFriendly pozwala Åatwo tworzyÄ wÅasne systemy wyjÅcia, które bÄdÄ mogÅy byÄ później użyte do generowania dokumentacji. Do ich tworzenia wymagana jest pewna znajomoÅÄ jÄzyka PHP. Zasada parsowania ================= TypeFriendly rozpoczyna dziaÅanie od utworzenia obiektu projektu, za pomocÄ którego możliwe sÄ wszelkie manipulacje na dokumentacji. Odczytywana jest konfiguracja, a nastÄpnie wszystkie rozdziaÅy sÄ przetwarzane i ukÅadane w odpowiedniej kolejnoÅci. Na koÅcu skrypt Åaduje wszystkie wyjÅcia, które bÄda wykorzystywane i nakazuje każdemu z nich przetwarzaÄ wstÄpnie obrobione wyniki. Każde wyjÅcie zapisane jest w niezależnym pliku PHP w katalogu `outputs/`. Ma postaÄ klasy o takiej samej nazwie, jak nazwa pliku (z pominiÄciem rozszerzenia) i musi rozszerzaÄ klasÄ `standardOutput` definiujÄ cÄ trzy metody opisane niżej. Zadaniem wyjÅcia jest opakowanie meta-danych w kod HTML lub inny bazujÄ cy na nim format. Niestety, obecnie wykorzystywany parser Markdown nie potrafi generowaÄ kodu wynikowego w niczym innym, stÄ d póki co niemożliwe jest napisanie wyjÅcia np. do formatu LaTeX. Prace nad umożliwieniem tego zostanÄ podjÄte w niedalekiej przyszÅoÅci. WyjÅcie samo musi dbaÄ o zapisanie wyniku do odpowiednich plików - TypeFriendly nie narzuca tu żadnych ograniczeÅ i jedynie przekazuje katalog, w którym wszystko ma siÄ znaleźÄ. Do dyspozycji programisty jest kilka interfejsów skryptu. API === `standardOutput` ---------------- Jest to klasa abstrakcyjna, którÄ musi rozszerzaÄ i implementowaÄ klasa wyjÅcia. Zawiera metody: + `init($project, $path)` - wywoÅywana przed rozpoczÄciem przetwarzania podstron. Jako parametry dostaje obiekt projektu oraz ÅcieżkÄ, do której należy zapisaÄ pliki wynikowe. + `generate($page)` - wywoÅywana dla każdego rozdziaÅu. WyjÅcie dostaje tablicÄ `$page` ze wszystkimi meta-danymi dotyczÄ cymi rozdziaÅu. Indeksy odpowiadajÄ nazwom użytych tagów w pliku. Dodatkowe tagi opisane sÄ niżej. + `close()` - wywoÅywana na zakoÅczenie przetwarzania danego wyjÅcia. Dodatkowe tagi w meta-danych rozdziaÅu * `Id` - identyfikator rozdziaÅu * `Content` - przetworzona treÅÄ rozdziaÅu * `Next` - identyfikator nastÄpnej strony dokumentacji lub NULL * `Prev` - identyfikator poprzedniej strony dokumentacji lub NULL * `Parent` - identyfikator rozdziaÅu nadrzÄdnego lub NULL `tfTranslate` ------------- Obiekt tej klasy sÅuży do tÅumaczenia interfejsu dokumentacji na różne jÄzyki. + `tfTranslate::get()` - zwraca obiekt interfejsu tÅumaczeÅ. + `_($group, $id, ...)` - pobiera tekst w danym jÄzyku o identyfikatorze `$id` w grupie `$group`. Opcjonalnie można podaÄ wiÄcej argumentów, które zostanÄ umieszczone w komunikacie, o ile zawiera on odpowiednie do tego celu pola. `tfProject` ----------- Obiekt projektu. + `$fs` - obiekt klasy `tfFilesystem` obrazujÄ cy katalog projektu. + `$tree` - publiczna struktura opisujÄ ca drzewo. Jako indeks podajemy identyfikator Å¼Ä danego rozdziaÅu i otrzymujemy tablicÄ z peÅnymi danymi wszystkich zawartych w nim podstron. + `getMetaInfo($name[, $exception = true])` - zwraca wszystkie meta-informacje dotyczÄ ce rozdziaÅu o nazwie `$name`. DomyÅlnie w przypadku nieznalezienia generowany jest wyjÄ tek. Jeżeli ostatni argument ustawiony jest na **false**, wtedy w przypadku braku zwracana jest wartoÅÄ **NULL**. `tfFilesystem` -------------- Klasa reprezentujÄ ca system plików w obrÄbie podanego katalogu. Umożliwia szybkÄ i prostÄ manipulacjÄ plikami oraz katalogami. W opisie przez ''system plików'' bÄdziemy rozumieÄ folder, na który zostaÅ ustawiony obiekt tej klasy i w obrÄbie którego możemy dokonywaÄ manipulacji. + `get($name)` - zwraca rzeczywistÄ ÅcieżkÄ do podanego pliku w systemie plików. W razie nieznalezienia generowany jest wyjÄ tek `SystemException`. + `read($name)` - zwraca zawartoÅÄ podanego pliku w systemie plików. W razie nieznalezienia generowany jest wyjÄ tek. + `readAsArray($name)` - jw. lecz zwraca tablicÄ z poszczególnymi linijkami pliku pozbawionymi koÅcowych biaÅych znaków. + `write($name, $content)` - zapisuje podanÄ zawartoÅÄ do podanego pliku w obrÄbie systemu plików.