SeamFramework.orgCommunity Documentation

Capitolo 17. Seam Text

17.1. Formattazione di base
17.2. Inserire codice e testo con caratteri speciali
17.3. Link
17.4. Inserire codice HTML

I siti web orientati alla collaborazione tra utenti richiedono un linguaggio per marcare in modo comprensibile il testo formattato da inserire nei post di un forum, nelle pagine wiki, nei commenti, ecc. Seam fornisce il controllo <s:formattedText/> per mostrare il testo formattato in modo conforme con il linguaggio Seam Text. Seam Text è realizzato utilizzando un interprete basato su ANTLR. Comunque non c'è bisogno di sapere niente di ANTLR per utilizzarlo.

Ecco un semplice esempio:

E' semplice rendere il testo *evidenziato*, |a spaziatura fissa|,
~cancellato~, sovra^scritto^ o _sottolineato_.

Se mostriamo questo testo usando <s:formattedText/>, otteniamo il seguente codice HTML:


E' semplice rendere il testo *evidenziato*, |a spaziatura fissa|,
~cancellato~, sovra^scritto^ o _sottolineato_.

E' possibile usare una riga vuota per indicare un nuovo paragrafo e un + per indicare un titolo:

+Questo è un grande titolo
/Dovrai/ avere del testo dopo il titolo!
 
++Questo è un titolo più piccolo
Questo è il primo paragrafo. Lo possiamo dividere in più 
righe, ma per terminarlo serve una riga vuota.

Questo è il secondo paragrafo.

(Notare che un semplice a-capo viene ignorato, è necessaria una riga vuota per avere il testo in un nuovo paragrafo). Questo è il codice HTML risultante:


<h1
>Questo � un grande titolo</h1>
<p>
<i
>Dovrai</i
> avere del testo dopo il titolo!
</p>
 
<h2
>Questo � un titolo pi� piccolo</h2>
<p>
Questo � il primo paragrafo. Lo possiamo dividere in pi� 
righe, ma per terminarlo serve una riga vuota.
</p>

<p>
Questo � il secondo paragrafo.
</p
>

Le liste ordinate sono generate dal carattere #. Le liste non ordinate dal carattere =:

Una lista ordinata:
        
#prima voce
#seconda voce
#e anche la /terza/ voce

Una lista non ordinata:

=una voce
=un'altra voce

<p>
Una lista ordinata:
</p>
 
<ol
>       
<li
>prima voce</li>
<li
>seconda voce</li>
<li
>e anche una <i
>terza</i
> voce</li>
</ol>

<p>
Una lista non ordinata:
</p>

<ul>
<li
>una voce</li>
<li
>un'altra voce</li>
</ul
>

I brani con citazioni devono essere racchiusi tra virgolette:

L'altro ragazzo disse:
        
"Nyeah nyeah-nee 
/nyeah/ nyeah!"

Ma cosa pensi abbia voluto dire con "nyeah-nee"?

<p>
L'altro ragazzo disse:
</p>
        
<q
>Nyeah nyeah-nee
<i
>nyeah</i
> nyeah!</q>

<p>
Ma cosa pensi abbia voluto dire con <q
>nyeah-nee</q
>?
</p
>

Caratteri speciali come *, | e #, e anche i caratteri HTML come <, > e & possono essere inseriti usando il carattere di escape\:

E' possibile scrivere equazioni come 2\*3\=6 e tag HTML
come \<body\
> usando il carattere di escape: \\.

<p>
E' possibile scrivere equazioni come 2*3=6 e tag HTML
come &lt;body&gt; usando il carattere di escape: \.
</p
>

Ed è possibile citare blocchi di codice usando l'apice inverso (purtroppo l'apice inverso non c'è nella tastiera italiana, ndt):

Il mio codice non funziona:

`for (int i=0; i<100; i--)
{
    doSomething();
}`

Qualche idea?

<p>
Il mio codice non funziona:
</p>

<pre
>for (int i=0; i&lt;100; i--)
{
    doSomething();
}</pre>

<p>
Qualche idea?
</p
>

Notare che la formattazione in linea a spaziatura fissa considera sempre i caratteri speciali (la maggior parte del testo formattato a spaziatura fissa in effetti è codice o tag con molti caratteri speciali). Così, ad esempio, è possibile scrivere:

Questo è un |<tag attribute="value"/>| esempio.

senza bisogno di usare il carattere di escape per i caratteri all'interno del brano formattato a spaziatura fissa. Lo svantaggio è che non è possibile formattare il testo in linea a spaziatura fissa in altri modi (corsivo, sottolineato, e così via).

Un link può essere creato utilizzando la seguente sintassi:

Vai al sito web di Seam [=
>http://jboss.com/products/seam].

Oppure, se si vuole specificare il testo del link:

Vai al [sito web di Seam=
>http://jboss.com/products/seam].

Per gli utenti esperti è possibile anche personalizzare l'interprete Seam Text in modo da comprendere i link in formato wiki scritti usando questa sintassi.

Il testo può anche includere un certo sottoinsieme limitato di HTML (non c'è da preoccuparsi, il sottoinsieme è stato scelto in modo da essere sicuro rispetto alla possibilità di attacchi di tipo cross-site scripting). Questo è utile per creare dei link:


Potresti voler fare un link a <a href="http://jboss.com/products/seam"
>qualcosa di
forte</a
>, oppure includere un'immagine: <img src="/logo.jpg"/>

E per creare delle tabelle:


<table>
    <tr
><td
>Nome:</td
><td
>Gavin</td
></tr>
    <tr
><td
>Cognome:</td
><td
>King</td
></tr>
</table
>

Ma è possibile fare molto di più, volendo!