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.