freetable(1)
NAME
freetable - program ułatwiający tworzenie HTML-owych tabeli
WERSJA
Ten dokument opisuje freetable w wersji 2.3.
Może być nie w pełni prawidłowy jeśli używasz innej wersji.
SYNOPSIS
freetable [opcje] nazwapliku lub freetable [opcje] Dostępne opcje to : -h, --help Program wydrukuje informację o sposobie użycia i skończy -V, --version Program wydrukuje numer wersji i skończy -c, --comment Program wstawi przed każdą komórką komentarz o jej pozycji -b, --no-nbsp Program nie wstawi do pustych komórek celem wizualnego ich obniżenia na graficznych przeglądarkach -w, --warning Program wstawi ostrzeżenie że powinnaś raczej zmieniać źródło niż tabelę przed każdą tabelą, którą stworzy. -l, --location Program zamieni tagi lokacyjne <row> i <col> wewnątrz tabeli na pozycję komórki, w której wystąpią. -m, --macro [program] Program przepuści tabelę przez makroprocesor (domyślnie: m4)
OSTRZEŻENIE
- NIE UŻYWAJ MAKROPROCESORA NA NIEPEWNYM ŹRÓDLE
M4 MOŻE ZOSTAĆ UŻYTE DO NARUSZENIA TWEGO BEZPIECZEŃSTWA
WIĘCEJ INFORMACJI ZNAJDZIESZ URUCHAMIAJĄC : - info m4 'UNIX commands' syscmd
DESCRIPTION
Ten program jest wyzwolonym (wolnodostępnym) następcą wwwtable.
HTML to świetny język, ale ma straszną niedoróbę : tabele. Spędziłem
wiele czasu wpatrując się w HTMLowy kod i próbując zgadnąć, która
komórka kodu odpowiada której w przeglądarce.
Jeśli również miałeś ten problem, to być może za chwilę zostanie
rozwiązany.
- Program czyta z pliku lub ze stdin. Szuka linii zaczynającej opis
tabeli :
- <wwwtable [opcje]>
- Analizuje ten opis, wstawia poprawną HTML-ową tabelę i szuka następnego opis, aż plik się skończy.
SKŁADNIA TABELI
- Jest bardzo prosta :
- wwwtable
<wwwtable [opcje]>
[preambuła]
[komórka]
[komórka]
...
</wwwtable> - opcje będą przekazane do taga <table>. Preambuła to dowolny HTML-owy text. Będzie umieszczony bezpośrednio przed tabelą.
- komórka to albo normalna_komórka (tag <td>) albo nagłówkowa_komórka (tag <th>). Tak przynajmniej było w starszych wersjach freetable. W następnej sekcji są opisane nowe metody adresowania komórek.
normalna_komórka :
(rząd,kolumna) opcje
zawartość- nagłówkowa_komórka :
((rząd,kolumna)) opcje
zawartość - opcje będą przekazane do komórkowego taga. Atrybuty colspan i rowspan są uwzględniane podczas tworzenia tabeli.
- zawartość maże zawierać text, tagi a nawet osadzoną tabelę.
- Jeśli używasz opcji -m (lub --macro), zawartość będzie przerobiona przez m4(1), z <row> i <col> ustawionymi na adres aktualnej komórki
- rząd i kolumna mogą być zarówno liczbami, wyrażeniami względnymi, albo
regex'ami. W przeciwieństwie do wwwtable, z freetable możesz używać
regex'ów również dla komórek nagłówka. Możesz również używać *, co
znaczy dokładnie tyle co .*. - Wyrażenia względne to :
- = albo pusta znaczy : tyle samo co w poprzedniej komórce
- + albo +X znaczy : o 1 lub X więcej niż w poprzedniej komórce
- - albo -X znaczy : o 1 lub X więcej niż w poprzedniej komórce
- Jeśli wiele definicji adresuje tą samą komórkę zarówno opcje jak i
zawartość są doklejane w kolejności wystąpienia. - Jeśli chcesz używać tylko regex'ów musisz powiedzieć programowi o
adresie ostatniej komórki :
<wwwtable>
(*,1)
to są piewsze kolumny
(1,*)
to są piewsze rzędy
(4,4)
</wwwtable>
ALTERNATYWNE ADRESY KOMÓREK
Adresowanie komórek za pomocą wyrażeń regularnych jest bardzo
niewygodne. Z tego powodu, w freetable 2.0 zostały wprowadzone dwie
nowe metody. Obie mogą być użyte zarówno do komórek normalnych jak i
nagłówkowych.
Zachowana jest pełna wsteczna kompatybilność. W tym celu została
wprowadzona nowa składnia. Niestety, nie możesz adresować rzędu i
kolumny używając odmiennych metod. Żeby obejść ten problem, obie nowe
metody są bardzo tolerancyjne i pozwalają na użycie =, +, -, +X -X oraz
pustego łańcucha z tym samym znaczeniem, jakie mają one w starej
metodzie.
Nowe metody potrafią samodzielnie ustalić rozmiar tabeli.
- ZASIĘGI
- (zasięg rzędów;zasięg kolumn) opcje
zawartość - Składnia wygląda jak: 1-2,4-7,9,12. Zduplikowane adresy zostają wyeliminowane. Dla potrzeb adresowania relatywnego, użyty jest ostatni
podany numer. A więc jeśli napiszesz
(1-100,32;1)
foo
(+,)
bar- Komórka (33,1) będzie zawierać `foobar' a wszystkie pozostałe tylko
`foo'. - DOWOLNY KOD PERL
({kod dla rzędów},{kod dla kolumn}) opcje
zawartość- Możesz używać dowolnego kodu Perl o ile zmieści się w jednej linijce,
pasuje do naszego wyrażenia regularnego i da w wyniku listę. Niestety, nie istnieje wyrażenie regularne pasujące do dowolnego kodu Perl, ale
dopóki twój kod nie zawiera },{ ani }), powinno działać. Przykład:
<wwwtable>
({grep {$_%3 == 1} 1..100},{1..2,4})
foo
</wwwtable>- Da tabele 100 rzędów x 4 kolumny z `foo' w każdej 1wszej, 2giej i 4tej kolumnie każdego rzędu o numerze dającym reszte 1 w dzieleniu przez 3.
- Jeśli chcesz użyć "dowolnego kodu" w jednej częsci adresu a zasięgu w
drugiej zastąp w definicji zasięgu - przez .. i włóż zasięg między { i }. - Jeśli chcesz użyć "dowolnego kodu" w jednej częsci adresu a wyrażenia
regulernego w drugiej, musisz napisać {grep {/wyrażenie/} od..do}. Niestety, w tym wypadku musisz podać rozmiar tablicy.
NIEZGODNOŚCI Z WWWTABLE
Jeśli poprzednio używałeś wwwtable, a teraz chcesz się przesiąść,
powinieneś przeczytać ten rozdział. Większość jest o regex'ach. Zauważ
również, że wwwtable nie mógł używać podstawiania tagów lokacyjnych ani
makroprocesora.
Opcja -w ma przeciwne znaczenie. Domyślnie żadne ostrzeżenie nie jest drukowane, a -w albo --warning służą wymuszeniu takiego ostrzażenia.
- Komórki nagłówkowe mogą być zdefiniowane za pomocą regex'ów :
- ((1,*))
- Nie było to możliwe z wwwtable.
- Liczniki pozycji na osiach są 100%-owo niezależne. Wynika z tego że kod :
(*,1) width=30
(*,2) width=35
(*,3) width=40
(=,=)
Cośś- umieści Cośś w 3ciej kolumnie. Jeśli chcesz, by było w 1wszej, napisz :
(*,1) width=30
(*,2) width=35
(*,3) width=40
(=,1)
Cośś- albo
(*,) width=30
(*,+) width=35
(*,+) width=40
(=,1)
Cośś- W freetable 2.0 zostały wprowadzone dwie nowe metody adresowania komórek. Są całkowicie niezgodne z wwwtable.
BUGS
Adres typu "Dowolny Kod Perl" może nie działać ze skomplikowanym kodem.
ZOBACZ RÓWNIEŻ
mm44(1)
AUTOR
Tomasz Wegrzanowski <taw@users.sourceforge.net>
- (zarówno angielska jak i polska wersja)