glob2-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[glob2-devel] olaf mini doc


From: Gabriel Walt
Subject: [glob2-devel] olaf mini doc
Date: Wed, 26 Feb 2003 14:39:04 +0100

OLAF MINI DOC, en attendant mieux:

Olaf est donc un moteur de site web qui parse des fichiers txt ayant une
syntaxe qui doit etre facilement comprehensible. Le but de ces fichiers txt
est de refleter la structure de la page et non leur esthetique, comme le xml
c'est juste que j'aime pas le xml. De plus le xml n'est pas pratique pour
generer du html, car si tu utilises tout de meme du html dans tes fichiers
txt, tu ne peux pas facilement distinguer les deux languages. Par contre les
\{} sont rares dans les sources d'une page web... Et puis vive les synatxes
latex ou c!

Par contre, tu ne peux pas imbriquer des elements dans la syntaxe olaf,
genre \e1{bla \e2{bli} bla}. Ce qui peut poser des problemes pour des
element complexes, comme des tableaux. Mais a ce moment, soit il faut faire
un element olaf special prevu pour contenir les arguments de cet element
complexe, ou alors, si la complexite devient trop grande alors ca n'a plus
de sens d'essayer de simplifer et l'utilisateur doit recourir au html (p.ex.
grace au tag \code). De plus, le but est de pouvoir facilement faire une
version ou la structure contenue dans les fichiers txt soit contenue dans
une base de donnees, d'ou aussi l'impossibilite d'imbriquer et la necessite
d'avoir des tags de taille fixe (en fait la taille variable des tags n'est
qu'une simplification, pour ne pas avoir a re-ecrire 15 fois le meme tag qui
recommence).

Pour tout de meme faire des petits extra a l'intierieur d'un texte, il y a
une serie de tags genre \Bgras\b, ou \L=public/page2/page2b\l pour un lien
interne, ou \Lhttp://gnu.org/\l pour un lien externe, ou encore
\Lhttp://gnu.org/\xGNU\l pour specifier le nom du lien, etc.

Sinon, une fois qu'olaf a genere toute la page, il en refait un eval. Ce qui
permet de tout de meme avoir des pages dynamiques (genre un forum), malgre
qu'il y ait un cache. Donc en fait, olaf ne genere pas une page html, mais
une page php.

Au niveau du code, je me suis dit que ca ne sert a rien de faire un truc
super generique, car chaque site a toujours besoin de features specifiques
qui sont en suite trop chiantes a integrer dans un truc tout joli, tout
clean, et tout finalise. Donc olaf parse les fichiers que tu lui demandes,
puis tu te demerdes avec la structure en memoire qu'il a genere pour en
faire ton site web. En suite il y a un certain nombre de fonctions qui te
simplifient la vie, genre parser les arguments et en fonction de root.txt,
decider le la page et de la langue (voir des authorisations dans une autre
version d'olaf). Il y a aussi plusieurs fonctions qui mettent la structure
parsee sous une forme ou une autre, ou la creation d'un menu de tel ou tel
type.

Tu generes ta page d'une facon tout a fait traditionelle en php, et olaf a
en fait demarre un output buffer au debut. A la fin, il reccupere ce buffer,
demarre un nouveau buffer gzip si le navigateur le supporte et evalue la
page precedement generee. Finalement il met cette page dans un fichier de
cache.

----

Si vous avez des questions dites le, ca me permettra de completer cette doc.

Gabriel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]