maxpoulin64 a écrit
Ce n'est probablement pas possible de convertir le texte d'un à l'autre, car il faudrait analyser le texte et changer les balises utilisées. Ça serait un processus compliqué et surtout très buggé, il est difficile de prévoir toutes les combinaisons de syntaxe qui pourraient être présente.
le logiciel de mediawiki reussi bien a interpreter le wikicode pour l'afficher en html , donc c'est forcement possible ... pas forcement simple
les convertisseur que j'ai trouvé sont des sac a bug , donc je prefere tout refaire a ma façon : j'ai assez peu utilisé python et même tout oublié
je m'y remet doucement : voila ce que ça donne juste pour traiter les bloc preformaté avec 2 blanc en debut de ligne : dokuwiki vers mediawiki
# -*- coding:Utf-8 -*-
# ok pour les bloc pré par indentation
obFichier = open('mediawiki.txt','w')
ofi = open('dokuwiki.txt', 'r')
t = ofi.read(1)
while t != '' : #arriver ici avec t = ofi.read(1) deja fait
if t == ' ' :
t = ofi.read(1)
if t == ' ' :
t = '<pre>'
obFichier.write(t) #ecrire <pre>
t = ofi.read(1)
while t != '' : # ecriture d'un bloc pre
obFichier.write(t) #ecrit que ce soit lf ou normal
if t != '\n' : #test lf '\n'
t = ofi.read(1)
continue #pour ecrire toute la ligne
t = ofi.read(1)
if t != ' ' :
u = '</pre>'
obFichier.write(u) #ecrire </pre>
break #t reste pret a ecrire apres le </pre>
t = ofi.read(1)
if t != ' ' :
u = '</pre>'
obFichier.write(u) #ecrire </pre>
break #t reste pret a ecrire apres le </pre>
t = ofi.read(1) # sans ce read il y avait un blanc de trop
obFichier.write(t)
t = ofi.read(1)
while t!='' and t!='\n' : #ecrire ligne non decodé : '/n' '\n'
obFichier.write(t)
t = ofi.read(1) #pour revenir au 1er while avec un read
obFichier.write(t)
t = ofi.read(1)
ofi.close()
obFichier.close()
bizarerie de mediawiki : il pourrait le faire aussi avec 1 blanc en debut de ligne , mais il ne visualise pas tout : il faut plutot mette la balise <pre> </pre> pour etre sur : c'est ce que fait ce programme
ça va etre une usine a gaz pour traiter tous les cas