Specificaties voor SimpleSite 0.50

Auteur: Arjan Scherpenisse
Datum:16 December 1999
Versie: 0.50

THIS SPECIFICATIONS ARE OBSOLETE. THEY ARE HERE FOR THE SAKE OF HISTORY ONLY.


Beheer van secties / items

Elke pagina (content folder) heeft precies 1 mogelijkheid om een lijst te maken in deze versie. Een lijst heeft een hierarchie van twee nivo's, als eerste de secties (sections) met daarin een x aantal items. Elke losse sectie kan een stuk beschrijving hebben zowel boven als onderaan de sectie (de section header en footer).

Tussen sectie header en footer komt de (sub)lijst van items die in de desbetreffende sectie horen. Een item bestaat uit een aantal bij elkaar horende key-value paren die volgens een zogenaamd "item template" worden geformatteerd. De items kunnen dus _niet_ expliciet afzonderlijk worden geformatteerd.

De opmaak van sectie header, sectie footer, item template et cetera wordt in het theme bepaald. Elk theme bestaat dus uit een set standaard templates waarmee de content van elke content folder wordt geformatteerd.

Elke content folder heeft wel de mogelijkheid om deze 'default look' te overriden. Een bepaalde content folder kan een speciale opmaak vereisen voor bijvoorbeeld de sectie header omdat de content folder bepaalde key-value paren heeft die niet in het standaard template voorkomen. Deze 'overrides' zijn ook weer afhankelijk van het gebruikte theme, en worden daarom in subdirectories onder de root van het betreffende theme geplaatst.

Bijvoorbeeld: er is een bepaalde content folder met de naam 'news'. Hierin is elke sectie een apart nieuws item. Hiervoor moet de default layout voor de sectie header en footer overridden worden voor deze pagina. Voor het default theme komen de aan de nieuws-pagina aangepaste sectie header en footer in de volgende bestanden te staan:

Het formaat van deze bestanden is precies gelijk aan het formaat van een normaal bestand in een theme met dezelfde naam, het is dus gewoon een HTML snippet met eventuele key/value referenties.


Beheer van properties

Elke site heeft bepaalde properties die de content van de site bepalen. Als de gebruiker geen overrides pleegt op de properties, dan worden de volgende properties verondersteld:

Property override files

Op elk kan een content folder deze default properties overriden. Dit wordt gedaan door in de root van de content folder een aantal bestanden te maken waarin de namen van de nieuwe properties staan, eventueel met een default waarde. De namen van deze bestanden zijn als volgt:

Elk van deze bestanden is een tekstbestand waar op elke regel de naam van de property staat (de key) en daarachter na een dubbele punt de default waarde die wordt ingevuld als er geen expliciete waarde aan deze property is gegeven in het property data file. Regels beginnend met een hekje worden beschouwd als commentaar. Values kunnen over meerdere fysieke regels worden verspreid door ze tussen <-- en -->'s te zetten.

Property data files

Op elk niveau wordt voor de property files een generiek bestandsformaat gebruikt. Het bestand is een tekstbestand, met op elke regel een property / value paar. De property wordt van de value gescheiden door de eerste dubbele punt die de parser op de regel voorkomt. Een voorbeeld van een geldige regel:

title: Nieuws pagina
Maar ook deze:
text: Op deze nieuws pagina vindt U: bla bla bla

Regels die beginnen met een # (hekje) worden voor commentaar gezien en dus overgeslagen bij het parsen. Regels waar geen dubbele punt in voorkomen en die geen commentaar zijn leveren een waarschuwing van het systeem op.

De bestanden die de feitelijke data voor de properties bevatten zijn de volgende:

Property referenties

Het nut van de properties in pagina's is dat ze de pagina consistent maken en het geheel makkelijk onderhoudbaar maken. Het nut is dan ook dat ze in de html-templates die in het theme worden gebruikt aangeroepen kunnen worden. Hiervoor is een speciale tag gereserveerd, en wel de volgende:

<!var name>

Een property reference die door de parser niet wordt vertaald omdat er geen bijbehorende waarde is gevonden wordt voor de gebruiker verborgen omdat de tag tussen punthaken staat.