Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

104 lines (80 sloc) 3.399 kb
<erl>
out(A) ->
[{ssi, "TAB.inc","%%",[{"index", "choosen"}]},
{ehtml,
[{'div', [{id, "entry"}],
[{h1,[],"Yaws"},
{p,[],"Yaws is a HTTP high perfomance 1.1 webserver particularly"
" well suited for dynamic-content web applications. Two
separate modes of operations are supported:"},
{ul,[],
[{li,[],
{p,[],"Standalone mode where Yaws runs as a regular webserver "
"daemon. This is the default mode."}},
{li,[],
{p,[], "Embedded mode where Yaws runs as an embedded webserver in "
"another Erlang application."}}
]},
{p,[], ["Yaws is entirely written in ",
{a, [{href, "http://www.erlang.org"}], "Erlang"},
", and furthermore it is a multithreaded webserver where one "
"Erlang lightweight process is used to handle each client."]},
{p,[], "The main advantages of Yaws compared to other Web technologies"
" are performance and elegance. The performance comes from the "
" underlying Erlang system and its ability to handle concurrent "
" processes in an efficent way. Its elegance comes from Erlang as "
"well. Web applications don't have to be written in ugly ad hoc "
"languages."},
{h2,[], "yaws.hyber.org"},
{p,[], ["The www page for Yaws is ",
{a ,[{href,"http://yaws.hyber.org"}], "yaws.hyber.org"},
". The documentation, examples as well as releases can be "
"found there, and of course, ",
{a ,[{href,"http://yaws.hyber.org"}],"yaws.hyber.org"},
" is itself powered by Yaws."]},
{p,[], ["A mailing list exists at: ",
{a,[{href,"https://lists.sourceforge.net/lists/listinfo/""erlyaws-list"}],
"https://lists.sourceforge.net/lists/listinfo/erlyaws-list"}]},
{p, [], ["A lot of excellent"
" engineers have contributed to Yaws over the years, "
"we keep a list of all "
,{a ,[{href,"contributors.txt"}], "contributors"}
]},
{p, [], ["A high resolution logo created by Tomas Selander exists at ",
{a, [{href, "yaws.eps"}], "yaws.eps"}]},
{h2, [], "News"},
{p, [], ["To see all the most recent changes and activity in Yaws "
"development, please visit the ",
{a, [{href, "https://github.com/klacke/yaws"}],
"Yaws github repository"}, "."]},
gen_news(A)]}]},
{ssi, "END2",[],[]}].
gen_news(A) ->
case file:open(A#arg.docroot ++ "/news",[read]) of
{ok, Fd} ->
gen_news(Fd, io:get_line(Fd,''));
Err ->
{p,[], f("No news: ~p",[Err])}
end.
gen_news(Fd, eof) ->
file:close(Fd),
[];
gen_news(Fd, Line) ->
Items = gen_items(Fd, io:get_line(Fd, '')),
case Items of
[] ->
gen_news(Fd, io:get_line(Fd,''));
_ ->
X = [{'div', [{class, "news"}],
[{h3, [], Line},
{ul, [], Items}]}
],
[X | gen_news(Fd, io:get_line(Fd,''))]
end.
gen_items(Fd, [10]) ->
[];
gen_items(Fd,eof) ->
[];
gen_items(Fd,Line) ->
[{li, [], {p, [], Line}} |gen_items(Fd, io:get_line(Fd, ''))].
</erl>
Jump to Line
Something went wrong with that request. Please try again.