Conversion wiki vers html avec sed

De April MediaWiki

Voici un script sed tout simple qui convertit l'essentiel de Médiawiki vers du html prêt à être intégré en filtered html sur le Drupal.

A améliorer :

  • Prendre correctement en charge les listes.

Du fait des limitations de Médiawiki, vous devez copier/coller le script suivant dans un éditeur et enregistrer sous wiki2html.sed.

# wiki2html.sed : passer du wiki à du Html avec Sed

# À voir ultérieurement
s/\[\[[Cc]at[ée]gorie[^]]*\]\]//g
s/{{[ ]*[Tt]ravail [Ee]n [Cc]ours.*}}//g
s/<references *\/>//g

# Mise en forme
s/'''\(.*\)'''/<strong>\1<\/strong>/g
s/''\(.*\)''/<em>\1<\/em>/g

# Liens
s/\[\[\([^|]*\)|\([^]]*\)\]\]/<a href="http:\/\/wiki.april.org\/\1">\2<\/a>/g
s/\[\[\([^]]*\)\]\]/<a href="http:\/\/wiki.april.org\/\1">\1<\/a>/g
s/\[\([^ ]*\) \([^]]*\)\]/<a href="\1">\2<\/a>/g
s/ \(http[^ <]*\)/ <a href="\1"><tt>\1<\/tt><\/a>/g

# Structure
s/<\(\/\?\)ref>/<\1fn>/g
s/^\s*=====\(.*\)=====/<h5>\1<\/h5>/
s/^\s*====\(.*\)====/<h4>\1<\/h4>/
s/^\s*===\(.*\)===/<h3>\1<\/h3>/
s/^\s*==\(.*\)==/<h2>\1<\/h2>/
s/^\s*=\(.*\)=/<h1>\1<\/h1>/

s/__TOC__/[toc list: ol; title: Table of Contents; minlevel: 2; maxlevel: 3;]/

# Typographie
s/«\s\+/«\&nbsp;/g
s/\s\+\([:;?!i»]\)/\&nbsp;\1/g

# Listes (impossible à bien faire en sed pur)
s/^\s*\[#*]\s*\(.*\)/<li>\1<\/li>/