-
Notifications
You must be signed in to change notification settings - Fork 0
/
simple.html
242 lines (155 loc) · 5.94 KB
/
simple.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="keywords" content="Yaws"/>
<title>Yaws</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="stil.css"/>
<link rel="shortcut icon" href="/icons/yaws_y.gif" type="image/x-icon"/>
</head>
<body>
<div class="logo">
<img src="icons/yaws_head.gif" width="600" alt="YAWS"/>
</div>
<div id="sidebar">
<h4> Yaws </h4>
<div class=""> <a href="index.html" id="index" >Top Page</a> </div>
<div class=""> <a href="configuration.html" id="configuration">Build Config and Run</a></div>
<div class=""> <a href="dynamic.html" id="dynamic" >Dynamic Content</a> </div>
<div class=""> <a href="https://github.com/erlyaws/yaws/releases/" id="download">Download </a> </div>
<div class=""> <a href="contact.html" id="contact">Contact </a> </div>
<div class=""> <a href="doc.html" id="doc">Documentation</a> </div>
<div class=""> <a href="articles.html" id="resources">Articles</a> </div>
<h4> Examples </h4>
<div class=""> <a href="/json_intro.html">AJAX/JSON RPC</a></div>
<div class=""> <a href="/appmods.html">Appmods</a> </div>
<div class=""> <a href="/arg.html">Arg</a> </div>
<div class=""> <a href="/privbind.html">Binding to Privileged Ports</a></div>
<div class=""> <a href="/bindings.html">Bindings</a> </div>
<div class=""> <a href="/cgi.html">CGI</a></div>
<div class=""> <a href="/session.html">Cookie Sessions</a> </div>
<div class=""> <a href="/cookies.html">Cookies</a> </div>
<div class=""> <a href="/dynamic.html">Dynamic Content</a> </div>
<div class=""> <a href="/embed.html">Embedding Yaws</a></div>
<div class=""> <a href="/upload0.html">File Upload</a> </div>
<div class=""> <a href="/form.html">Forms</a> </div>
<div class=""> <a href="/haxe_intro.html">haXe Remoting</a></div>
<div class=""> <a href="/pcookie.html">Persistent Cookies</a> </div>
<div class=""> <a href="/query.html">Query Part of URL</a></div>
<div class=""> <a href="/rebar_release.html">Rebar Releases</a></div>
<div class=""> <a href="/redirect.html">Redirect</a> </div>
<div class=""> <a href="/server_sent_events.html">Server-Sent Events</a> </div>
<div class=""> <a href="/ssi.html">Server Side Includes</a> </div>
<div class="choosen"> <a href="/simple.html">Simple</a> </div>
<div class=""> <a href="/soap_intro.html">SOAP with Yaws</a></div>
<div class=""> <a href="/stream.html">Streaming Data</a> </div>
<div class=""> <a href="/websockets.html">Web Sockets</a> </div>
<a href="/shoppingcart/index.html">Tiny Shopping Cart</a>
<div class=""> <a href="/yapp_intro.html">Yaws Applications (yapps)</a></div>
<div class=""> <a href="/logger_mod.html">Write Your Own Logger</a></div>
<h4> Misc </h4>
<div class=""> <a href="/internals.html">Internals</a> </div>
</div>
<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.html">simple_ex1.yaws</a> contains the following
HTML code.
</p>
<br><br>
<div class="box"> <pre>
<html>
<h1>Hello world </h1>
</html>
</pre></div>
<br>
<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.html">simple_ex2.yaws</a> contains the following
HTML code.</p>
<br><br>
<div class="box"> <pre>
<html>
<h1> Yesssssss </h1>
<erl>
out(Arg) -> {html, "<h2> Hello again </h2>"}.
</erl>
</html>
</pre></div>
<br>
<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.html">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.html">simple_ex3.yaws as ehtml</a>
</p>
<br><br>
<div class="box"> <pre>
<html>
<h1> Yesssssss </h1>
<erl>
out(Arg) -> {ehtml, [{h2, [{class, "foo"}], "Hello yet again"}]}.
</erl>
</html>
</pre></div>
<br>
<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.html">simple_ex4.yaws</a>
</p>
<br><br>
<div class="box"> <pre>
<html>
<h1> simple ex 3</h1>
<erl>
out(Arg) -> {html, f("Printing the arg structure :"
"~n<pre>~p~n</pre>~n", [Arg])}.
</erl>
</html>
</pre></div>
<br>
<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>
<div class="logo">
<img src="/icons/yaws_pb.gif" alt="pbyaws" />
</div>
<p>
<a href="https://validator.w3.org/check?uri=referer"><img
src="https://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" height="31" width="88" /></a>
</p>
</body>
</html>