segunda-feira, 5 de maio de 2008

web-scheme for dummies

web-scheme é uma extensão do sistema do sistema Chicken que implementa uma linguagem de programação baseada em Scheme para a Web.

web-scheme disponibiliza funções para a geração de código HTML a partir de código Scheme. Exemplo:

(div 'id "caixa" "Texto")

produz a string

<div  id="caixa">Texto</div>

Todas as tags de HTML são representadas como funções em Scheme de mesmo nome, exceto nomes conflitantes, como, por exemplo, map e select (nomeadas ws:map e ws:select, respectivamente).

Além da representação de tags HTML como funções em Scheme, web-scheme também disponibiliza algumas funções que podem facilitar a geração de código HTML.

Um exemplo é a função ws:page, para gerar páginas HTML de forma desburocratizada. Exemplo:

(ws:page "Oi")

gera a seguinte string com código HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
</head>
<body>Oi</body>
</html>

É possível alterar o código HTML gerado por ws:page através do uso de parâmetros. Por exemplo, o conjunto de caracteres da página pode ser alterado com o parâmetro charset:

(ws:page "Oi" charset: "utf-8")

produz

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body>Oi</body>
</html>

Outro exemplo é a função ws:make-table, que usa como argumento uma lista de listas representando uma tabela:

(ws:make-table '((1 2 3) (4 5 6)))

produz

<table><tr><td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr><td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>

Além dessas, há várias outras funções, macros e parâmetros com documentação no site da extensão.

Nenhum comentário: