h1.
h1. Tutorial de Textile
h2. Limbajul Textile
Pentru reguli generale despre regulile de formatare ale limbajului Textile accesati acest link: "http://hobix.com/textile/":http://hobix.com/textile/
*ATENTIE!* Evitati folosirea codului HTML in cadrul Textile.
Un text este structurat pe mai multe paragrafe. Atunci când folositi Textile, paragrafele trebuie separate de o linie alba ( goală ).
h2. Formatarea task-urilor
Acceseaza "template-ul":template/newtask pentru a vedea structura generala a unui task in cod Textile.
Structura unui task este urmatoarea:
Un întreg paragraf se poate transforma cu usurinţă într-un header, folosind sintaxa {$hn$} la începutul paragrafului, unde {$n$} este un numar de la $1$ la $6$. De exemplu, _Textile_ va interpreta linia @h1. Primul header@ ca @<h1>Primul header</h1>@ şi rezultatul va fi:
h3. Template header
h1. Primul header
La inceputul enuntului se adauga: $==Include(page="template/taskheader" task_id="*nume_task*")==$
unde $nume_task$ reprezinta numele task-ului la care lucrezi.
h2. Modificatori
h3. Alte template-uri
Pentru a scrie un text cu diferite efecte ( îngroşat, înclinat, subliniat, tăiat ) sau în diferite poziţii ( puteri sau indici ) se scrie textul care se doreşte a fi modificat între modificatorii corespunzători. În tabelul de mai jos este prezentat modul de folosire al acestora:
In cazul ca problema a fost importata de pe _infoarena 1.0_ veti vedea urmatoarea linie $==Include(page="template/raw")==$. Daca nu sunteti multumit de rezultatul final, dar nu mai aveti chef sa editati in continuare, puteti include linia $==Include(page="template/cleanup")==$
table(example). |_. Cod _Textile_|_. Cod HTML asociat|_. Rezultat |
|@**Un text îngroşat**@|@<b>Un text îngroşat</b>@|**Un text îngroşat**|
|@_Aici apare înclinat_@|@<i>Un text înclinat</i>@|_Aici apare înclinat_|
|@+Merge chiar şi subliniat+@|@<ins>Merge chiar şi subliniat</ins>@|+Merge chiar şi subliniat+|
|@-Text greşit-@|@<del>Text grşsit</del>@|-Text greşit-|
|@Pitagora: a^2^ + b^2^ = c^2^@|@Pitagora: a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>@|a^2^ + b^2^ = c^2^|
|@Chiar şi logaritmi: log ~2~ N@|@Chiar şi logaritmi: log<sub>2</sub> N@|log ~2~ N|
h3. Enunt (poveste)
In editarea enunturilor se vor respecta urmatoarele reguli: toate variabilele, constantele sau nume de fisiere se va folosi fie modificatorul *{@ $...$ @}* (in caz ca nu merge se foloseste *{@ {$...$} @}*). Daca doriti ca textul dintre modificatori sa nu fie interpretat ca Textile puteti folosi in schimb modificatorul *{@ @...@ @}*, respectiv *{{@@...@@} }* in cazul ca nu merge prima varianta.
In general, nu se foloseste bold sau alti modificatori. Daca aveti probleme cu inserarea unui anumit caracter puteti consulta aceasta "lista":http://en.wikipedia.org/wiki/List_of_HTML_decimal_character_references si sa folosit direct codul HTML de acolo.
În cazul in care rezultatele produse de limbajul de markup nu sunt cele aşteptate, se poate forţa folosirea acestor modificatori prin caracterele ${$ şi $}$ puse la începutul şi respectiv la sfârşitul secvenţei. De exemplu, @{**Text forţat**}@ are ca rezultat {**Text forţat**}.
h3. Expresii
Printre aceste caractere speciale există şi @, care opreşte formatările speciale într-o secvenţă. Exemplu: @*capşună*@ are ca rezultat *capşună*. Daca asta nu funcţionează în pasajul tău poţi să foloseşti direct 'entităti HTML':http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references. Poţi să scrii &#42;elefanţi&#42; pentru a obtine *elefanţi*.
Pentru constante se va folosi *{@$...$@}* (eg. *{@$7$@}* → $7$). Pentru ridicare se va pune exponentul intre *{@^...^@}* (eg. *$7^9^$* → $7^9^$). Pentru virgula zecimala se va folosi '*.*'. Pentru numere lungi (eg. 1234567890) este preferata gruparea cifrelor cate 3 pentru baza 10, sau cate 4 pentru bazele 2 si 16. Pentru celelalte baze decizia va apartine. Folositi un singur spatiu pentru despartirea grupelor. Exemple: $1 234 567 890$, $10 0010 1101 1011$, $A4 FAFF A9AB CDC3$, $10 333.445 56$. Pentru scrierea numerelor in baze care necesita litere se vor folosi majuscule.
h2. Liste
h3. Date de intrare/iesire
Pentru a crea o lista numerică cu Textile, este suficient să inserăm $#$ înainte de fiecare paragraf:
Titlurile de tipul "Date de intrare", "Date de iesire", etc. se scriu astfel: {@ h2. Titlu @} urmat de o linie noua. Pe linia urmatoare se mentioneaza numele fisierului de intrare, si formatul acestuia folosind conventiile de formatare de mai sus. Se va folosi majuscula doar pentru primul cuvant (formele "Date De Intrare" sau "Date de Intrare" nu sunt corecte).
@# Primul item@
@# Al doilea item@
@# Al treile item@
h3. Restrictii
va genera:
Restrictiile se pun intr-o lista nenumerotata folosind caracterul *{@*@}* la inceputul fiecarui rand. Oriunde se intalnesc variabile si constante se folosesc modificatorii mentionati (eventual pentru intregul rand). Pentru a insera ≤, <, ≥, sau > folositi codurile HTML corespunzatoare (de exemplu: {@≤@} pentru ≤ si {@≥@} pentru ≥). O lista completa de caractere speciale gasiti "aici":http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references.
# Primul item
# Al doilea item
# Al treilea item
h3. Exemple
De asemenea este posibil ca listele să fie îmbrăcate, incrementând numarul de caractere $#$. Listele vor avea o structura arborescentă:
Exemplul il veti pune intr-un tabel formatat similar celui din "template":http://www.infoarena.ro/template/newtask. Prima coloana a tabelului va fi formatata in felul urmator:
@table(example). |_. task_id.in |_. task_id.out |@
unde $task_id$ reprezinta id-ul taskului editat.
Pentru coloane aditionale veti adauga in continuare @_. nume_coloana |@ de cate ori este necesar.
Fiecare din liniile de tabel ce urmeaza se va reprezenta pe coloane, fiecare celula fiind separata prin pipe |:
{@ | coloana 1 | coloana 2 | coloana 3 | coloana 4 | @}
Se pot introduce mai multe linii intr-o singura celula a tabelului folosind, evident, new line. Daca doriti sa introduceti linii goale in tabel folositi @ @.
Se recomanda ca explicatiile exemplelor sa fie incluse separat, imediat sub tabelul cu exemple, folosind un titlu {@h3@}:
{@h3. Explicatii@}
@# Un item@
@## Alt item@
@### Alt item@
@# Al doilea item@
h3. Poze
va genera :
Pentru a introduce poze intr-un task intai este necesara atasarea lor (se foloseste link-ul _Ataseaza_ care se gaseste in coltul dreapta-sus langa _Editeaza_). Dupa ce poza e atasata aceasta se include in cod astfel: @!nume_pagina?nume_poza.extensie!@ unde @nume_pagina@ reprezinta numele paginii (spre exemplu numele acestei pagini este _textile_) si @nume_poza.extensie@ este numele sub care a fost incarcat fisierul.
# Un item
## Alt item
### Alt item
# Al doilea item
h3. Template footer
Dacă în locul listelor indexate numeric se doreşte crearea listelor cu bulete ( _bulleted lists_ ), în loc de $#$ se va folosi $*$. Regula pentru liste îmbrăcate rămâne valabilă şi aici:
Se include linia $==Include(page="template/taskfooter" task_id="*nume_task*")==$ la sfarsit unde $nume_task$ reprezinta numele task-ului la care se lucreaza.
@* Capitolul 1@
@** Capitolul 1.1@
@*** Capitolul 1.1.1@
@* Capitolul 2@
h3. Fragmente de cod
produce următorul efect :
* Capitolul 1
** Capitolul 1.1
*** Capitolul 1.1.1
* Capitolul 2
h2. Referinţe externe
Pentru a crea o referinţă către un alt site ( un _link_ ), textul descriptiv va fi plasat între ghilimele duble ($"$), urmat imediat de caracterul $:$ si de URL-ul dorit: @Link către "infoarena":http://infoarena.ro@ va fi interpretat ca "Link către "infoarena":http://infoarena.ro". Dacă un link este folosit de mai multe ori în acelaşi document sau dacă se doreşte o mai bună organizare a textului, este posibil ca URL-ul să fie specificat oriunde în document: între paranteze pătrate se va afla identificatorul unic asociat linkului, dupa care urmează adresa propriu-zisă. În momentul în care dorim să inserăm în document acel link este suficient în loc de adresa completă să introducem doar identificatorul pe care l-am asociat adresei :
@Link către "infoarena":arena@
@Al doilea link către "infoarena":arena@
@[arena]http://infoarena.ro@
are rezultatul:
Link către "infoarena":arena
Al doilea link către "infoarena":arena
[arena]http://infoarena.ro
Pentru a posta o imagine pe site, este necesar în prealabil să o salvaţi pe server. Pentru aceasta este suficient să apasaţi butonul $Ataşează$ din colţul dreapta-sus al paginii pe care o editaţi şi să selectati imaginea pe care doriţi să o transferaţi pe server. După aceea, pentru a introduce imaginea în pagină va trebui să introduceţi URL-ul ei între semnul exclamării ($!$).
Dacă am încărcat deja imaginea logo.jpg in pagină curentă,
@!documentatie/textile?logo.jpg!@ va avea rezultatul :
!documentatie/textile?logo.jpg!
h2. Tabele
Tabelele simple pot fi construite separând câmpurile lor prin caracterul $|$.
@| nume | vârstă | judeţ |@
@| Popescu | 24 | Bucureşti |@
@| Ionescu | 12 | Constanta |@
va genera tabelul de mai jos:
| nume | vârstă | judeţ |
| Popescu | 24 | Bucureşti |
| Ionescu | 12 | Constanta |
Celulele care doresc să fie făcute cap de tabel vor fi marcate iniţial printr-un _underscore_, urmat imediat de un punct.
@|_. nume |_. vârstă |_. judeţ |@
@| Popescu | 24 | Bucureşti |@
@| Ionescu | 12 | Constanta |@
va avea urmatorul rezultat:
|_. nume |_. vârstă |_. judeţ |
| Popescu | 24 | Bucureşti |
| Ionescu | 12 | Constanta |
h1. Cod <tex>\LaTeX</tex>
Atunci când dorim să introducem cod 'LaTeX':http://en.wikipedia.org/wiki/LaTeX putem folosi sintaxa:
$<tex> cod LaTeX </tex>$
De exemplu pentru codul:
$<tex>$ @d = \frac{m_0^3}{\sqrt{3-\frac{v^2}{c^2}}} + \sqrt[3]{a^2 + b^2} - \log_3 \cos \frac{\pi}{3}@ $</tex>$
se obţine următoarea imagine:
<tex> d = \frac{m_0^3}{\sqrt{3-\frac{v^2}{c^2}}} + \sqrt[3]{a^2 + b^2} - \log_3 \cos \frac{\pi}{3}</tex>
h2. Fragmente de cod
Atunci când dorim să inserăm un fragment de cod în pagina curentă, putem să folosim sintaxa:
@== code(limbaj) |@
@== code(c) |@
@...fragment de cod...@
{@==@}
Următoarele limbaje sunt suportate:
Urmatoarele limbaje sunt suportate:
* $code({@c@})$ pentru $C$
* $code(cpp)$ pentru $C++$
* $code(pas)$ pentru $Free Pascal$
* $code(java)$ pentru $Java$
* $code{@(c)@}$ pentru C
* $code(cpp)$ pentru C++
* $code(pas)$ pentru Object Pascal
* $code(java)$ pentru Java
Iată un exemplu:
Iata un exemplu:
== code(c) |
# include <stdio.h>
#include <stdio.h>
int a, b ;
int main(void) {
int a, b;
int main ( void ) {
fscanf ( fopen ( "adunare.in", "r" ), "%d %d", &a, &b ) ;
fprintf ( fopen ( "adunare.out", "w" ), "%d", a + b ) ;
freopen("adunare.in", "rt", stdin);
freopen("adunare.out", "rt", stdout);
return 0 ;
}
==
scanf("%d%d", &a, &b);
printf("%d\n", a+b);
== code(cpp) |
# include <fstream>
int a, b ;
int main ( void ) {
std :: ifstream f ( "adunare.in" ) ;
std :: ofstream g ( "adunare.out" ) ;
f >> a >> b ;
g << a + b ;
return 0;
}
==
== code(pas) |
program adunare ;
var a, b : longint ;
begin
freopen ( input, 'adunare.in' ) ; reset ( input ) ;
freopen ( output, 'adunare.out' ) ; rewrite ( output ) ;
readln ( a, b ) ;
writeln ( a + b ) ;
close ( input ) ; close ( output ) ;
end.
==
h2. Aplicarea stilurilor $CSS$
Este posibil să ataşăm cod $CSS$ elementelor in felul urmator:
table(example). |_. Cod _Textile_|_. Cod HTML asociat|_. Rezultat |
|@text %{color:red}bau!% text@|@text <span style="color:red">bau!</span> text@|text %{color:red;}bau!% text|
==