Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. <!doctype html>
  2. <html lang=fr>
  3. <head>
  4. <!-- Always define the charset before the title -->
  5. <meta charset=utf-8>
  6. <title>Convertisseur de syntaxes wiki Dotclear à Dokuwiki — Biologeek — David Larlet</title>
  7. <!-- Define a viewport to mobile devices to use - telling the browser to assume that the page is as wide as the device (width=device-width) and setting the initial page zoom level to be 1 (initial-scale=1.0) -->
  8. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  9. <!-- Fake favicon, to avoid extra request to the server -->
  10. <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  11. <link type="application/atom+xml" rel="alternate" title="Feed" href="/david/log/" />
  12. <link rel="manifest" href="/manifest.json">
  13. <link rel="stylesheet" href="/static/david/css/larlet-david-_J6Rv.css" data-instant-track />
  14. <noscript>
  15. <style type="text/css">
  16. /* Otherwise fonts are loaded by JS for faster initial rendering. See scripts at the bottom. */
  17. body {
  18. font-family: 'EquityTextB', serif;
  19. }
  20. h1, h2, h3, h4, h5, h6, time, nav a, nav a:link, nav a:visited {
  21. font-family: 'EquityCapsB', sans-serif;
  22. font-variant: normal;
  23. }
  24. </style>
  25. </noscript>
  26. <!-- Canonical URL for SEO purposes -->
  27. <link rel="canonical" href="https://larlet.fr/david/biologeek/archives/20051203-convertisseur-de-syntaxes-wiki-dotclear-a-dokuwiki">
  28. </head>
  29. <body>
  30. <div>
  31. <header>
  32. <nav>
  33. <p>
  34. <small>
  35. Je suis <a href="/david/" title="Profil public">David Larlet</a>, <a href="/david/pro/" title="Activité professionnelle">artisan</a> du web qui vous <a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a><span class="more-infos"> dans l’acquisition de savoirs pour concevoir des <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">produits essentiels</a></span>. <span class="more-more-infos">Discutons ensemble d’une <a href="/david/pro/devis/" title="En savoir plus">non-demande de devis</a>.</span> Je partage ici mes <a href="/david/blog/" title="Expériences bienveillantes">réflexions</a> et <a href="/david/correspondances/2017/" title="Lettres hebdomadaires">correspondances</a>.
  36. </small>
  37. </p>
  38. </nav>
  39. </header>
  40. <section>
  41. <h1 property="schema:name">Convertisseur de syntaxes wiki Dotclear à Dokuwiki</h1>
  42. <article typeof="schema:BlogPosting">
  43. <div property="schema:articleBody">
  44. <img src="/static/david/biologeek/images/logos/dotclear2dokuwiki.png" alt="vignette" style="float:left; margin: 0.5em 1em;" property="schema:thumbnailUrl" />
  45. <p>Le jour de l'unification des syntaxes wiki sera un grand jour. Voila le parfait exemple d'un défaut du monde du Logiciel Libre, toujours premiers pour dire qu'il faut appliquer les standards mais pas très doués pour en créer un... enfin bon j'avoue que je suis un peu énervé. Dans le cadre du transfert de certains billets de blogs sur le <a href="http://doc.ubuntu-fr.org/">wiki de documentation d'ubuntu-fr</a> on me demande souvent s'il n'existe pas un convertisseur pour passer d'une syntaxe wiki <a href="http://www.dotclear.net/">Dotclear</a> à une syntaxe wiki <a href="http://wiki.splitbrain.org/wiki:dokuwiki">Dokuwiki</a>, c'est maintenant chose faite.</p>
  46. <p>C'est pas vraiment parfait et il aurait fallu passer par des regexp (d'ailleurs s'il y a des gourous dans l'assistance, le code est libre ;-) ) mais j'ai voulu faire simple et rapide.</p>
  47. <p>Son utilisation nécessite un code wiki Dotclear valide (surtout si vous échappez les caractères, il faut que ce soit fait pour le caractère ouvrant ET le caractère fermant&nbsp;! Et oui <a href="http://www.neokraft.net/sottises/wiki2xhtml/">wiki2xhtml</a><sup>[<a href="#pnote-80-1" id="rev-pnote-80-1">1</a>]</sup> permet de n'échapper que le premier...). Il suffit de sauvegarder votre syntaxe wiki Dotclear dans un fichier puis de lire l'aide fournie avec <a href="#">dotclear2dokuwiki</a>&nbsp;:</p>
  48. <pre>./dotclear2dokuwiki --help</pre>
  49. <p>J'ai essayé de tester toutes les possibilités mais je manquais de code farfelu à tester, n'hésitez pas à me contacter si vous rencontrez des problèmes lors de l'exécution.</p>
  50. <p>Si vous voulez passer directement votre billet sur le <a href="http://doc.ubuntu-fr.org/">wiki de documentation d'ubuntu-fr</a>, n'oubliez pas que le ton employé pour cette dernière doit être le plus neutre possible et que les images seraient mieux sur le ftp d'ubuntu-fr (le code actuel permet quand même de générer des urls complètes à partir des urls relatives de votre code wiki Dotclear).</p>
  51. <div class="footnotes"><h4>Notes</h4>
  52. <p>[<a href="#rev-pnote-80-1" id="pnote-80-1">1</a>] il faudra aussi qu'on m'explique un jour pourquoi l'url d'accès passe de la première à la deuxième place si l'on met un titre lorsqu'on fait un lien avec wiki2xhtml, c'est assez embêtant...</p></div>
  53. </div>
  54. </article>
  55. <footer>
  56. <h6 property="schema:datePublished">— 03/12/2005</h6>
  57. </footer>
  58. </section>
  59. <section>
  60. <div>
  61. <h3>Articles peut-être en rapport</h3>
  62. <ul>
  63. <li><a href="/david/biologeek/archives/20090327-reflexions-sur-les-conferences-de-geeks/" title="Accès à Réflexions sur les conférences de geeks">Réflexions sur les conférences de geeks</a></li>
  64. <li><a href="/david/biologeek/archives/20090221-son-propre-tinyurl-en-python-et-html5-avec-webpy/" title="Accès à Son propre TinyURL en Python et HTML5 avec webpy">Son propre TinyURL en Python et HTML5 avec webpy</a></li>
  65. <li><a href="/david/biologeek/archives/20060814-analyse-des-donnees-utilisateur-d-aol-suite-et-fin/" title="Accès à Analyse des données utilisateur d&#39;AOL : suite et fin">Analyse des données utilisateur d&#39;AOL : suite et fin</a></li>
  66. </ul>
  67. </div>
  68. </section>
  69. <section>
  70. <div id="comments">
  71. <h3>Commentaires</h3>
  72. <div class="comment" typeof="schema:UserComments">
  73. <p class="comment-meta">
  74. <span class="comment-author" property="schema:creator">Herbie</span> le <span class="comment-date" property="schema:commentTime">03/12/2005</span> :
  75. </p>
  76. <div class="comment-content" property="schema:commentText">
  77. <p>Excellente initiative !! Je penserai à utiliser ton programme la prochaine fois que je fais un billet potentiellement intéressant pour le wiki :)<br />
  78. <br />
  79. Sinon le phénomène wiki est assez récent, c'est peut être pour ça qu'il n'y a pas de standard encore mais c'est vrai que ce serait une bonne chose que d'uniformiser tout cela...au moins un minimum.<br />
  80. <br />
  81. Rb</p>
  82. </div>
  83. </div>
  84. <div class="comment" typeof="schema:UserComments">
  85. <p class="comment-meta">
  86. <span class="comment-author" property="schema:creator">David Latapie</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  87. </p>
  88. <div class="comment-content" property="schema:commentText">
  89. <p>CraoWiki n'avait-il pas lancé une initiative de standardisation des syntaxes wiki?<br />
  90. <br />
  91. Pour les standards open-source, je trouve que tu y vas un peu. W3C, ça te dit quelque choses ? ;-)</p>
  92. </div>
  93. </div>
  94. <div class="comment" typeof="schema:UserComments">
  95. <p class="comment-meta">
  96. <span class="comment-author" property="schema:creator">David Latapie</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  97. </p>
  98. <div class="comment-content" property="schema:commentText">
  99. <p>Screugneugneu, le fil de commentaire ne fonctionne pas, je suis abonné au blog, à la place…</p>
  100. </div>
  101. </div>
  102. <div class="comment" typeof="schema:UserComments">
  103. <p class="comment-meta">
  104. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  105. </p>
  106. <div class="comment-content" property="schema:commentText">
  107. <p>&gt; CraoWiki n'avait-il pas lancé une initiative de standardisation des syntaxes wiki?<br />
  108. <br />
  109. En effet : <a href="http://wiki.crao.net/index.php/WikiSyntaxeUniverselle" title="http://wiki.crao.net/index.php/WikiSyntaxeUniverselle">wiki.crao.net/index.php/W...</a> mais aucune édition depuis plus d'un an, c'est vraiment dommage !<br />
  110. <br />
  111. &gt; Pour les standards open-source, je trouve que tu y vas un peu. W3C, ça te dit quelque choses ? ;-)<br />
  112. <br />
  113. En fait c'est plus la lenteur de la procédure qui m'exaspère à chaque fois...<br />
  114. <br />
  115. &gt; Screugneugneu, le fil de commentaire ne fonctionne pas, je suis abonné au blog, à la place…<br />
  116. <br />
  117. Le fil RSS est réparé ;)</p>
  118. </div>
  119. </div>
  120. <div class="comment" typeof="schema:UserComments">
  121. <p class="comment-meta">
  122. <span class="comment-author" property="schema:creator">David Latapie</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  123. </p>
  124. <div class="comment-content" property="schema:commentText">
  125. <p>En fait c'est plus la lenteur de la procédure qui m'exaspère à chaque fois…&gt;<br />
  126. <br />
  127. Je ne vois pas de quoi tu veux parler ;-)<br />
  128. <br />
  129. <a href="http://blog.empyree.org/?2005/09/06/1819-css3-pas-avant-2010" title="http://blog.empyree.org/?2005/09/06/1819-css3-pas-avant-2010">blog.empyree.org/?2005/09...</a></p>
  130. </div>
  131. </div>
  132. <div class="comment" typeof="schema:UserComments">
  133. <p class="comment-meta">
  134. <span class="comment-author" property="schema:creator">Xethorn</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  135. </p>
  136. <div class="comment-content" property="schema:commentText">
  137. <p>En parlant de syntaxe wiki, je voudrais savoir si vous auriez une idée de syntaxe facile à mettre en place pour la mise en forme de tableaux. Celle de dokuwiki me semble totalement inadaptée.<br />
  138. <br />
  139. Si vous avez des idées ... :)<br />
  140. <br />
  141. Ps : c'est effectivement pour le parseur de PolyIn</p>
  142. </div>
  143. </div>
  144. <div class="comment" typeof="schema:UserComments">
  145. <p class="comment-meta">
  146. <span class="comment-author" property="schema:creator">Tatane</span> le <span class="comment-date" property="schema:commentTime">04/12/2005</span> :
  147. </p>
  148. <div class="comment-content" property="schema:commentText">
  149. <p>Aaaaah, qu'elle bonne initiative !<br />
  150. Tu m'épargnes quelques heures de dev, merci !<br />
  151. <br />
  152. Au prochain billet sur Ubuntu je testerai ton script, merci bcp ...<br />
  153. <br />
  154. </p>
  155. </div>
  156. </div>
  157. <div class="comment" typeof="schema:UserComments">
  158. <p class="comment-meta">
  159. <span class="comment-author" property="schema:creator">Philippe</span> le <span class="comment-date" property="schema:commentTime">30/12/2005</span> :
  160. </p>
  161. <div class="comment-content" property="schema:commentText">
  162. <p>SYSTEME BINAIRE : Combat entre les huns et les héros (Marc Escayrol)</p>
  163. </div>
  164. </div>
  165. <div class="comment" typeof="schema:UserComments">
  166. <p class="comment-meta">
  167. <span class="comment-author" property="schema:creator">Laurent - CyberSDF</span> le <span class="comment-date" property="schema:commentTime">04/02/2006</span> :
  168. </p>
  169. <div class="comment-content" property="schema:commentText">
  170. <p>Super ça fonctionne sauf... Qu'il ne met pas de retour chariot avant les &quot; *&quot; :-( et je ne vois pas comment les ajouter.</p>
  171. </div>
  172. </div>
  173. <div class="comment" typeof="schema:UserComments">
  174. <p class="comment-meta">
  175. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">05/02/2006</span> :
  176. </p>
  177. <div class="comment-content" property="schema:commentText">
  178. <p>Ok, c'est corrigé, du coup c'est une nouvelle version qui est disponible ;)</p>
  179. </div>
  180. </div>
  181. <div class="comment" typeof="schema:UserComments">
  182. <p class="comment-meta">
  183. <span class="comment-author" property="schema:creator">Gab</span> le <span class="comment-date" property="schema:commentTime">09/06/2006</span> :
  184. </p>
  185. <div class="comment-content" property="schema:commentText">
  186. <p>Bien, ça.<br />
  187. J'aurais pu te faire les regexp si je connaissais un peu le python (ou si tu l'avais fait en perl ;) )<br />
  188. Reste plus qu'à en faire un plugin pour dotclear, histoire de rédiger en syntax dokuwiki!</p>
  189. </div>
  190. </div>
  191. <div class="comment" typeof="schema:UserComments">
  192. <p class="comment-meta">
  193. <span class="comment-author" property="schema:creator">Yannick</span> le <span class="comment-date" property="schema:commentTime">05/07/2006</span> :
  194. </p>
  195. <div class="comment-content" property="schema:commentText">
  196. <p>Ce convertisseur est une super idée... mais ca serait mieux si j'arrivais a le faire marcher... :)<br />
  197. Si vous avez des idees.... ? :)<br />
  198. <br />
  199. ./dotclear2dokuwiki.py -v -i /tmp/toto -o /tmp/out<br />
  200. Warning, you haven't specified a base url, I hope your wiki code for images and links contains only complete urls...<br />
  201. Traceback (most recent call last):<br />
  202. File &quot;./dotclear2dokuwiki.py&quot;, line 291, in ?<br />
  203. main()<br />
  204. File &quot;./dotclear2dokuwiki.py&quot;, line 258, in main<br />
  205. line = _add_link(line)<br />
  206. File &quot;./dotclear2dokuwiki.py&quot;, line 99, in _add_link<br />
  207. line = &quot;&quot;.join(final_line) + after<br />
  208. UnboundLocalError: local variable 'after' referenced before assignment<br />
  209. <br />
  210. <br />
  211. md5sum dotclear2dokuwiki.py <br />
  212. 1c45ecfb2aad94588199e66179a0e80a dotclear2dokuwiki.py<br />
  213. <br />
  214. Est ce que mon md5 est ok ?<br />
  215. Merci...<br />
  216. </p>
  217. </div>
  218. </div>
  219. <div class="comment" typeof="schema:UserComments">
  220. <p class="comment-meta">
  221. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">05/07/2006</span> :
  222. </p>
  223. <div class="comment-content" property="schema:commentText">
  224. <p>Pourrais-je avoir « toto » ? :)<br />
  225. <br />
  226. A priori le md5 est bon, c'est juste qu'il doit y avoir un cas particulier non traité pour l'instant.</p>
  227. </div>
  228. </div>
  229. <div class="comment" typeof="schema:UserComments">
  230. <p class="comment-meta">
  231. <span class="comment-author" property="schema:creator">Yannick</span> le <span class="comment-date" property="schema:commentTime">05/07/2006</span> :
  232. </p>
  233. <div class="comment-content" property="schema:commentText">
  234. <p>Il semble que ca soit la partie avec les caracteres d'echappement qui fout la grouille....<br />
  235. ...pour &quot;échapper&quot; les crochets...<br />
  236. <br />
  237. \[totot \] tututu<br />
  238. <br />
  239. J'ai bien lu au debut de ton article qu'il faut faire attention aux caracteres d'echappement, mais je n'ai pas bien compris ce qu'il faut faire dans ce cas... ??... Il faudra que je regarde quels sont les caracteres d'echappement valides aussi bien pour dotclear que pour DokuWiki....<br />
  240. <br />
  241. En tous cas les lignes avec caractères d'echappement supprimées, ton script fonctionne... Désolé pour le dérangement.. et merci pour le script... :)</p>
  242. </div>
  243. </div>
  244. <div class="comment" typeof="schema:UserComments">
  245. <p class="comment-meta">
  246. <span class="comment-author" property="schema:creator">ANCILLON</span> le <span class="comment-date" property="schema:commentTime">06/08/2006</span> :
  247. </p>
  248. <div class="comment-content" property="schema:commentText">
  249. <p>Bonjour,<br />
  250. <br />
  251. Je m'adresse à vous spécialiste wiki, je développe une application dans laquelle je souhaite utiliser le wiki entre autres codifiactions.<br />
  252. <br />
  253. J'ai réalisé un programme php qui fonctionne trés bien en test extérieur à Dotclear, mais une fois intégé il ne fonctionne plus du tout ? rien ne se passe ? les données ne sont pas affichées.<br />
  254. <br />
  255. Les fichiers class sont dans ma bib. et le chemin d&quot;accés semble bon.<br />
  256. <br />
  257. Voci le code :<br />
  258. <br />
  259. &lt;?php <br />
  260. <br />
  261. require_once dirname(__FILE__).'/class.wiki2xhtml.php';<br />
  262. <br />
  263. $fichier = isset($_GET['fichier']) ? $_GET['fichier'] : &quot;&quot;;<br />
  264. <br />
  265. $chemin = $fichier;<br />
  266. <br />
  267. <br />
  268. $files=&quot;&quot;;<br />
  269. <br />
  270. $fp=@fopen($chemin,&quot;r&quot;);<br />
  271. <br />
  272. if($fp){ <br />
  273. while(!feof($fp)) <br />
  274. { <br />
  275. $files[] = fgets($fp,1024);<br />
  276. } <br />
  277. <br />
  278. fclose($fp); <br />
  279. <br />
  280. $nbfile=count($files);<br />
  281. <br />
  282. $pos = strpos($files[0], &quot;wiki&quot;);<br />
  283. <br />
  284. for($i=0; $i&lt;$nbfile; $i++) { <br />
  285. if ($pos &gt; -1) {<br />
  286. if ($i&gt;0) {<br />
  287. $bloc=$files[$i];<br />
  288. $bloc=ajx_dcKozliBloc($bloc);<br />
  289. echo ($bloc); <br />
  290. }<br />
  291. } else { <br />
  292. // $files[$i]= utf8_encode($files[$i]); <br />
  293. $bloc=$files[$i];<br />
  294. echo ($bloc); <br />
  295. }<br />
  296. }<br />
  297. } else echo $chemin;<br />
  298. <br />
  299. function ajx_dcKozliBloc($bloc) {<br />
  300. $wiki = new wiki2xhtml();<br />
  301. return($wiki-&gt;transform($bloc));<br />
  302. }<br />
  303. <br />
  304. ?&gt;<br />
  305. <br />
  306. Je vous remercie de votre aide.<br />
  307. <br />
  308. Salutations.<br />
  309. <br />
  310. JPA<br />
  311. <br />
  312. <br />
  313. </p>
  314. </div>
  315. </div>
  316. <div class="comment" typeof="schema:UserComments">
  317. <p class="comment-meta">
  318. <span class="comment-author" property="schema:creator">ANCILLON</span> le <span class="comment-date" property="schema:commentTime">07/08/2006</span> :
  319. </p>
  320. <div class="comment-content" property="schema:commentText">
  321. <p>Bonjour,<br />
  322. <br />
  323. Le problème n'êtait pas dans ce programme, l'erreur est corrigée.<br />
  324. <br />
  325. MercI<br />
  326. <br />
  327. JPA</p>
  328. </div>
  329. </div>
  330. <div class="comment" typeof="schema:UserComments">
  331. <p class="comment-meta">
  332. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">07/08/2006</span> :
  333. </p>
  334. <div class="comment-content" property="schema:commentText">
  335. <p>Bah, de rien, j'avais pas encore eu le temps de m'y intéressé :)<br />
  336. <br />
  337. Je laisse le code, ça peut servir à d'autres.<br />
  338. <br />
  339. </p>
  340. </div>
  341. </div>
  342. </div>
  343. </section>
  344. <footer>
  345. <nav>
  346. <p>
  347. <small>
  348. Je réponds quasiment toujours aux <a href="m&#x61;ilto:d&#x61;vid%40l&#x61;rlet&#46;fr" title="Envoyer un email">emails</a> (<a href="/david/signature/" title="Ma signature actuelle avec possibilité de chiffrement">signés</a>) et vous pouvez me rencontrer à Montréal. <span class="more-infos">N’hésitez pas à <a href="/david/log/" title="Être tenu informé des mises à jour">vous abonner</a> pour être tenu informé des publications récentes.</span>
  349. </small>
  350. </p>
  351. </nav>
  352. </footer>
  353. </div>
  354. <script src="/static/david/js/larlet-david-3ee43f.js" data-no-instant></script>
  355. <script data-no-instant>InstantClick.init()</script>
  356. </body>
  357. </html>