Jednou z prvních věcí kterou jsem udělal bylo napsání šablony stránky. Tato slouží k tomu abych oddělil vnější 'design' od vnitřního obsahu stránky. V první fázi se jedná o triviální způsob kdy šablona, tedy vnější obal, je tvořena dvěma funkcemi. První vypíše do stdout 'hlavičku' tedy část html kódu před tělem stránky a druhá pak na závěr 'patičku' jenž dokončí obalení těla stránky. Princip je následující. Pokud zvolíme například jednoduchý tabulkový design kde stránka má graficky vypadat takto
+---------------------------------------+
| logo | titulek | user |
|------+-------------------------+------|
| Menu |
|---------------------------------------|
| |
| obsah |
| |
| |
| |
|---------------------------------------|
| rcsinfo copyright |
+---------------------------------------+Pak html kód stránky:
<html>
<head>
<title>titulek</title>
</head>
<body>
<table>
<tr>
<td>logo</td>
<td>titulek</td>
<td>user</td>
</tr>
<tr>
<td>menu</td>
</tr>
<tr>
<td>
--------------------------------
obsah
--------------------------------
</td>
</tr>
<tr>
<td>rcsinfo copyright</td>
<tr>
</table>
</body>
</html>Tak tento vzor rozdělíme v místě obsahu na části jak napovídají čáry. První část kódu bude vložena do funkce 'template_header' a poslední do funkce 'template_footer' například tímto způsobem
function template_header() {
cat <<EOF
...html kód první části...
EOF
}
function template_footer() {
cat <<EOF
...html kód poslední části...
EOF
}Kód generující jednotlivé stránky pak bude vpadat takto
function page_prvni() {
template_header
... generování obsahu stránky ...
template_footer
}Tento primitivní způsob použití šablony stránky rozdělené na hlavičku a patičku nám v začátku postačí a přitom nám dá dostatečně silný nástroj na vytváření webu s potřebnou úpravou. Zásah do hlavičky/patičky se pak projeví na všech vytvářených stranách.