import os articles_path = 'articles/' generate_path = 'archives/' atom_content = "" index_content = "

Articles

\n" inul = False # Vérifie si on est dans un bloc de code if line.startswith("```"): if inpre: content['content'] += "\n" content['content'] += "
" + line.lstrip("```")
            inpre = True

        # Vérifie si on est dans une citation
        elif line.startswith(">"):
            if inquote:
                content['content'] += "\n"
            
            content['content'] += "
" + line.lstrip("> ") inquote = True # Vérifie si on est dans un listing elif line.startswith("-"): if inul: content['content'] += "\n" content['content'] += "
  • " + line.lstrip("- ") else: content['content'] += "
    • " + line.lstrip("- ") inul = True # Vérifie si on est dans un titre elif line.startswith("###"): content['content'] += "

      " + line.lstrip("# ") + "

      \n" elif line.startswith("##"): content['content'] += "

      " + line.lstrip("# ") + "

      \n" elif line.startswith("#"): content['title'] += 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('*', '', 1) line = line.replace('*', '', 1) while '**' in line: line = line.replace('**', '', 1) line = line.replace('**', '', 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('![' + title + '](' + link + ')', '' + 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 + ')', '' + title + '') content['content'] += "

      " + line + "

      \n" return content def md2html(filename): content = parsemd(filename) # Contenu parsé de notre fichier markdown template = open('page_template.html', 'r').read() # Création du fichier html & ajout du contenu output = open('../' + generate_path + filename.split('.')[0] + '.html', 'w') output.write(template.replace("$CONTENT", content['content']).replace("$TITLE", content['title']). replace("$DATE", content['date']).replace("$DESC", content['description'])) output.close() # Génération du post Atom et de l'index generatePageXML(content) global index_content index_content += '
    • ' + content['title'] + '
    • \n' """ Génère le post Atom""" def generatePageXML(data): global atom_content template = open('atom_post_template.xml', 'r').read() atom_content += template.replace("$TITLE", data['title']).replace("$DATE", data['date']).replace("$CONTENT", data['content']).replace("$URL", "https://blog.arka.rocks/" + data['filename']) """ Génère le fichier Atom""" def generateAtom(): template = open('atom_template.xml', 'r').read() output = open('../atom.xml', 'w') output.write(template.replace("$CONTENT", atom_content)) output.close() """ Génère l'index""" def updateIndex(): template = open('index_template.html', 'r').read() output = open('../index.html', 'w') output.write(template.replace("$CONTENT", index_content + '
    ')) output.close() if __name__=="__main__": if not os.path.exists('../' + generate_path): os.mkdir('../' + generate_path) else: # Régénation du blog for file in os.listdir('../' + generate_path): os.remove('../' + generate_path + file) os.remove('../atom.xml') os.remove('../index.html') for file in os.listdir('../' + articles_path): print("Génération en cours du fichier: " + file) md2html(file) print("Génération du fichier RSS / Atom") generateAtom() print("Génération de l'index") updateIndex()