TODO in genit-1.0.1 vs TODO in genit-2.0

- old
+ new

@@ -1,25 +1,190 @@ -BUG -================ +version 2 +============================================================= -Un site HTML5 compilé -> le résultat du doctype, head, etc. est un mélange -de html5 et xhtml. +[done] improve the layout folder structure +[done] html5 uniquement +[done] ajouter un serveur +[done] config file should not be hidden +[done] retirer alsa et yui +[done] error msg when template is malformed -Update docs to reflect the fact that all tags MUST be closed. +version 2.x +=============================================================== +menu: Pouvoir changer l'id "actif". Exemple li.active avec twitter bootstrap. +a custom class for the selected menu item -messages warning ----------------- +use haml +use sass/scss or less +Document the genit tag and its attributes + +think about a deamon to auto-compile + +think about a pager for the news + +Think about i18n + +per page script + +per page style + +--minimize option for the compile command + si j'écris <h1>news page (en oubliant le tag de fin) Genit ne dis rien et ajoute silencieusement le </h1>. Voir si on peut lui faire -cracher un warning (ou une erreur si pas possible warning). +cracher une erreur. Quand je fais reférence à une url interne inexistante, il serait bon -d'avoir un warning. +d'avoir une erreur -dans le dossier page on accepte uniquement .html et .markdown (warning) - si j'écris </br> (au lieu de <br/>) Genit ne dis rien, le tag est ignoré. -Voir si on peut lui faire cracher un warning (ou une erreur si pas possible warning). +Voir si on peut lui faire cracher une erreur. +Pouvoir utiliser les news avec markdown. + +dans le dossier page on accepte uniquement .html et .markdown (sinon erreur) + + + + +Project guidelines +================== + +Basic objectives +---------------- + +At a minimum, Genit should allow to do this : + + + include typical sections: + - header + - footer + - sitemap + - menu + + generate the RSS feed (with all news, or only a certain number) + + generate news section (with all news, or only a certain number) + + include different css files per page + + include different script files per page + + generate different `<meta>` per page (title, keywords, etc.) + +Implementation +-------------- + +### Create a project + +We use the following command line : + + genit create my-site + cd my-site + +#### Project structure + + my-site/ + fragments/ + news/ + 2011-06-19.markdown + pages/ + index.markdown + scripts/ + styles/ + alsa/ + all.css + yui/ + all.css + handheld.css + print.css + screen.css + images/ + templates/ + main.html + menu.html + www/ + +#### Fragments folder + +Here we are some fragments, pieces of page. + + <genit class="fragment" file="foo.markdown" /> + +A fragment can be included in any page you want. + +Thinking in page fragment help to modularize the xthml code, like any other "real" programing language. + +#### News folder + +To include the X latest news: + + <genit class="news" number="5" /> + +Without number attribute, we include all news. + +The news are marked with the file name, which is the date. +I know it allows only one daily news, but for a static web site, I see +no problem. + +#### Pages folder + +All site pages are in this folder. Written in .html or .markdown. + + +#### Scripts folder + +I think to include prototype and scriptaculous by default, but: + + * If you don't want to use javascript, don't use it. + * You can use any framework you want. + +To include a script in the `<head></head>` tag of a particular page, +we can write (anywhere in the page but it's more readable at the beginning): + + <genit class="script" file="foo.js" /> + + +#### Styles folder + +Everything that is related to the design of the site goes here. + +To include a particular css file in the `<head></head>` tag of a particular page, +we can write (anywhere in the page but it's more readable at the beginning): + + <genit class="css" file="foo.css" /> + +#### Templates folder + +This is the wrapper(s) for all your site pages. Other frameworks may call it 'layout'. + +Only written in .html. +For now, there is only two templates: the 'main.html' and the 'menu.html'. + +To include a page in the template: + + <genit class="pages" /> + +Some sections are found on the vast majority of web sites : header, footer, +main menu, bottom menu, left side, right side and sitemap. To include those +sections we'll write + + <genit class="header" /> + <genit class="footer" /> + etc. + +#### www folder + +The "compiled" project will go here. + +TODO il serait peut-être bien d'avoir une option pour changer ce nom de dossier ? + +### Compiling the project + +The following command will generate the web site in the www folder: + + genit compile + +A shortcut: + + genit cc + +The --minimize option minimize the size of the file, good for production phase: + + genit compile --minimize