Evènements et foyers
-Pas d'évènements prévus à ce jour :(
-diff --git a/aurore.py b/aurore.py
index 9a6790c..ffb5244 100644
--- a/aurore.py
+++ b/aurore.py
@@ -1,10 +1,86 @@
+from datetime import date
from flask import Flask, render_template
+from markdown2 import markdown_path
+from os import walk
+from os.path import join
+
app = Flask(__name__)
+md_path = 'markdown'
@app.route('/')
-def accueil():
- return render_template('index.html')
+def home():
+ """
+ Route principale du site.
+
+ Pour le dynamisme du site, le changement de page est fait en javascript du cote client. Il s'agit donc de la seule
+ route du site. Il faut cependant charger les evenements sur la page car il s'agit du seul element dynamique du site.
+ On vient donc chercher les fichiers Markdown correspondant aux evenements et on les fournits a 'render_template' qui
+ va generer la page finale.
+
+ :return: La page 'index.html' avec les events
+ """
+ mds = load_mardown_files()
+ return render_template('index.html', mds=mds)
+
+
+def del_links(html):
+ """
+ Supprime les balises de liens () dans le code HTML.
+
+ La fonction parcours l'ensemble du code caractère par caractère. Il commence par rechercher le debut de la balise
+ ouvrante (''). S'il a trouve une balise ouvrante il cherche alors une balise
+ fermante (''). Tout le texte du texte HTML reste intact mis à part la balise ouvrante et la balise fermante
+ qui sont supprimees.
+
+ :param html: Code HTML où les balises doivent etre supprimees.
+ :return: Le code HTML initial mais sans balises de liens
+ """
+ new_html = ""
+ i = 0
+ opened = False
+ while i < len(html) - 4: # La recherche de la balise fermante ne doit pas entrainer une erreur
+ if html[i:i + 3] == "": # Fin de la balise ouvrante
+ i += j + 1
+ break
+ opened = True
+ elif html[i:i + 4] == "" and opened: # Balise fermante
+ i += 4
+ opened = False
+ else:
+ new_html += html[i]
+ i += 1
+ return new_html
+
+
+def load_mardown_files():
+ """
+ Charge les fichiers markdowns correspondant aux evenements.
+
+ La fonction parcour l'ensemble des fichiers dans le dossier 'md_path'. Elle commence par verifier que l'extention
+ est correcte puis qu'il y a bien le bon nombre d'elements dans le nom du fichier (jour_mois_annee_titre.md). Elle
+ va alors recuperer la date, le titre, l'article et generer une description a partir de ce dernier.
+
+ :return: Liste de tuple contenant les informations necessaires des fichiers markdowns sous la forme :
+ (date, titre, description, article)
+ """
+ mds = []
+ for r, d, f in walk(md_path):
+ for file in f:
+ if file[-3:] == '.md': # Il s'agit d'un fichier markdown
+ split = file.split('_')
+ if len(split) == 4: # Son nom a le bon format : jour_mois_annee_titre.md
+
+ day, month, year, title = split
+ title = title[:-3] # Retrait de l'extension
+ event_date = date(int(year), int(month), int(day))
+ article = markdown_path(join(md_path, file))
+ description = del_links(article)
+
+ mds.append((event_date, title, description, article))
+ return mds
if __name__ == '__main__':
diff --git a/markdown/07_05_2019_Test3.md b/markdown/07_05_2019_Test3.md
new file mode 100644
index 0000000..478beca
--- /dev/null
+++ b/markdown/07_05_2019_Test3.md
@@ -0,0 +1,24 @@
+Heading Test 3
+==============
+
+A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
+ A [link][example].
+
+ [example]: http://example.com
\ No newline at end of file
diff --git a/markdown/10_05_2019_Test.md b/markdown/10_05_2019_Test.md
new file mode 100644
index 0000000..7968fc1
--- /dev/null
+++ b/markdown/10_05_2019_Test.md
@@ -0,0 +1,33 @@
+Heading
+=======
+
+## Sub-heading
+
+Paragraphs are separated
+by a blank line.
+
+Two spaces at the end of a line
+produces a line break.
+
+Text attributes _italic_,
+**bold**, `monospace`.
+
+Horizontal rule:
+
+---
+
+Bullet list:
+
+ * apples
+ * oranges
+ * pears
+
+Numbered list:
+
+ 1. wash
+ 2. rinse
+ 3. repeat
+
+> Markdown uses email-style > characters for blockquoting.
+
+Inline HTML is supported.
\ No newline at end of file
diff --git a/markdown/12_05_2019_Tést2.md b/markdown/12_05_2019_Tést2.md
new file mode 100644
index 0000000..cb7f682
--- /dev/null
+++ b/markdown/12_05_2019_Tést2.md
@@ -0,0 +1,37 @@
+Heading Test 2
+==============
+
+## Sub-heading
+
+Paragraphs are separated
+by a blank line.
+
+Two spaces at the end of a line
+produces a line break.
+
+Text attributes _italic_,
+**bold**, `monospace`.
+
+Horizontal rule:
+
+---
+
+Bullet list:
+
+ * apples
+ * oranges
+ * pears
+
+Numbered list:
+
+ 1. wash
+ 2. rinse
+ 3. repeat
+
+A [link][example].
+
+ [example]: http://example.com
+
+> Markdown uses email-style > characters for blockquoting.
+
+Inline HTML is supported.
\ No newline at end of file
diff --git a/templates/events.html b/templates/events.html
index ba30a4e..7efff5a 100644
--- a/templates/events.html
+++ b/templates/events.html
@@ -1,4 +1,23 @@
Pas d'évènements prévus à ce jour :(Evènements et foyers
-
Pas d'évènements prévus à ce jour :(
+ {% endif %} + + +{% if mds %} + {% for md in mds %} +