Jako, że nowe narzędzia ociekają finezją w porównaniu do starego Smart Text Converter'a dobrze będzie jeśli będzie do tego jakiś ładny i składny opis jak one działają. Nie przynudzając dłużej przejdę do omawiania mechanizmu służącego do tworzenia tabeli symetrycznej.
Co to jest tabela symetryczna?
Tabelą symetryczną określam tabelę, która posiada tyle samo kolumn w każdym wierszu tabeli.
Pierwotne założenie znacznika [csv]
Założeniem pierwotnym znacznika [csv] było umożliwienie tworzenia w prosty sposób tabeli na stronie. Tworzenie tabeli starym mechanizmem było toporne i żenujące, więc trzeba było wymyślić coś
prostego i wygodnego w użyciu. Z czasem jednak okazało się, że fajnie by było jeśli również ta prostota i wygoda umożliwiała również wykorzystywanie wszystkich dostępnych mechanizmów STC wewnątrz tabel. To wszystko obecnie umożliwia nam znacznik [csv], więc teraz wystarczy się dowiedzieć jak z tego wszystkiego korzystać.
Najprostszym formatem tekstowym w którym przechowywano dawniej np. listę kontaktów GG jest plik w formacie *.csv. CSV charakteryzuje się tym, że każda kolejna komórka oddzielona jest średnikiem, natomiast znak entera oznacza przejście do nowego rekordu. Tak jest również i tu. Jeżeli chcemy użyć średnika, bądź znaku nowego wiersza w komórce, możemy objąć całą zawartość wiersza ująć w cudzysłów, tj. " ... ". Jeżeli chcemy użyć cudzysłowia wewnątrz wspomnianej konstrukcji to musimy go zapisać podwójnie, tj. "", co spowoduje wyświetlenie jednego cudzysłowa.
Dokumenty *.csv można również generować za pomocą Excel'a. Wystarczy utworzyć dokument, a następnie zapisać jako plik *.csv, po czym otworzyć plik za pomocą notatnika. Znacznik ten poradzi sobie z treścią, którą wygeneruje nam program Excel.
Sprawa więc zapowiada się banalnie i tak właśnie jest:
Powyższa tabela została wygenerowana za pomocą następującego zapisu:
[csv]a;b;c;d;
1;2;3;4;
w;x;y;z;[/csv]
Parametry znacznika [csv ...]
Ważną cechą znacznika [csv] jest fakt, że może on przyjmować parametry takie jak:
extended oraz
header. Znaczenie parametrów przedstawiam poniżej.
Parametr header
Użycie tego parametru pozwala nam na stworzenie tabeli, która posiada nagłówek. Pierwszy wiersz jest nagłówkiem, natomiast kolejne to normalne komórki tabeli. Jeśli parametr nie zostanie wpisany, pierwszy wiersz zostanie potraktowany jak cała reszta - innymi słowy będzie zbiorem normalnych komórek tabeli. Przykład:
Powyższa tabela została wygenerowana za pomocą następującego zapisu:
[csv header]a;b;c;d;
1;2;3;4;
w;x;y;z;[/csv]
Parametr extended (ext)
Parametr uaktywnia
możliwość włączenia parsera STC dla wybranej komórki. Aby włączyć parser STC w wybranej komórce należy użyć znaczników [run] ... [/run]. Jeśli nie zostanie wywołany tryb extended znacznik [run] zostanie potraktowany jak zwykły tekst. Warto też w tym miejscu dodać, że gdy został użyty znacznik
ext i nie chcemy wejść w tryb [run] to należy go poprzedzić backslashem, czyli należy napisać \[run].
Używaj trybu ext rozsądnie
Pamiętaj, że znak [ jest znakiem specjalnym w trybie ext i jeśli będziesz wklejał jakiś plik *.csv w którym będą występowały zapisy \[ to backslashe nie zostaną wyświetlone, które występują bezpośrednio przed [. Rozwiązaniem tego problemu jest dopisanie drugiego slasha przed zapisem \[ tj. wpisanie \\[ albo nie używanie trybu
extended jeśli nie potrzebujemy w tabeli używać znacznika [run].
Pisanie wielowierszowe
Jeśli chcemy pisać wielowierszowo bez użycia znacznika [run] to musimy całą zawartość komórki umieścić w cudzysłów. Przykład:
[csv]bla;"ble
ble";ok;
zium;dwa;trzy[/csv]
Efekt:
Używanie cudzysłowów
Jeśli chcemy użyć znaku cudzysłowa należy go zdublować, tj. napisać dwukrotnie "". Kod, który jest umieszczony wewnątrz sekcji [run] rządzi się własnymi prawami, więc ta uwaga nie dotyczy tego co piszemy wewnątrz tagów [run]...[/run].
Przykład działania #1
Treść zaformatowana
Treść źródłowa
[csv]Bla
[run]ok[/run]
[run]ok[/run]
[/csv]
Przykład działania #2
Treść zaformatowana
Treść źródłowa
[csv extended header]\\Bla;cośtam;
[run][b]ok[/b][code src="C++"]#include <cstdio>
int main()
{
printf("Jakis tekst\n");
return 0;
}
[/code]
[/run];opis kodu;
[run]ok[/run];koniec;
[/csv]