version 2
=============================================================
[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
version 2.x
===============================================================
menu: Pouvoir changer l'id "actif". Exemple li.active avec twitter bootstrap.
a custom class for the selected menu item
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
news page (en oubliant le tag de fin) Genit ne dis
rien et ajoute silencieusement le
. Voir si on peut lui faire
cracher une erreur.
Quand je fais reférence à une url interne inexistante, il serait bon
d'avoir une erreur
si j'écris (au lieu de
) Genit ne dis rien, le tag est ignoré.
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 `` 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.
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:
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 `` tag of a particular page,
we can write (anywhere in the page but it's more readable at the beginning):
#### Styles folder
Everything that is related to the design of the site goes here.
To include a particular css file in the `` tag of a particular page,
we can write (anywhere in the page but it's more readable at the beginning):
#### 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:
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
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