« Convertir ses signets Firefox en page MediaWiki » : différence entre les versions
Aucun résumé des modifications |
m (tassage + corrections) |
||
Ligne 1 : | Ligne 1 : | ||
Quand j'ai voulu mettre mes [[liens]] en ligne, je me suis d'abord tourné du côté des gestionnaires de liens en ligne [http://www.framasoft.net/rubrique398.html décrits sur Framasoft.net]. Il y a des choses bien (notamment Bookmark4U), mais les essais que j'ai faits ne se sont pas avérés très convaincants (et puis je n'ai pas aimé le logo d'IE sur Bookmark4U met par défaut sur la page d'accueil). Je me suis aussi dit que ça faisait une chose de plus à installer, alors que j'avais déjà un bon MediaWiki. | Quand j'ai voulu mettre mes [[liens]] en ligne, je me suis d'abord tourné du côté des gestionnaires de liens en ligne [http://www.framasoft.net/rubrique398.html décrits sur Framasoft.net]. Il y a des choses bien (notamment Bookmark4U), mais les essais que j'ai faits ne se sont pas avérés très convaincants (et puis je n'ai pas aimé le logo d'IE sur Bookmark4U met par défaut sur la page d'accueil). Je me suis aussi dit que ça faisait une chose de plus à installer, alors que j'avais déjà un bon MediaWiki. | ||
Malheureusement je n'ai pas trouvé d'outil capable de convertir mes signets Firefox en code wiki. J'ai donc un peu bidouillé, et j'ai opté pour la "solution" décrite ici (il y a sans doute mieux et moins pénible...). Je n'ai pas eu le courage d'écrire un programme automatisant entièrement la manipulation, ça me paraissait faisable mais un peu compliqué. Ca viendra peut-être. | Malheureusement je n'ai pas trouvé d'outil capable de convertir mes signets Firefox en code wiki. J'ai donc un peu bidouillé, et j'ai opté pour la "solution" décrite ici (il y a sans doute mieux et moins pénible...). Je n'ai pas eu le courage d'écrire un programme automatisant entièrement la manipulation, ça me paraissait faisable mais un peu compliqué. Ca viendra peut-être. | ||
Voici donc les manipulations que j'ai effectuées. | Voici donc les manipulations que j'ai effectuées. | ||
== Exporter les signets de Firefox == | == Exporter les signets de Firefox == | ||
C'est le plus facile. Il suffit d'ouvrir le menu ''Marque-pages'', puis de cliquer sur ''Gérer les marque-pages''. Dans la fenêtre qui s'affiche, ouvrez le menu ''Fichier'', cliquez sur ''Exporter'', et enregistrez le fichier HTML où bon vous semble. | C'est le plus facile. Il suffit d'ouvrir le menu ''Marque-pages'', puis de cliquer sur ''Gérer les marque-pages''. Dans la fenêtre qui s'affiche, ouvrez le menu ''Fichier'', cliquez sur ''Exporter'', et enregistrez le fichier HTML où bon vous semble. | ||
Je suppose que le format est le même pour d'autres navigateurs (Mozilla par exemple), peut-être même IE (mais qui utilise encore ce navigateur désuet et bourré de failles car propriétaire ?). | Je suppose que le format est le même pour d'autres navigateurs (Mozilla par exemple), peut-être même IE (mais qui utilise encore ce navigateur désuet et bourré de failles car propriétaire ?). | ||
== Clarifier le fichier HTML == | == Clarifier le fichier HTML == | ||
Ligne 28 : | Ligne 15 : | ||
Cette étape est facultative, HTML::WikiConverter (voir plus loin) est capable de traiter le fichier tel qu'il est, mais ça va nous permettre de mieux nous y retrouver pour l'étape suivante. On va donc supprimer du fichier HTML obtenu des choses inutiles (tous les paramètres de la balise '''<A>''' mis à part '''HREF'''), grâce au merveilleux outil '''sed''' : | Cette étape est facultative, HTML::WikiConverter (voir plus loin) est capable de traiter le fichier tel qu'il est, mais ça va nous permettre de mieux nous y retrouver pour l'étape suivante. On va donc supprimer du fichier HTML obtenu des choses inutiles (tous les paramètres de la balise '''<A>''' mis à part '''HREF'''), grâce au merveilleux outil '''sed''' : | ||
sed '{s/\(ADD_DATE\)\|\(LAST_MODIFIED\)\|\(ID\)\|\(ICON\)\|\(LAST_CHARSET\)//g ; s/ =".*"//g ;}' bookmarks.html > liens.html | sed '{s/\(ADD_DATE\)\|\(LAST_MODIFIED\)\|\(ID\)\|\(ICON\)\|\(LAST_CHARSET\)//g ; s/ =".*"//g ;}' bookmarks.html > liens.html | ||
(où bookmarks.html est le fichier exporté par Firefox). Nous obtenons donc un fichier | (où {{fich|bookmarks.html}} est le fichier exporté par Firefox). Nous obtenons donc un fichier {{fich|liens.html}} qui a exatement le même contenu, mais en plus clair ! | ||
Pour les feignasses, ceux qui trouvent ça plus esthétique et ceux qui préfèrent télécharger un | Pour les feignasses, ceux qui trouvent ça plus esthétique et ceux qui préfèrent télécharger un fichier plutôt que de faire un copier-coller, j'ai fais un [http://mouchevii.free.fr/fichiers/convertir_liens_firefox/clarificateur_liens_firefox.sh petit script shell]. | ||
chmod u+x clarificateur_liens_firefox.sh | chmod u+x clarificateur_liens_firefox.sh | ||
./clarificateur_liens_firefox.sh bookmarks.html > liens.html | ./clarificateur_liens_firefox.sh bookmarks.html > liens.html | ||
== Réorganiser le fichier HTML == | == Réorganiser le fichier HTML == | ||
Voilà l'étape la plus pénible, qui va consister à réorganiser à la main le fichier. Le problème est que, comme vous pouvez le voir en ouvrant le fichier depuis votre navigateur, les catégories sont affichées avant les liens : si j'ai une catégorie contenant des liens et une sous-catégorie, la sous-catégorie (et les liens qu'elle contient) sera affichée avant les liens de la catégorie parente. Ce n'est peut-être pas très clair, mais si vous regardez le fichier depuis un navigateur vous devriez comprendre. | Voilà l'étape la plus pénible, qui va consister à réorganiser à la main le fichier. Le problème est que, comme vous pouvez le voir en ouvrant le fichier depuis votre navigateur, les catégories sont affichées avant les liens : si j'ai une catégorie contenant des liens et une sous-catégorie, la sous-catégorie (et les liens qu'elle contient) sera affichée avant les liens de la catégorie parente. Ce n'est peut-être pas très clair, mais si vous regardez le fichier depuis un navigateur vous devriez comprendre. | ||
En quoi est-ce un problème ? Eh bien sautez cette étape et vous verrez bien ! Plus sérieusement, le fait est que nous ne pouvons pas, dans MediaWiki, indenter un niveau de titre et ce qui le suit, comme c'est fait dans notre fichier HTML. En l'état il sera donc impossible de distinguer les liens d'une catégorie des liens de sa dernière sous-catégorie. | En quoi est-ce un problème ? Eh bien sautez cette étape et vous verrez bien ! Plus sérieusement, le fait est que nous ne pouvons pas, dans MediaWiki, indenter un niveau de titre et ce qui le suit, comme c'est fait dans notre fichier HTML. En l'état il sera donc impossible de distinguer les liens d'une catégorie des liens de sa dernière sous-catégorie. | ||
Il s'agit donc d'éditer le fichier {{fich|liens.html}} et de couper-coller les liens des catégories pour les mettre juste sous le titre de ladite catégorie, et ce à tous les niveaux de profondeur. Oui c'est fastidieux. Oui c'est automatisable. Oui j'ai la flemme de le coder. | |||
Il s'agit donc d'éditer le fichier | |||
Heureusement, les indentations sont là pour nous aider ! Et puis profitez-en pour supprimer le haut du fichier (les huit premières lignes, jusque sous '''<nowiki><H1 LAST_MODIFIED="1138713337">Bookmarks</H1></nowiki>''') et les catégories inutiles, ce sera fait. | Heureusement, les indentations sont là pour nous aider ! Et puis profitez-en pour supprimer le haut du fichier (les huit premières lignes, jusque sous '''<nowiki><H1 LAST_MODIFIED="1138713337">Bookmarks</H1></nowiki>''') et les catégories inutiles, ce sera fait. | ||
== Convertir le HTML en code wiki == | == Convertir le HTML en code wiki == | ||
Ligne 64 : | Ligne 37 : | ||
On va maintenant utiliser l'outil [http://diberri.dyndns.org/html2wiki.html HTML::WikiConverter] pour convertir le code HTML du fichier ''liens.html'' modifié en code wiki. Sélectionnez '''MediaWiki''' en face de '''Wiki dialect''' (en fait c'est le choix par défaut). Copiez-collez le contenu du fichier dans le cadre prévu à cet effet ('''HTML source'''), et validez (bouton '''Convert HTML to wiki markup'''). | On va maintenant utiliser l'outil [http://diberri.dyndns.org/html2wiki.html HTML::WikiConverter] pour convertir le code HTML du fichier ''liens.html'' modifié en code wiki. Sélectionnez '''MediaWiki''' en face de '''Wiki dialect''' (en fait c'est le choix par défaut). Copiez-collez le contenu du fichier dans le cadre prévu à cet effet ('''HTML source'''), et validez (bouton '''Convert HTML to wiki markup'''). | ||
Récupérez le contenu du champ '''MediaWiki markup''' et copiez-collez dans un fichier {{fich|liens.mw}} par exemple. | |||
Récupérez le contenu du champ '''MediaWiki markup''' et copiez-collez dans un fichier | |||
== Traitement du code wiki == | == Traitement du code wiki == | ||
Bizarrement, HTML::WikiConverter met des points-virgules partout au début des lignes. Les niveaux de titres sont également tous les mêmes (seul le nombre de points-virgules au début de la ligne permet de les différencier). On va donc à nouveau utiliser '''sed''' pour régler ça. Par la même occasion on va aérer un peu en mettant des interlignes entre les titres. On va aussi convertir les codes HTML correspondant aux caractères accentués par | Bizarrement, HTML::WikiConverter met des points-virgules partout au début des lignes. Les niveaux de titres sont également tous les mêmes (seul le nombre de points-virgules au début de la ligne permet de les différencier). On va donc à nouveau utiliser '''sed''' pour régler ça. Par la même occasion on va aérer un peu en mettant des interlignes entre les titres. On va aussi convertir les codes HTML correspondant aux caractères accentués par de vrais caractères. | ||
sed '{s/&Euml;/Ë/g ; s/&Agrave;/À/g ; s/&Aacute;/Á/g ; s/&Acirc;/Â/g ; s/&Atilde;/Ã/g ;\ | sed '{s/&Euml;/Ë/g ; s/&Agrave;/À/g ; s/&Aacute;/Á/g ; s/&Acirc;/Â/g ; s/&Atilde;/Ã/g ;\ | ||
s/&Auml;/Ä/g ; s/&Aring;/Å/g ; s/&AElig;/Æ/g ; s/&Ccedil;/Ç/g ; s/&Egrave;/È/g ;\ | s/&Auml;/Ä/g ; s/&Aring;/Å/g ; s/&AElig;/Æ/g ; s/&Ccedil;/Ç/g ; s/&Egrave;/È/g ;\ | ||
Ligne 93 : | Ligne 60 : | ||
s/&eacute;/é/g ; s/^; === \(.\+\) ===/\n\n\n\n\n\n== \1 ==/ ; s/^;; ===/\n\n\n\n===/ ;\ | s/&eacute;/é/g ; s/^; === \(.\+\) ===/\n\n\n\n\n\n== \1 ==/ ; s/^;; ===/\n\n\n\n===/ ;\ | ||
s/^;;; === \(.\+\) ===/\n\n==== \1 ====/ ; s/^;;;; === \(.\+\) ===/===== \1 =====/ ;\ | s/^;;; === \(.\+\) ===/\n\n==== \1 ====/ ; s/^;;;; === \(.\+\) ===/===== \1 =====/ ;\ | ||
s/^;* /\n/ ;}' liens. | s/^;* /\n/ ;}' liens.mw > liens2.mw | ||
Ouf ! Pour le coup, un [http://mouchevii.free.fr/fichiers/convertir_liens_firefox/traite_code_wiki.sh script] n'est pas forcément superflu. | Ouf ! Pour le coup, un [http://mouchevii.free.fr/fichiers/convertir_liens_firefox/traite_code_wiki.sh script] n'est pas forcément superflu. | ||
chmod u+x traite_code_wiki.sh | chmod u+x traite_code_wiki.sh | ||
./traite_code_wiki.sh liens. | ./traite_code_wiki.sh liens.mw > liens2.mw | ||
Voilà, il n'y a plus qu'à copier-coller le contenu du fichier {{fich|liens2.mw}} sur une page de notre wiki, et c'est gagné. Il reste peut-être quelques corrections mineures à effectuer (par exemple quand le titre d'un lien comporte des crochets) mais ce sera vite fait. | |||
== Annexe : Explication de la commande ci-dessus (pour ceux que ça intéresse) == | == Annexe : Explication de la commande ci-dessus (pour ceux que ça intéresse) == | ||
Ligne 111 : | Ligne 72 : | ||
s/&egrave;/è/g | s/&egrave;/è/g | ||
convertit le code <code>&egrave;</code> en un E accent grave tout ce qu'il y a de plus honnête. | convertit le code <code>&egrave;</code> en un E accent grave tout ce qu'il y a de plus honnête. | ||
Les trois dernières lignes forment des niveaux de titres en fonction du nombre de points-virgules au début de la ligne, en ajoutant des sauts de ligne : | Les trois dernières lignes forment des niveaux de titres en fonction du nombre de points-virgules au début de la ligne, en ajoutant des sauts de ligne : | ||
Ligne 119 : | Ligne 79 : | ||
:* <code>s/^;;;; === \(.\+\) ===/===== \1 =====/</code> : même principe que pour le premier niveau de titres, mais sans interligne et avec cinq égales. | :* <code>s/^;;;; === \(.\+\) ===/===== \1 =====/</code> : même principe que pour le premier niveau de titres, mais sans interligne et avec cinq égales. | ||
:* <code>s/^;* /\n/</code> : remplace un nombre quelconque de points-virgules au début d'une ligne en un interligne. | :* <code>s/^;* /\n/</code> : remplace un nombre quelconque de points-virgules au début d'une ligne en un interligne. | ||
'''''Note :''''' ''On peut facilement ajouter d'autres niveaux de titres, pour les cas où nos signets ont plus de quatre niveaux de profondeur.'' | '''''Note :''''' ''On peut facilement ajouter d'autres niveaux de titres, pour les cas où nos signets ont plus de quatre niveaux de profondeur.'' | ||
[[Catégorie:MediaWiki]] | [[Catégorie:MediaWiki]] |
Dernière version du 21 janvier 2008 à 19:12
Quand j'ai voulu mettre mes liens en ligne, je me suis d'abord tourné du côté des gestionnaires de liens en ligne décrits sur Framasoft.net. Il y a des choses bien (notamment Bookmark4U), mais les essais que j'ai faits ne se sont pas avérés très convaincants (et puis je n'ai pas aimé le logo d'IE sur Bookmark4U met par défaut sur la page d'accueil). Je me suis aussi dit que ça faisait une chose de plus à installer, alors que j'avais déjà un bon MediaWiki.
Malheureusement je n'ai pas trouvé d'outil capable de convertir mes signets Firefox en code wiki. J'ai donc un peu bidouillé, et j'ai opté pour la "solution" décrite ici (il y a sans doute mieux et moins pénible...). Je n'ai pas eu le courage d'écrire un programme automatisant entièrement la manipulation, ça me paraissait faisable mais un peu compliqué. Ca viendra peut-être.
Voici donc les manipulations que j'ai effectuées.
Exporter les signets de Firefox
C'est le plus facile. Il suffit d'ouvrir le menu Marque-pages, puis de cliquer sur Gérer les marque-pages. Dans la fenêtre qui s'affiche, ouvrez le menu Fichier, cliquez sur Exporter, et enregistrez le fichier HTML où bon vous semble.
Je suppose que le format est le même pour d'autres navigateurs (Mozilla par exemple), peut-être même IE (mais qui utilise encore ce navigateur désuet et bourré de failles car propriétaire ?).
Clarifier le fichier HTML
Cette étape est facultative, HTML::WikiConverter (voir plus loin) est capable de traiter le fichier tel qu'il est, mais ça va nous permettre de mieux nous y retrouver pour l'étape suivante. On va donc supprimer du fichier HTML obtenu des choses inutiles (tous les paramètres de la balise <A> mis à part HREF), grâce au merveilleux outil sed :
sed '{s/\(ADD_DATE\)\|\(LAST_MODIFIED\)\|\(ID\)\|\(ICON\)\|\(LAST_CHARSET\)//g ; s/ =".*"//g ;}' bookmarks.html > liens.html
(où bookmarks.html est le fichier exporté par Firefox). Nous obtenons donc un fichier liens.html qui a exatement le même contenu, mais en plus clair !
Pour les feignasses, ceux qui trouvent ça plus esthétique et ceux qui préfèrent télécharger un fichier plutôt que de faire un copier-coller, j'ai fais un petit script shell.
chmod u+x clarificateur_liens_firefox.sh ./clarificateur_liens_firefox.sh bookmarks.html > liens.html
Réorganiser le fichier HTML
Voilà l'étape la plus pénible, qui va consister à réorganiser à la main le fichier. Le problème est que, comme vous pouvez le voir en ouvrant le fichier depuis votre navigateur, les catégories sont affichées avant les liens : si j'ai une catégorie contenant des liens et une sous-catégorie, la sous-catégorie (et les liens qu'elle contient) sera affichée avant les liens de la catégorie parente. Ce n'est peut-être pas très clair, mais si vous regardez le fichier depuis un navigateur vous devriez comprendre.
En quoi est-ce un problème ? Eh bien sautez cette étape et vous verrez bien ! Plus sérieusement, le fait est que nous ne pouvons pas, dans MediaWiki, indenter un niveau de titre et ce qui le suit, comme c'est fait dans notre fichier HTML. En l'état il sera donc impossible de distinguer les liens d'une catégorie des liens de sa dernière sous-catégorie.
Il s'agit donc d'éditer le fichier liens.html et de couper-coller les liens des catégories pour les mettre juste sous le titre de ladite catégorie, et ce à tous les niveaux de profondeur. Oui c'est fastidieux. Oui c'est automatisable. Oui j'ai la flemme de le coder.
Heureusement, les indentations sont là pour nous aider ! Et puis profitez-en pour supprimer le haut du fichier (les huit premières lignes, jusque sous <H1 LAST_MODIFIED="1138713337">Bookmarks</H1>) et les catégories inutiles, ce sera fait.
Convertir le HTML en code wiki
Vous avez fini ? Bien !
On va maintenant utiliser l'outil HTML::WikiConverter pour convertir le code HTML du fichier liens.html modifié en code wiki. Sélectionnez MediaWiki en face de Wiki dialect (en fait c'est le choix par défaut). Copiez-collez le contenu du fichier dans le cadre prévu à cet effet (HTML source), et validez (bouton Convert HTML to wiki markup).
Récupérez le contenu du champ MediaWiki markup et copiez-collez dans un fichier liens.mw par exemple.
Traitement du code wiki
Bizarrement, HTML::WikiConverter met des points-virgules partout au début des lignes. Les niveaux de titres sont également tous les mêmes (seul le nombre de points-virgules au début de la ligne permet de les différencier). On va donc à nouveau utiliser sed pour régler ça. Par la même occasion on va aérer un peu en mettant des interlignes entre les titres. On va aussi convertir les codes HTML correspondant aux caractères accentués par de vrais caractères.
sed '{s/Ë/Ë/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 ; s/Í/Í/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 ; s/Û/Û/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 ; s/ì/ì/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 ; s/û/û/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 ;\ s/Ì/Ì/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 ; s/É/É/g ; s/&/&/g ;\ s/é/é/g ; s/^; === \(.\+\) ===/\n\n\n\n\n\n== \1 ==/ ; s/^;; ===/\n\n\n\n===/ ;\ s/^;;; === \(.\+\) ===/\n\n==== \1 ====/ ; s/^;;;; === \(.\+\) ===/===== \1 =====/ ;\ s/^;* /\n/ ;}' liens.mw > liens2.mw
Ouf ! Pour le coup, un script n'est pas forcément superflu.
chmod u+x traite_code_wiki.sh ./traite_code_wiki.sh liens.mw > liens2.mw
Voilà, il n'y a plus qu'à copier-coller le contenu du fichier liens2.mw sur une page de notre wiki, et c'est gagné. Il reste peut-être quelques corrections mineures à effectuer (par exemple quand le titre d'un lien comporte des crochets) mais ce sera vite fait.
Annexe : Explication de la commande ci-dessus (pour ceux que ça intéresse)
Les 16 premières lignes convertissent les codes HTML correspondant aux caractères accentués les plus courrants (et certains caractères spéciaux) en ces caractères. Par exemple l'expression :
s/è/è/g
convertit le code è
en un E accent grave tout ce qu'il y a de plus honnête.
Les trois dernières lignes forment des niveaux de titres en fonction du nombre de points-virgules au début de la ligne, en ajoutant des sauts de ligne :
s/^; === \(.\+\) ===/\n\n\n\n\n\n== \1 ==/
: remplace un point-virgule au début de la ligne, suivi d'une espace, puis d'une expression quelconque entourée de trois égales, par six interlignes puis l'expression trouvée entourée seulement de deux espaces.s/^;; ===/\n\n\n\n===/
: remplace deux points-virgules suivis d'une espace et de trois égales, par quatre interlignes et trois égales (cela suffit car nous voulons que l'expression soit entourée de trois égales).s/^;;; === \(.\+\) ===/\n\n==== \1 ====/
: même principe que pour le premier niveau de titres, mais avec deux interlignes et quatre égales.s/^;;;; === \(.\+\) ===/===== \1 =====/
: même principe que pour le premier niveau de titres, mais sans interligne et avec cinq égales.s/^;* /\n/
: remplace un nombre quelconque de points-virgules au début d'une ligne en un interligne.
Note : On peut facilement ajouter d'autres niveaux de titres, pour les cas où nos signets ont plus de quatre niveaux de profondeur.