Outils pour utilisateurs

Outils du site


Panneau latéral

Nuage de tag:

debian:doku2moinmoin

Doku2moinmoin

Un petit script “automatisé” pour transformer le contenu d'un fichier avec la syntaxe de Dokuwiki en un autre fichier avec la syntaxe du wiki Moinmoin.

Bon … il est vraiment pas super propre, mais c'est fonctionnel. Tout du moins pour l'utilisation que j'en ai pour le moment.

Transformation

En attendant de refaire le script au propre ou de trouver un meilleur moyen, les quelques commandes pour passer une page doku en moinmoin:

:%s/<code bash>/{{{#!highlight bash^M/g
:%s/<\/code>/^M\}\}\}/g
:%s/<file .*>/{{{^M/g
:%s/<\/file>/^M\}\}\}/g
:%s/\*\*/\'\'\'/g
:%s/^\^/||<style="background:#c70036;vertical-align:top">/g
:%s/ |/ ||/g
:%s;//;\'\';g
:%s/^====== /= /g
:%s/ ======$/ =/g
:%s/^===== /== /g
:%s/ =====$/ ==/g
:%s/^==== /=== /g
:%s/ ====$/ ===/g
:%s/^=== /==== /g
:%s/ ===$/ ====/g
:%s/^== /===== /g
:%s/ ==$/ =====/g
...

Script

doku2moin.sh
#!/bin/sh
################################################################################################
##
##  Nom: doku2moin.sh
##
##  Version: 0.1
##
##  Licence: Creative Commons
##
##  Comportement: Transformer une page de Dokuwiki est en page compatible avec le wiki Moinmoin.
##
##
##
################################################################################################
##
##  Date de création: 15-12-2011
##
##  Auteur: Gardouille
##
##
##  Dernière modifications:
##  15-12-2011 - 0.1: Création du script
##    -
# **********************************************************************************************
##  //2011 - :
##    -
##    -
# **********************************************************************************************
##  À Modifier:
##    - Ajouter l'entête pour la syntaxe Moinmoin automatiquement dans le fichier
##
##
################################################################################################
 
 
 
# **********************************************************************************************
#
# Variables globales
#
# -----------------------------------------------------------

 
## Choix du mode d'exécution du script:
## Niveau 0 (mode_debug=0)
# Exécution automatique avec normalement aucune interaction avec l'utilisateur.
## Niveau 1 (mode_debug=1)
# ...
## Niveau 2 (mode_debug=2)
# L'installation n'est pas en automatique (aptitude, ...)
# La sortie des différentes commandes est envoyée sur la sortie standard
mode_debug=2
 
case "$mode_debug" in
  0) ## Niveau minimum
    # Les questions d'aptitude seront automatiquement validées
    options="-y"
    # La sortie standard sera redirigée dans un fichier de log
    sortie="> /dev/null 2> \"${fichier_erreur}\""
    ;;
  1) ## Niveau moyen
    # Les questions d'aptitude seront automatiquement validées
    options="-y"
    # La sortie standard sera quand même affichée
    sortie="2> \"${fichier_erreur}\""
    ;;
  2) ## Niveau maximum
    # Aucune options pour aptitude
    options=""
    # Le résultat des commandes reste sur la sortie standard
    sortie=""
    ;;
  esac
 
 
## Fichier contenant les dernières erreurs
fichier_erreur="/tmp/erreur_doku2moin.sh.tmp"
touch "${fichier_erreur}"
 
## Fichier à modifier
file_in=$1
## Fichier modifié
file_out="$1.moin"
## Fichier contenant toutes les expressions à appliquer
expression="sed_expression"
 
## Liste des expressions sed à appliquer à la commande
titre1="s/^====== /= /\ns/ ======$/ =/\n"
titre2="s/^===== /== /\ns/ =====$/ ==/\n"
titre3="s/^==== /=== /\ns/ ====$/ ===/\n"
titre4="s/^=== /==== /\ns/ ===$/ ====/\n"
titre5="s/^== /===== /\ns/ ==$/ =====/\n"
titre6="s/^= /====== /\ns/ =$/ ======/\n"
code="s/<code>/{{{/\ns/<\/code>/}}}/\n"
## cmd bash:
## dokuwiki: <code bash>
## moinmoin: {{{#!highlight bash
cmd_bash="s/<code \(bash\)>/{{{#!highlight \\\1/\n"
file="s/<file>/{{{/\ns/<\/file>/}}}/\n"
file_type="s/<file \(.*\) .*/{{{#!highlight \\\1/\n"
gras="s/\*\*/\'\'\'/g\n"
italique="s/\/\//\'\'/g\n"
#lien_externe similaire
#liste_puce similaire (-e 's/\(^ \)\*/\1\*/')
liste_num="s/\(^ *\)-/\\\11\./\n"
## Image:
# dokuwiki: {{:teeworlds_01.png|}}
# moinmoin: {{attachment:teeworlds_01.png}}
image="s/{{:\(.*\)|}}/{{attachement:\\\1}}/\n"
 
 
 
# Fin des variables globales
# -----------------------------------------------------------
# **********************************************************************************************
 
 
# **********************************************************************************************
#
# Fichiers globaux
#
# -----------------------------------------------------------
#
 
# Fin des fichiers globaux
# -----------------------------------------------------------
# **********************************************************************************************
 
 
# **********************************************************************************************
#
# Fonctions globales
#
# -----------------------------------------------------------
## Fonction d'affichage en fonction du mode debug choisi
echod() { [ "$mode_debug" -ge 2 ] && echo "(DEBUG) $*" ; }
echok() { [ "$mode_debug" -ge 2 ] && echo "(ok) $*" ; }
echoi() { [ "$mode_debug" -ge 1 ] && echo "(ii) $*" ; }
echow() { [ "$mode_debug" -ge 1 ] && echo "(!!) $*" ; }
echnk() { [ "$mode_debug" -ge 0 ] && echo "(EE) $*" ; }
 
# Fin des fonctions globales
# -----------------------------------------------------------
# **********************************************************************************************
 
 
 
# **********************************************************************************************
#
# Programme principale
#
# -----------------------------------------------------------
 
echo $titre1$titre2$titre3$titre4$titre5$titre6$code$cmd_bash$file$file_type$gras$italique$liste_num$image > $expression
 
sed --file="${expression}" "${file_in}" > "${file_out}"
 
echo "-------------------------------"
echo "-------------------------------"
echo "Rajouter au début du fichier (avant le titre):"
echo "#language fr
||<tablestyle=\"width: 100%; border: 0px hidden\">~-Traduction(s): [[$file_in|English]] - Français||
  ----
 
<<TableOfContents()>>"
 
exit 0
# Fin de la boucle principale
# -----------------------------------------------------------
# **********************************************************************************************

Voir aussi

debian/doku2moinmoin.txt · Dernière modification: 2014/04/30 18:49 (modification externe)