Commits

Goulwen Reboux committed 35ffbd1

Now using py-markdown 2.0 (not py-markdown2 !)
Now using TOC and codehilite

Comments (0)

Files changed (6)

+syntax: glob
+.DS_Store
+*.elc
+*.pyc
+*.kpf
+*~

build/administration.html

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
+<head>
+    <title>administration</title>
+    <link rel="stylesheet" href="css/screen.css" />
+</head>
+<body>
+  <div class="toc">
+    <ul></ul>
+
+  </div>
+  <div>
+    <div class="main"><h1>Administration</h1>
+
+<h2>Concepts généraux de l'administration</h2>
+<p>L'administration du site CreActive Place a été générée à partir de la
+   fonctionnalité "admin-generator" de symfony et reprend l'interface générée
+   automatiquement.
+</p>
+
+<h3>Accès à l'administration</h3>
+<p>L'administration est protégée par un authentification.
+</p>
+<p>Pour accéder à l'administration, saisir dans la barre d'adresses l'adresse
+   <a href="http://creactiveplace.eu/admin.php/">http://creactiveplace.eu/admin.php/</a>
+</p>
+<p>Saisir alors le nom utilisateur et le mot de passe. Vous pouvez cliquer sur la
+   case à cocher "Se souvenir de moi" si vous n'utilisez pas un ordinateur partagé.
+   Ainsi, lors du prochain accès à l'administration, vous n'aurez pas à vous
+   reconnecter.
+</p>
+
+<h3>Navigation entre les différents modules de l'administration</h3>
+<p>Dans la partie supérieure de l'administration, une série de boutons permet de
+   naviguer à l'intérieur de l'administration.
+</p>
+<p>Les boutons sont ordonnées dans l'ordre d'importance pour CreActive Place:
+</p>
+<ul>
+ <li>
+     Événements: permet d'ajouter, supprimer et modifier des événements, ainsi que
+     de suivre les réservations.
+ </li>
+
+ <li>
+     Conférences: permet d'ajouter, supprimer et modifier des conférences qui sont
+     liées aux événements.
+ </li>
+
+ <li>
+     Lieux: permet d'ajouter, supprimer et modifier des lieux où sont organisés des
+     événements.
+ </li>
+
+ <li>
+     Partenaires: permet d'ajouter, supprimer et modifier des partenaires soutenant
+     l'organisation d'un événement
+ </li>
+
+ <li>
+     Experts: permet d'ajouter, supprimer et modifier des experts.
+ </li>
+
+ <li>
+     Documents: 'ajouter, supprimer et modifier des documents (news, informations
+     légales, etc.)
+ </li>
+
+ <li>
+     Utilisateurs: permet d'ajouter, supprimer et modifier les utilisateurs qui ont
+     accès à l'administration.
+ </li>
+</ul>
+
+<h3>La vue en liste</h3>
+<p>Tous les modules se présentent donc sous la forme de listes qui peuvent être
+   triées et filtrées.
+</p>
+
+<h4>Présentation de la liste</h4>
+<p>Chaque ligne de la liste comprend à l'extrémité droite deux liens pour modifier
+   et supprimer l'item correspondant.
+</p>
+<p>En bas, de la liste, le nombre total d'items présents selon le filtrage est
+   indiqué sur la gauche. Si le nombre total d'items est supérieur au nombre
+   d'items affichables sur une page, une pagination est affichée avec des liens
+   première page, page précédente, page suivante et dernière page.
+</p>
+<p>En dessous de la liste, les options sont disponibles:
+</p>
+<ul>
+ <li>
+     Un menu déroulant qui permet d'effectuer des actions en batch sur la liste.
+ </li>
+
+ <li>
+     Un ou plusieurs liens permettent d'effectuer des actions (Créer un nouvel
+        item, etc.)
+ </li>
+</ul>
+
+<h4>Le tri de la liste</h4>
+<p>La liste est triable en cliquant sur les entêtes de colonnes. Un premier clic
+   trie selon l'ordre ascendant, un second clic permet de trier selon un ordre
+   descendant.
+</p>
+<p>Cependant, il n'est pas possible de trier selon une colonne customisée. Ceci est
+   une limitation de l'"admin-generator" de symfony qui n'est pas contournable.
+</p>
+
+<h4>Filtrage de la liste</h4>
+<p>La liste est filtrable selon des options pertinentes selon le module. Une fois
+   les filtres correctements paramétrés, cliquer sur le bouton "Filtrer". Les
+   paramètres sont stockés pour toute la durée de la session. Ainsi, d'un accès à
+   une sur l'autre, les filtres sont automatiquement appliqués.
+</p>
+<p>Il est possible de réinitialiser le filtre en cliquant sur le bouton "Effacer".
+</p>
+
+<h4>Actions en batch</h4>
+<p>Les actions en batch permettent de modifier plusieurs items de la liste en une
+   seule fois. Par défaut, tous les modules de l'administration permettent de
+   supprimer plusieurs items à la fois.
+</p>
+
+<h3>La vue d'édition</h3>
+<p>La vue d'édition permet de créer et de modifier un item.
+</p>
+<p>Lors de la création d'un item, il est possible de créer l'item en cliquant sur
+   le bouton "Mettre à jour" ou de créer l'item et d'afficher à nouveau le
+   formulaire de création en cliquant sur le bouton "Mettre à jour et ajouter".
+</p>
+
+<h4>Conseils</h4>
+<p>Lorsque le besoin s'en fait sentir, des conseils sont affichés sous le champ de
+   formulaire vous faciliter la saisie.
+</p>
+
+<h2>Modules</h2>
+
+<h3>Événements</h3>
+
+<h3>Conférences</h3>
+
+<h3>Lieux</h3>
+
+<h3>Partenaires</h3>
+
+<h3>Experts</h3>
+
+<h3>Documents</h3>
+
+<h3>Utilisateurs</h3></div>
+  </div>
+</body>
+</html>

build/css/codehilite.css

+.codehilite .hll { background-color: #404040 }
+.codehilite  { background: #202020; color: #d0d0d0 }
+.codehilite .c { color: #999999; font-style: italic } /* Comment */
+.codehilite .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.codehilite .g { color: #d0d0d0 } /* Generic */
+.codehilite .k { color: #6ab825; font-weight: bold } /* Keyword */
+.codehilite .l { color: #d0d0d0 } /* Literal */
+.codehilite .n { color: #d0d0d0 } /* Name */
+.codehilite .o { color: #d0d0d0 } /* Operator */
+.codehilite .x { color: #d0d0d0 } /* Other */
+.codehilite .p { color: #d0d0d0 } /* Punctuation */
+.codehilite .cm { color: #999999; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */
+.codehilite .c1 { color: #999999; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
+.codehilite .gd { color: #d22323 } /* Generic.Deleted */
+.codehilite .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #d22323 } /* Generic.Error */
+.codehilite .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #589819 } /* Generic.Inserted */
+.codehilite .go { color: #cccccc } /* Generic.Output */
+.codehilite .gp { color: #aaaaaa } /* Generic.Prompt */
+.codehilite .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
+.codehilite .gt { color: #d22323 } /* Generic.Traceback */
+.codehilite .kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #6ab825 } /* Keyword.Pseudo */
+.codehilite .kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #6ab825; font-weight: bold } /* Keyword.Type */
+.codehilite .ld { color: #d0d0d0 } /* Literal.Date */
+.codehilite .m { color: #3677a9 } /* Literal.Number */
+.codehilite .s { color: #ed9d13 } /* Literal.String */
+.codehilite .na { color: #bbbbbb } /* Name.Attribute */
+.codehilite .nb { color: #24909d } /* Name.Builtin */
+.codehilite .nc { color: #447fcf; text-decoration: underline } /* Name.Class */
+.codehilite .no { color: #40ffff } /* Name.Constant */
+.codehilite .nd { color: #ffa500 } /* Name.Decorator */
+.codehilite .ni { color: #d0d0d0 } /* Name.Entity */
+.codehilite .ne { color: #bbbbbb } /* Name.Exception */
+.codehilite .nf { color: #447fcf } /* Name.Function */
+.codehilite .nl { color: #d0d0d0 } /* Name.Label */
+.codehilite .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */
+.codehilite .nx { color: #d0d0d0 } /* Name.Other */
+.codehilite .py { color: #d0d0d0 } /* Name.Property */
+.codehilite .nt { color: #6ab825; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #40ffff } /* Name.Variable */
+.codehilite .ow { color: #6ab825; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #666666 } /* Text.Whitespace */
+.codehilite .mf { color: #3677a9 } /* Literal.Number.Float */
+.codehilite .mh { color: #3677a9 } /* Literal.Number.Hex */
+.codehilite .mi { color: #3677a9 } /* Literal.Number.Integer */
+.codehilite .mo { color: #3677a9 } /* Literal.Number.Oct */
+.codehilite .sb { color: #ed9d13 } /* Literal.String.Backtick */
+.codehilite .sc { color: #ed9d13 } /* Literal.String.Char */
+.codehilite .sd { color: #ed9d13 } /* Literal.String.Doc */
+.codehilite .s2 { color: #ed9d13 } /* Literal.String.Double */
+.codehilite .se { color: #ed9d13 } /* Literal.String.Escape */
+.codehilite .sh { color: #ed9d13 } /* Literal.String.Heredoc */
+.codehilite .si { color: #ed9d13 } /* Literal.String.Interpol */
+.codehilite .sx { color: #ffa500 } /* Literal.String.Other */
+.codehilite .sr { color: #ed9d13 } /* Literal.String.Regex */
+.codehilite .s1 { color: #ed9d13 } /* Literal.String.Single */
+.codehilite .ss { color: #ed9d13 } /* Literal.String.Symbol */
+.codehilite .bp { color: #24909d } /* Name.Builtin.Pseudo */
+.codehilite .vc { color: #40ffff } /* Name.Variable.Class */
+.codehilite .vg { color: #40ffff } /* Name.Variable.Global */
+.codehilite .vi { color: #40ffff } /* Name.Variable.Instance */
+.codehilite .il { color: #3677a9 } /* Literal.Number.Integer.Long */
+/* Global reset, based on Eric Meyer
+  (http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/)*/
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font,
+img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd,
+ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead,
+tr, th, td {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  outline: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+/* remember to define focus styles! */
+:focus {
+  outline: 0;
+}
+
+body {
+  color: #363636;
+  font-family: arial ;
+  font-size: 0.85em ;
+  line-height: 0.9em;
+  margin: 0px;
+  padding: 0px ;
+}
+
+code {
+  background: #DEDEDE ;
+  font-family: monospace ;
+  font-size: 1.3em ;
+  line-height: 1.3em ;
+  padding: 3px ;
+}
+
+em {
+  color: #9f1f21 ;
+}
+
+html {
+  background-color: rgb(238, 238, 238);
+}
+
+h1 {
+  font-size: 1.8em ;
+  font-weight: bold ;
+  line-height: 1.8em ;
+}
+
+  h1 a {
+    color: #FFFFFF ;
+    text-decoration: none ;
+  }
+
+h2 {
+  font-size: 1.5em ;
+  font-weight: bold ;
+  line-height: 1.5em ;
+  margin: 8px 0 2px 16px ;
+}
+
+h3 {
+  font-size: 1.2em ;
+  font-weight: bold ;
+  line-height: 1.2em ;
+  margin: 8px 0 2px 16px ;
+}
+
+h4 {
+  font-size: 1.1em ;
+  line-height: 1.1em ;
+  margin: 4px 0 2px 16px ;
+  font-style: italic ;
+}
+
+hr.clear {
+  clear:   both ;
+  visibility: hidden;
+  height:  0 ;
+  margin:  0 ;
+  padding: 0 ;
+  width:   0 ;
+}
+
+p {
+  line-height: 1.4em ;
+  margin: 4px 0 2px 16px ;
+}
+
+pre {
+  overflow: auto ;
+  padding: 5px ;
+}
+
+strong {
+  font-weight:  bold ;
+}
+
+table {
+  margin: 4px 0 2px 16px ;
+}
+
+td, th {
+  padding: 2px ;
+}
+
+input[type="text"] {
+  width: 500px !important ;
+}
+
+textarea {
+  width: 500px !important ;
+  height: 150px ;
+}
+
+ul, ol {
+  margin: 4px 0 2px 32px ;
+}
+
+  ul li, ol li {
+    line-height: 1.2em ;
+    margin: 0px 0px 4px 16px ;
+  }
+
+ul.error_list {
+  color: red ;
+}
+
+#body-header {
+  background: #757878  ;
+  color: #FFFFFF ;
+  height: 100px ;
+}
+
+  #body-header.admin {
+    background: #757878  ;
+    color: #FFFFFF ;
+    height: 70px ;
+  }
+
+  #body-header h1 {
+    background: url('../images/logo.png') no-repeat ;
+    display: block;
+    height: 100px ;
+    text-indent: -9999px ;
+    width: 350px;
+    /*padding: 5px*/
+  }
+
+    #body-header.admin h1 {
+      background: transparent ;
+      color: #FFFFFF ;
+      height: 40px ;
+      text-decoration: none ;
+      text-indent: 0px ;
+      padding: 5px
+    }
+
+      #body-header.admin a h1 {
+        color: #FFFFFF ;
+        text-decoration: none ;
+      }
+
+  #body-header ul#body-header-common-menu {
+    float: right ;
+  }
+
+    #body-header ul#body-header-common-menu li {
+      display: inline-block ;
+      padding: 0 5px ;
+    }
+
+      #body-header ul#body-header-common-menu li a {
+        color: silver ;
+      }
+
+  #body-header ul#body-header-primary-menu, #body-header p {
+    background: silver ;
+    clear: both ;
+    display: block ;
+    height: 28px ;
+    margin: 0 ;
+    padding: 0 25px;
+  }
+
+  #body-header p {
+    padding: 6px 9px; ;
+  }
+
+    #body-header ul#body-header-primary-menu li {
+      display: inline-block ;
+      font-weight: bold ;
+    }
+
+    #body-header ul#body-header-primary-menu li a {
+      display: inline-block ;
+      padding: 6px 9px;
+    }
+
+    #body-header ul#body-header-primary-menu li a:link, #body-header ul li a:visited {
+      color: #757878 ;
+      text-decoration: none ;
+    }
+
+      #body-header ul#body-header-primary-menu li a:active,
+      #body-header ul#body-header-primary-menu li a:focus,
+      #body-header ul#body-header-primary-menu li a:hover {
+        background: #A1A5AA ;
+        color: #FFFFFF ;
+        text-decoration: none ;
+        border-bottom: 3px solid #EEEEEE;
+      }
+
+    #body-header ul#body-header-primary-menu li.active {
+      background: #e21f21 ;
+    }
+
+      #body-header ul#body-header-primary-menu li.active a {
+        color: #FFFFFF ;
+      }
+
+        #body-header ul#body-header-primary-menu li.active a:active,
+        #body-header ul#body-header-primary-menu li.active a:focus,
+        #body-header ul#body-header-primary-menu li.active a:hover {
+          background: #9f1f21;
+          border-bottom: 3px solid #FFFFFF;
+        }
+
+    #body-header ul#body-header-primary-menu ul.options {
+      margin: 0;
+      padding: 0 ;
+    }
+
+
+      #body-header ul#body-header-primary-menu ul.options li {
+        background: #A1A5AA ;
+        display: block ;
+        font-size: 1em ;
+        font-weight: normal;
+        margin: 0;
+        padding: 0 ;
+      }
+
+        #body-header ul#body-header-primary-menu ul.options li a {
+          display: block;
+          border-bottom: none !important;
+        }
+
+          #body-header ul.options li a:active,
+          #body-header ul.options li a:focus,
+          #body-header ul.options li a:hover {
+            background: #363636
+          }
+
+            #body-header ul.options li a:active,
+            #body-header ul.options li a:focus,
+            #body-header ul.options li a:hover {
+              background: #9f1f21
+            }
+
+    #body-header  ul li.active ul.options li {
+      background: #e21f21 ;
+    }
+
+    #body-header ul.none {
+      display: none ;
+    }
+
+#body-content {
+  clear: both ;
+  margin: 25px ;
+  min-width: 970px ;
+}
+
+
+#sf_admin_bar {
+  float: right ;
+  margin: 0 5px 0 0 ;
+}
+
+#sf_admin_container {
+  background: #FFFFFF ;
+  padding: 5px ;
+}
+
+  #sf_admin_container p, #sf_admin_container ul, #sf_admin_container ol {
+    padding: 5px 250px 5px 5px  ;
+  }
+
+  #sf_admin_container a {
+    color: #A1A5AA ;
+  }
+
+    #sf_admin_container a:active,
+    #sf_admin_container a:focus,
+    #sf_admin_container a:hover {
+      color: #757878 ;
+      text-decoration: none ;
+    }
+
+  #sf_admin_container h1 {
+    border-bottom: 1px solid silver ;
+    color: #757878 ;
+    font-size: 1.5em;
+    line-height: 1.5em;
+    margin: 0 0 5px 0 ;
+    padding: 0 0 2px 0;
+  }
+
+  #sf_admin_container th {
+    background: #757878;
+    color: #FFFFFF ;
+    font-weight: bold ;
+    padding: 5px ;
+  }
+
+    #sf_admin_container th a {
+      color: #FFFFFF ;
+      padding: 0 ;
+    }
+
+      #sf_admin_container th a:active,
+      #sf_admin_container th a:focus,
+      #sf_admin_container th a:hover {
+        background: transparent ;
+        color: #FFFFFF ;
+        padding: 0 ;
+      }
+
+  #sf_admin_container tr {
+    background: none ;
+  }
+
+  #sf_admin_container td {
+    border-bottom: 1px solid silver ;
+    padding: 3px ;
+  }
+
+    #sf_admin_container tr:hover {
+      background: none ;
+    }
+
+  #sf_admin_container ul li
+  {
+
+  }
+
+
+  #sf_admin_container .radio_list, #sf_admin_container .checkbox_list {
+    margin: 0;
+    padding: 10px;
+  }
+  
+    #sf_admin_container .radio_list li, #sf_admin_container .checkbox_list li{
+      float: left ;
+    }
+  
+      #sf_admin_container .radio_list li input,
+      #sf_admin_container .checkbox_list li input {
+        float: left !important ;
+      }
+  
+      #sf_admin_container .radio_list li label,
+      #sf_admin_container .checkbox_list li label {
+        float: left !important ;
+        padding:0 0 0 5px;
+      }
+
+
+#sf_admin_list_batch_actions {
+  width: 20px ;
+}
+
+#sf_admin_list_th_actions{
+  min-width: 150px ;
+}
+
+label {
+  vertical-align: top ;
+}
+
+label[for="expert_photo_delete"] {
+  /*float: right !important ;*/
+  width: 100% !important ;
+}
+
+.add {
+  background: url('/sf/sf_admin/images/add.png') no-repeat ;
+  border: none ;
+  height: 0px ;
+  padding: 16px ;
+  text-indent: -999px ;
+  width: 0px ;
+}
+
+.block {
+  display: block
+}
+
+.category {
+  color: #e21f21 ;
+  font-size: 0.8em;
+}
+
+.codehilite {
+  margin: 2px 250px 2px 16px ;
+}
+
+.codehilite span {
+  line-height: 1.3em ;
+}
+
+.picture_block {
+  padding: 5px 0 5px 130px ;
+}
+
+.delete {
+  background: url('/sf/sf_admin/images/delete.png') no-repeat ;
+  border: none ;
+  height: 0px ;
+  padding: 16px ;
+  text-indent: -999px ;
+  width: 0px ;
+}
+
+.right {
+  display:     inline-block ;
+  text-align: right ;
+}
+
+.help {
+  padding: 5px ;
+}
+
+.none {
+  display: none ;
+}
+
+.sf_admin_list {
+  margin-right: 270px ;
+}
+
+  .sf_admin_list table {
+    width: 100% ;
+  }
+
+  .sf_admin_list_th_event {
+    min-width: 150px;
+  }
+
+  .sf_admin_list_th_title {
+    min-width: 150px;
+  }
+
+  .sf_admin_list_th_author {
+    min-width: 120px;
+  }
+
+  .sf_admin_list_th_start_date {
+    min-width: 120px;
+  }
+
+.sf_admin_form_row div ul {
+  margin-left: 120px ;
+}
+
+  .sf_admin_form_row div ul li {
+    list-style-type: none ;
+  }
+
+  .sf_admin_form_row div ul li label {
+    display: block !important ;
+    padding: 0 0 8px 14px;
+    text-indent: 0 !important;
+  }
+
+
+.strong {
+  color: #e21f21 ;
+  font-weight: bold ;
+}
+
+.toc {
+  float: right;
+  left: 0px ;
+  position: relative ;
+  top: 35px ;
+  width: 250px  ;
+  /*display: none;*/
+}
+
+.toc ul {
+  margin: 0 0 0 10px !important;
+  padding: 0 !important;
+}
+
+.tooltip {
+  color: #666666 ;
+  font-size: 0.8em;
+}
+
+
+/* hide the request password for CSS3 compatible browsers */
+form a[href$="request_password"] {
+  display: none ;
+}
+
+/* Tiny MCE */
+table.mceLayout a {
+  background: none !important ;
+  padding: 0 0 0 0 !important ;
+}
+.syntax .hll { background-color: #ffffcc }
+.syntax  { background: #f8f8f8; }
+.syntax .c { color: #8f5902; font-style: italic } /* Comment */
+.syntax .err { color: #a40000; border: 1px solid #ef2929 } /* Error */
+.syntax .g { color: #000000 } /* Generic */
+.syntax .k { color: #204a87; font-weight: bold } /* Keyword */
+.syntax .l { color: #000000 } /* Literal */
+.syntax .n { color: #000000 } /* Name */
+.syntax .o { color: #ce5c00; font-weight: bold } /* Operator */
+.syntax .x { color: #000000 } /* Other */
+.syntax .p { color: #000000; font-weight: bold } /* Punctuation */
+.syntax .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
+.syntax .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */
+.syntax .c1 { color: #8f5902; font-style: italic } /* Comment.Single */
+.syntax .cs { color: #8f5902; font-style: italic } /* Comment.Special */
+.syntax .gd { color: #a40000 } /* Generic.Deleted */
+.syntax .ge { color: #000000; font-style: italic } /* Generic.Emph */
+.syntax .gr { color: #ef2929 } /* Generic.Error */
+.syntax .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.syntax .gi { color: #00A000 } /* Generic.Inserted */
+.syntax .go { color: #000000; font-style: italic } /* Generic.Output */
+.syntax .gp { color: #8f5902 } /* Generic.Prompt */
+.syntax .gs { color: #000000; font-weight: bold } /* Generic.Strong */
+.syntax .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.syntax .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
+.syntax .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */
+.syntax .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */
+.syntax .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */
+.syntax .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */
+.syntax .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */
+.syntax .kt { color: #204a87; font-weight: bold } /* Keyword.Type */
+.syntax .ld { color: #000000 } /* Literal.Date */
+.syntax .m { color: #0000cf; font-weight: bold } /* Literal.Number */
+.syntax .s { color: #4e9a06 } /* Literal.String */
+.syntax .na { color: #c4a000 } /* Name.Attribute */
+.syntax .nb { color: #204a87 } /* Name.Builtin */
+.syntax .nc { color: #000000 } /* Name.Class */
+.syntax .no { color: #000000 } /* Name.Constant */
+.syntax .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */
+.syntax .ni { color: #ce5c00 } /* Name.Entity */
+.syntax .ne { color: #cc0000; font-weight: bold } /* Name.Exception */
+.syntax .nf { color: #000000 } /* Name.Function */
+.syntax .nl { color: #f57900 } /* Name.Label */
+.syntax .nn { color: #000000 } /* Name.Namespace */
+.syntax .nx { color: #000000 } /* Name.Other */
+.syntax .py { color: #000000 } /* Name.Property */
+.syntax .nt { color: #204a87; font-weight: bold } /* Name.Tag */
+.syntax .nv { color: #000000 } /* Name.Variable */
+.syntax .ow { color: #204a87; font-weight: bold } /* Operator.Word */
+.syntax .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
+.syntax .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */
+.syntax .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */
+.syntax .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */
+.syntax .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */
+.syntax .sb { color: #4e9a06 } /* Literal.String.Backtick */
+.syntax .sc { color: #4e9a06 } /* Literal.String.Char */
+.syntax .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
+.syntax .s2 { color: #4e9a06 } /* Literal.String.Double */
+.syntax .se { color: #4e9a06 } /* Literal.String.Escape */
+.syntax .sh { color: #4e9a06 } /* Literal.String.Heredoc */
+.syntax .si { color: #4e9a06 } /* Literal.String.Interpol */
+.syntax .sx { color: #4e9a06 } /* Literal.String.Other */
+.syntax .sr { color: #4e9a06 } /* Literal.String.Regex */
+.syntax .s1 { color: #4e9a06 } /* Literal.String.Single */
+.syntax .ss { color: #4e9a06 } /* Literal.String.Symbol */
+.syntax .bp { color: #3465a4 } /* Name.Builtin.Pseudo */
+.syntax .vc { color: #000000 } /* Name.Variable.Class */
+.syntax .vg { color: #000000 } /* Name.Variable.Global */
+.syntax .vi { color: #000000 } /* Name.Variable.Instance */
+.syntax .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */
 #!/usr/bin/env python
 # coding=utf-8
-
 """
 This a quick manual generator written as Sphinx was broken on my computer. So I
 decide to write a this script that converts a Markdown file to an HTML file.
 import os.path
 import codecs
 import markdown
-from BeautifulSoup import BeautifulSoup
+import HTMLParser
 import re
 
 #settings
 source_path = PROJECT_PATH + '/source'
 template_file = PROJECT_PATH + '/templates/base.html'
 
+class headersParser(HTMLParser.HTMLParser):
+    def __init__(self):
+        HTMLParser.HTMLParser.__init__(self)
+        self.headers = []
+        self.headers_positions = []
+        self.in_header = False
+        self.pattern = re.compile('h1|h2')
+
+    def handle_endtag(self, tag):
+        if self.pattern.match(tag):
+            self.in_header = False
+
+    def handle_data(self, data):
+        if self.in_header == True:
+            self.headers.append(data)
+
+    def handle_starttag(self, tag, attrs):
+        if self.pattern.match(tag):
+            self.headers_positions.append(self.getpos())
+            self.in_header = True
+
 def browse():
     """
     Browse the "source" directory
             convert(file_name)
     print 'Markdown files successfully converted to HTML'
 
-def build_toc(content) :
-    """
-    Build the toc from the headers tags found in the content
-    """
-    toc = ''
-    soup = BeautifulSoup(content)
-    headers = soup.findAll(re.compile('^h.*'))
-    for header in headers:
-        header.insert(0, 'tagada')
-
-    print(headers)
-
-    return '<ul>' + soup + '</ul>\n'
-
 
 def convert(file_name) :
     """
-    Do the actual conversion. We open the markdown file, convert it to them and
+    Do the actual conversion. We open the markdown file, convert it to HTML and
     place it into the template
     """
     global template
-    print file_name
     input_file = codecs.open(source_path + '/' + file_name,
                              mode="r",
                              encoding="utf8")
     text = input_file.read()
-    content = markdown.markdown(text)#, extensions
-    #wrap the content into a unique root as it will be required by ElementTree
-    content = '<div class="main">%(content)s</div>' % { 'content' : content }
-    toc = build_toc(content)
+    content = markdown.markdown(text, ['codehilite', 'toc(title=Table des matieres)']) #, extensions
+    #toc = build_toc(content)
 
     build_name = file_name[0:file_name.rfind('.')]
-    html = template % {'title': build_name, 'content': content, 'toc': toc }
+    html = template % {'title': build_name.capitalize(), 'content': content}
 
     output_file = codecs.open(build_path + '/' + build_name + '.html',
                               "w",
     Replace template blocks with Python formatting
     """
     global template
-    blocks = ['title', 'content', 'toc']
+    blocks = ['title', 'content']
     template = open(template_file, 'r').read()
     for block in blocks:
         template = template.replace('{{' + block + '}}', '%(' + block + ')s')