Chapter 17. Seam Text
Collaboration-oriented websites require a human-friendly markup language so that formatted text can be entered easily in forum posts, wiki pages, blogs, comments, etc. Seam provides the
<s:formattedText/>
control to display formatted text that conforms to the Seam Text language. Seam Text is implemented with an ANTLR-based parser. (Experience with ANTLR is not required.)
17.1. Basic formatting
Here is a simple example:
It's easy to make *emphasized*, |monospaced|, ~deleted~, super^scripted^ or _underlined_ text.
If we display this using
<s:formattedText/>
, the following HTML will be produced:
<p> It's easy to make <i>emphasized</i>, <tt>monospaced</tt>, <del>deleted</del>, super<sup>scripted</sup> or <u>underlined</u> text. </p>
We can use a blank line to indicate a new paragraph, and
+
to indicate a heading:
+This is a big heading You /must/ have some text following a heading! ++This is a smaller heading This is the first paragraph. We can split it across multiple lines, but we must end it with a blank line. This is the second paragraph.
A simple new line is ignored — you need an additional blank line to wrap text into a new paragraph. This is the HTML that results:
<h1>This is a big heading</h1> <p> You <i>must</i> have some text following a heading! </p> <h2>This is a smaller heading</h2> <p> This is the first paragraph. We can split it across multiple lines, but we must end it with a blank line. </p> <p> This is the second paragraph. </p>
The
#
character creates items in an ordered list. Unordered lists use the =
character:
An ordered list: #first item #second item #and even the /third/ item An unordered list: =an item =another item
<p> An ordered list: </p> <ol> <li>first item</li> <li>second item</li> <li>and even the <i>third</i> item</li> </ol> <p> An unordered list: </p> <ul> <li>an item</li> <li>another item</li> </ul>
Quoted sections should be surrounded in double quotes:
He said: "Hello, how are /you/?" She answered, "Fine, and you?"
<p> He said: </p> <q>Hi, how are <i>you</i>?</q> <p> She answered, <q>Fine, and you?</q> </p>