<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jmini Dev &#187; MediaWiki</title>
	<atom:link href="https://blog.developpez.com/jmini/pcategory/mediawiki/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/jmini</link>
	<description></description>
	<lastBuildDate>Wed, 05 Nov 2014 05:00:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Stocker des pages de MediaWiki sur un disque dur</title>
		<link>https://blog.developpez.com/jmini/p11457/mediawiki/stocker-pages-mediawiki-sur-disque-dur</link>
		<comments>https://blog.developpez.com/jmini/p11457/mediawiki/stocker-pages-mediawiki-sur-disque-dur#comments</comments>
		<pubDate>Sat, 27 Oct 2012 14:29:22 +0000</pubDate>
		<dc:creator><![CDATA[jmini]]></dc:creator>
				<category><![CDATA[MediaWiki]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/jmini/?p=25</guid>
		<description><![CDATA[Je travaille beaucoup avec des pages de MediaWiki en ce moment. Un aspect de ce travail consiste à stocker des pages du wiki sur le disque dur. Si cela peut sembler simple au premier abord, il y a tout de même certaines choses à respecter. Les pages peuvent contenir des caractères spéciaux. Par exemple sous [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je travaille beaucoup avec des pages de MediaWiki en ce moment. Un aspect de ce travail consiste à stocker des pages du wiki sur le disque dur.</p>
<p><img src="http://blog.developpez.com/jmini/files/2012/10/mediawiki_vers_disque_dur.png" alt="De MediaWiki vers un disque dur" width="582" height="221" class="alignnone size-full wp-image-26" /></p>
<p>Si cela peut sembler simple au premier abord, il y a tout de même certaines choses à respecter.</p>
<p><span id="more-25"></span></p>
<p>Les pages peuvent contenir des caractères spéciaux. Par exemple sous Windows, le double point n’est pas autorisé. En Java, il ne semble pas qu’il existe une fonction qui sache convertir un nom de fichier en ne substituant que chaque caractère non valide [1].</p>
<p>Un autre aspect concerne les slashs. De nombreux wikis utilisent le slash comme marqueur de sous-page. (Voir l&rsquo;<a href="http://www.mediawiki.org/wiki/Help:Subpages/fr">aide de Subpages</a> chez MediaWiki). </p>
<p>Enfin et c’est le pire: Windows n’est pas sensible à la différence minuscules-majuscules («case sensitive» en anglais). Les fichiers <span style="font-family:Courier New">MaPage.mediawiki</span> et <span style="font-family:Courier New">Mapage.mediawiki</span> sont les mêmes pour le système de fichiers de Windows. Pourtant pour MediaWiki il peut exister deux pages différentes portant ce nom. Autrement dit, sans faire attention on se retrouvera avec de belles collisions sur le disque dur.</p>
<p><strong>Ma solution:</strong><br />
Après différents essais, il me semble que le plus simple est d’utiliser la méthode suivante:</p>
<p>1) Utiliser la fonction <span style="font-family:Courier New">URLEncoder.encode(..)</span> pour convertir tous les caractères spéciaux (par exemple <span style="font-family:Courier New">&laquo;&nbsp;:&nbsp;&raquo;</span> en <span style="font-family:Courier New">&laquo;&nbsp;%3A&nbsp;&raquo;</span>.) Cette fonction en fait un petit peu trop, car de nombreux caractères qui seraient acceptables dans un nom de fichier sont également convertis.</p>
<p>2) Éventuellement, limiter ce nom de fichier encodé à une certaine taille (pour le moment j’ai réduit le nombre de caractères à 100).</p>
<p>3) Ajouter l’ID de la page (pageid chez MediaWiki) comme suffixe. Ceci permet de faire deux fichiers différents pour <span style="font-family:Courier New">MaPage</span> et <span style="font-family:Courier New">Mapage</span>, car ces deux pages n’auront pas le même ID.</p>
<p><strong>Résultat:</strong><br />
Cela nous donne quelque chose comme:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Alsace-1656128.mediawiki<br />
Bas-Rhin-395.mediawiki<br />
Catégorie%3AArticle_à_illustrer-1316575.mediawiki<br />
Catégorie%3APortail%3AFrance%2FArticles_liés-3065287.mediawiki<br />
Fichier%3ABas-Rhin_(67)_logo_2010.png-6408771.mediawiki<br />
Fichier%3ALogo-hautrhin4.gif-633730.mediawiki<br />
Haut-Rhin-1356.mediawiki<br />
Modèle%3AAbréviation_discrète-4596223.mediawiki<br />
Modèle%3AArticle_détaillé-497377.mediawiki</div></div>
<p>Ce n’était pas vraiment ce que je m’étais imaginé en me lançant dans cette tâche, mais c’est le moyen le plus «propre» pour obtenir quelque chose qui marche. Pas certains que les outils qui convertissent une instance <a href="http://blog.developpez.com/jmini/p10633/divers/transferer_contenu_mediawiki_vers_git">MediaWiki en répertoire Git</a> se soient donnés autant de mal.</p>
<p>[1] Voir: <a href="http://stackoverflow.com/questions/1184176/how-can-i-safely-encode-a-string-in-java-to-use-as-a-filename">Sackoverflow &#8211; How can I safely encode a string in Java to use as a filename?</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transférer le contenu de MediaWiki vers Git.</title>
		<link>https://blog.developpez.com/jmini/p10633/mediawiki/transferer_contenu_mediawiki_vers_git</link>
		<comments>https://blog.developpez.com/jmini/p10633/mediawiki/transferer_contenu_mediawiki_vers_git#comments</comments>
		<pubDate>Sat, 04 Feb 2012 11:01:50 +0000</pubDate>
		<dc:creator><![CDATA[jmini]]></dc:creator>
				<category><![CDATA[MediaWiki]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je travaille sur du contenu provenant d’un wiki MediaWiki (le moteur de Wikipedia). Je souhaite transformer le texte des articles, vers d’autre format. Comme il y a beaucoup d’accès en lecture, j’ai envie d’avoir une copie du wiki en local. Quitte à l’avoir en local autant que ce soit dans un format structuré qui me [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je travaille sur du contenu provenant d’un wiki MediaWiki (le moteur de Wikipedia).<br />
Je souhaite transformer le texte des articles, vers d’autre format. Comme il y a beaucoup d’accès en lecture, j’ai envie d’avoir une copie du wiki en local. Quitte à l’avoir en local autant que ce soit dans un format structuré qui me permette de suivre les évolutions des articles, de revenir à une date précise au besoin&#8230; et git semble tout à fait correspondre à ce type de besoin.</p>
<p><img src="http://blog.developpez.com/media/mediawiki_vers_git.png" width="583" height="159" alt="MediaWiki vers Git" /></p>
<p>Comme souvent quand on a ce genre d’idées avec des outils open source, on n&rsquo;est pas le seul. D’autres l’ont déjà fait avant moi. Voici la liste des projets que j’ai identifiés.</p>
<p><span id="more-4"></span></p>
<p><strong>Levitation</strong><br />
Code: http://github.com/scy/levitation</p>
<p>Plus d&rsquo;informations avec l&rsquo;<a href="http://scytale.name/blog/2009/11/announcing-levitation">annonce du projet sur le blog</a> ainsi que cette <a href="http://github.com/scy/levitation/blob/c1d67e5e83c46d80fc8410a37ecea6a3a79b15e0/FAQ">ancienne version de la FAQ</a></p>
<p><strong>levitation-perl (perl)</strong><br />
Code: http://github.com/sbober/levitation-perl</p>
<p><a href="http://jkingdon2000.blogspot.com/2011/01/tracking-mediawiki-wiki-in-git.html">Cet article de blog</a> parle de ce projet (l’auteur a également fait des modifications à ce projet que l’on retrouve dans ce fork).</p>
<p><strong>git-mediawiki (ruby)</strong><br />
Code: http://github.com/singpolyma/git-mediawiki</p>
<p><strong>mw-to-git (perl)</strong><br />
Code: http://github.com/git/git/tree/pu/contrib/mw-to-git<br />
(dossier contrib du projet officiel git)</p>
<p>Plus d&rsquo;explications sur <a href="http://github.com/Bibzball/Git-Mediawiki/wiki">ce wiki</a>. Il s’agit d’un projet d’étudiants dont l’<a href="http://www-verimag.imag.fr/~moy/cours/spe-2011/git-wiki.html">énoncé est disponible</a> (en français).</p>
<p><strong>autres références</strong></p>
<p>http://en.wikipedia.org/wiki/User:Singpolyma/git-mediawiki</p>
<p>http://article.gmane.org/gmane.comp.version-control.git/167560</p>
<p><strong>Mon choix</strong><br />
Je n’ai pas encore fait l’évaluation des différents outils, mais voici mes critères.</p>
<ul>
<li>Simplicité du programme.</li>
<li>Organisation des fichiers après le checkout d’une version donnée (arborescence, présence des méta-informations&#8230;)</li>
<li>Possibilité de s’abonner aux dernières modifications (via RSS par exemple) pour mettre à jour le dépôt git.</li>
</ul>
<p><em>Quelques tests nécessaires en perspective&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
