Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

106 lines (72 sloc) 2.515 kB
<erl>
out(A) ->
{ssi, "TAB.inc", "%%",[{"simple", "choosen"}]}.
</erl>
<div id="entry">
<h2>Hello world</h2>
<p>
The absolutely most simple example is a HTML file which doesn't contain
any embedded erlang code at all.
</p>
<p>
The file <a href="simple_ex1.yaws">simple_ex1.yaws</a> contains the following
HTML code.
</p>
<erl>
out(A) -> yaws_api:pre_ssi_files(A#arg.docroot, ["/simple_ex1.yaws"]).
</erl>
<p>
Since the file has the suffix <tt>.yaws</tt>, the file will be processed
by the Yaws dynamic compiler, but since no embeddded erlang code is found,
the data from the file will be delivered untouched.</p>
<h2> Hello world again </h2>
<p>
The file <a href="simple_ex2.yaws">simple_ex2.yaws</a> contains the following
HTML code.</p>
<erl>
out(A) -> yaws_api:pre_ssi_files(A#arg.docroot, ["/simple_ex2.yaws"]).
</erl>
<p>
The file has one very simple function which just returns a tuple
<tt>{ok, String} </tt></p>
<p>
The String will be substituted into the delivered HTML data instead of the
Erlang code.</p>
<h2> And yet again </h2>
<p>
The file <a href="simple_ex2.yaws">simple_ex2.yaws</a> returns
html embedded as a string. A tighter coupling to Erlang is
provided by a construct known as "ehtml".
As in <a href="simple_ex3.yaws">simple_ex3.yaws as ehtml</a>
</p>
<erl>
out(A) -> yaws_api:pre_ssi_files(A#arg.docroot, ["/simple_ex3.yaws"]).
</erl>
<h2>Print the #arg record</h2>
<p> When writing yaws code, all classic erlang libraries are available,
however, the module <tt>yaws_api</tt> which is included in the load path
for yaws modules contains an number of usefule functions, here is a small
example in <a href="simple_ex4.yaws">simple_ex4.yaws</a>
</p>
<erl>
out(A) -> yaws_api:pre_ssi_files(A#arg.docroot, ["/simple_ex4.yaws"]).
</erl>
<p>The above code illustrates two points:
<ul>
<li>
<p>
The function <tt>f/1</tt> which is available in the <tt>yaws_api</tt>
module. It's just a shortcut convenience to <tt>io_lib:format/2</tt>. The
<tt>yaws_api</tt> module contains many convenience functiond for yaws coders.</p></li>
<li>
<p>
The second point is a printout of the #arg record which is passed
to the <tt>out/1</tt> function. If you take the time to work with yaws,
the Arg passed to the out/1 functions will become very familiar.
It is the main mechanism which is used to pass data from the webserver to
the application. </p></li>
</ul>
</div>
<erl>
out(A) -> {ssi, "END2",[],[]}.
</erl>
Jump to Line
Something went wrong with that request. Please try again.