Scroll to navigation

FREETABLE(1) Freetable 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Ż

m4(1)

AUTOR

Tomasz Wegrzanowski <taw@users.sourceforge.net>
(zarówno angielska jak i polska wersja)
2013-10-23 perl v5.18.1