diff options
Diffstat (limited to 'tools/page-generator.py')
-rw-r--r-- | tools/page-generator.py | 78 |
1 files changed, 46 insertions, 32 deletions
diff --git a/tools/page-generator.py b/tools/page-generator.py index bde61a0..1257a73 100644 --- a/tools/page-generator.py +++ b/tools/page-generator.py @@ -1,7 +1,7 @@ import os articles_path = 'articles/' -generate_path = 'archives/' +generate_path = 'pages/' atom_content = "" index_content = "<h2>Articles</h2><ul>" @@ -41,53 +41,67 @@ def parsemd(filename): # Vérifie si on est dans une citation elif line.startswith(">"): if inquote: - content['content'] += "</blockquote>\n" - - content['content'] += "<blockquote>" + line.lstrip("> ") - inquote = True + content['content'] += parseline(line.lstrip("> ")) + else: + content['content'] += "<blockquote>" + parseline(line.lstrip("> ")) + inquote = True # Vérifie si on est dans un listing elif line.startswith("-"): if inul: content['content'] += "</li>\n" - content['content'] += "<li>" + line.lstrip("- ") + content['content'] += "<li>" + parseline(line.lstrip("- ")) else: - content['content'] += "<ul><li>" + line.lstrip("- ") + content['content'] += "<ul><li>" + parseline(line.lstrip("- ")) inul = True # Vérifie si on est dans un titre elif line.startswith("###"): - content['content'] += "<h3>" + line.lstrip("# ") + "</h3>\n" + content['content'] += "<h3>" + parseline(line.lstrip("# ")) + "</h3>\n" elif line.startswith("##"): - content['content'] += "<h2>" + line.lstrip("# ") + "</h2>\n" + content['content'] += "<h2>" + parseline(line.lstrip("# ")) + "</h2>\n" elif line.startswith("#"): - content['title'] += line.lstrip("# ") + content['title'] += parseline(line.lstrip("# ")) # Sinon, on est dans un paragraphe elif line != " " and line != "": - # Vérifie si on a des italiques ou gras - while '*' in line: - line = line.replace('*', '<i>', 1) - line = line.replace('*', '</i>', 1) - while '**' in line: - line = line.replace('**', '<b>', 1) - line = line.replace('**', '</b>', 1) - - # Vérifie si on a des images - while '![' in line and ']' in line: - title = line.split(']')[0].split('[')[1] - link = line.split(']')[1].split('(')[1].split(')')[0] - line = line.replace('', '<img src="' + link + '" alt="' + title + '"/>') - - # Vérifie si on a des liens - while '[' in line and ']' in line: - title = line.split(']')[0].split('[')[1] - link = line.split(']')[1].split('(')[1].split(')')[0] - line = line.replace('[' + title + '](' + link + ')', '<a href="' + link + '">' + title + '</a>') - content['content'] += "<p>" + line + "</p>\n" + content['content'] += "<p>" + parseline(line) + "</p>\n" + # Vérification que chaque balise est bien fermée + if inquote: + content['content'] += "</blockquote>\n" + inquote = False + + if inul: + content['content'] += "</li></ul>\n" + inul = False + + if inpre: + content['content'] += "</code></pre>\n" + inpre = False return content - +def parseline(line): + # Vérifie si on a des italiques ou gras + while '*' in line: + line = line.replace('*', '<i>', 1) + line = line.replace('*', '</i>', 1) + while '**' in line: + line = line.replace('**', '<b>', 1) + line = line.replace('**', '</b>', 1) + + # Vérifie si on a des images + while '![' in line and ']' in line: + title = line.split(']')[0].split('[')[1] + link = line.split(']')[1].split('(')[1].split(')')[0] + line = line.replace('', '<img src="' + link + '" alt="' + title + '"/>') + + # Vérifie si on a des liens + while '[' in line and ']' in line: + title = line.split(']')[0].split('[')[1] + link = line.split(']')[1].split('(')[1].split(')')[0] + line = line.replace('[' + title + '](' + link + ')', '<a href="' + link + '">' + title + '</a>') + return line + def md2html(filename): content = parsemd(filename) # Contenu parsé de notre fichier markdown template = open('page_template.html', 'r').read() @@ -139,4 +153,4 @@ if __name__=="__main__": print("Génération du fichier RSS / Atom") generateAtom() print("Génération de l'index") - updateIndex()
\ No newline at end of file + updateIndex() |