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)