tag:linuxfr.org,2005:/tags/mailhog/publicLinuxFr.org : les contenus étiquetés avec « mailhog »2018-04-12T22:53:59+02:00/favicon.pngtag:linuxfr.org,2005:News/385332018-04-09T09:39:16+02:002018-04-09T10:28:41+02:00Trois outils pour développeur : MailHog, Tokei et PandocLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Dans cette dépêche, je vais vous présenter trois outils que j’utilise de temps en temps et qui pourraient servir à d’autres développeurs :</p>
<ul>
<li>MailHog permet d’attraper des courriels pour les examiner ;</li>
<li>Tokei compte les lignes de code d’un projet ;</li>
<li>Pandoc est un couteau suisse pour manipuler des fichiers et les transformer d’un langage de balisage à un autre.</li>
</ul></div><ul><li>lien nᵒ 1 : <a title="https://github.com/mailhog/MailHog" hreflang="en" href="https://linuxfr.org/redirect/101745">MailHog</a></li><li>lien nᵒ 2 : <a title="https://github.com/Aaronepower/tokei" hreflang="en" href="https://linuxfr.org/redirect/101746">Tokei</a></li><li>lien nᵒ 3 : <a title="https://pandoc.org/" hreflang="en" href="https://linuxfr.org/redirect/101747">Pandoc</a></li></ul><div><h2 id="mailhog">MailHog</h2>
<p>MailHog (sous licence MIT) permet d’attraper des courriels envoyés par une plate‐forme de développement et de les afficher dans une interface Web. Pour cela, il fournit un serveur SMTP et un remplaçant au binaire <em>sendmail</em>, libre à vous de choisir le moyen qui vous convient le mieux. Il offre également, en option, la possibilité de transférer vers un vrai serveur SMTP les courriels et un <a href="https://github.com/mailhog/MailHog/blob/master/docs/JIM.md">outil de type chaos-monkey</a> pour tester les cas d’erreurs d’envoi de courriels.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6d61696c686f672f4d61696c486f672f6d61737465722f646f63732f4d61696c486f672e706e67/MailHog.png" alt="L’interface Web de MailHog avec trois courriels capturés" title="Source : https://raw.githubusercontent.com/mailhog/MailHog/master/docs/MailHog.png"></p>
<p>Je m’en sers quand je développe sur la partie serveur de Cozy Cloud. Cela permet de tester des fonctionnalités qui nécessitent l’envoi de courriels sans avoir à se compliquer la vie à configurer un vrai serveur d’envoi de courriels. En bonus, on évite de prendre le risque d’envoyer des courriels vers de vrais comptes d’autres personnes et on ne perd pas de temps à attendre que le courriel arrive, en attente d’un traitement anti‐pourriel.</p>
<hr><h2 id="tokei">Tokei</h2>
<p>Pour estimer la taille d’un projet, le nombre de lignes de code peut être une métrique intéressante. Il existe plusieurs projets pour faire ça, celui que je trouve le plus pratique est Tokei (sous licence Apache ou MIT). Voici ce qu’il affiche pour le <a href="https://github.com/linuxfrorg/linuxfr.org">dépôt principal de code de <em>LinuxFr.org</em></a> :</p>
<pre><code class="md"><span class="p">-------------------------------------------------------------------------------</span>
<span class="n">Language</span> <span class="n">Files</span> <span class="n">Lines</span> <span class="n">Code</span> <span class="n">Comments</span> <span class="n">Blanks</span>
<span class="p">-------------------------------------------------------------------------------</span>
<span class="n">CoffeeScript</span> <span class="mi">10</span> <span class="mi">770</span> <span class="mi">642</span> <span class="mi">31</span> <span class="mi">97</span>
<span class="n">Dockerfile</span> <span class="mi">1</span> <span class="mi">70</span> <span class="mi">49</span> <span class="mi">4</span> <span class="mi">17</span>
<span class="n">HTML</span> <span class="mi">24</span> <span class="mi">2660</span> <span class="mi">2161</span> <span class="mi">4</span> <span class="mi">495</span>
<span class="n">JavaScript</span> <span class="mi">11</span> <span class="mi">2686</span> <span class="mi">2025</span> <span class="mi">394</span> <span class="mi">267</span>
<span class="n">Markdown</span> <span class="mi">1</span> <span class="mi">187</span> <span class="mi">187</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="n">Rakefile</span> <span class="mi">2</span> <span class="mi">33</span> <span class="mi">24</span> <span class="mi">3</span> <span class="mi">6</span>
<span class="n">Ruby</span> <span class="mi">262</span> <span class="mi">11593</span> <span class="mi">8338</span> <span class="mi">1500</span> <span class="mi">1755</span>
<span class="n">Ruby</span> <span class="n">HTML</span> <span class="mi">1</span> <span class="mi">47</span> <span class="mi">46</span> <span class="mi">0</span> <span class="mi">1</span>
<span class="n">Sass</span> <span class="mi">47</span> <span class="mi">27317</span> <span class="mi">23467</span> <span class="mi">1583</span> <span class="mi">2267</span>
<span class="n">Shell</span> <span class="mi">4</span> <span class="mi">68</span> <span class="mi">50</span> <span class="mi">4</span> <span class="mi">14</span>
<span class="n">SVG</span> <span class="mi">41</span> <span class="mi">10886</span> <span class="mi">10865</span> <span class="mi">17</span> <span class="mi">4</span>
<span class="n">TeX</span> <span class="mi">1</span> <span class="mi">53</span> <span class="mi">43</span> <span class="mi">0</span> <span class="mi">10</span>
<span class="n">Plain</span> <span class="n">Text</span> <span class="mi">44</span> <span class="mi">531</span> <span class="mi">531</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="n">XML</span> <span class="mi">1</span> <span class="mi">11</span> <span class="mi">11</span> <span class="mi">0</span> <span class="mi">0</span>
<span class="n">YAML</span> <span class="mi">4</span> <span class="mi">173</span> <span class="mi">160</span> <span class="mi">4</span> <span class="mi">9</span>
<span class="p">-------------------------------------------------------------------------------</span>
<span class="n">Total</span> <span class="mi">454</span> <span class="mi">57085</span> <span class="mi">48599</span> <span class="mi">3544</span> <span class="mi">4942</span>
<span class="p">-------------------------------------------------------------------------------</span></code></pre>
<p>Par rapport à <a href="https://github.com/AlDanial/cloc">cloc</a>, Tokei a plusieurs avantages :</p>
<ul>
<li>il est beaucoup plus rapide (0,03 seconde pour Tokei contre 3,2 secondes pour cloc sur le dépôt principal de <em>LinuxFr.org</em>) ;</li>
<li>il est plus précis : cloc utilise des expressions rationnelles, alors que Tokei a de vrais analyseurs (en particulier, un début de commentaire dans une chaîne de caractères comme <code>printf("/*")</code> peut bien induire en erreur cloc) ;</li>
<li>il ignore par défaut les fichiers listés dans <code>.gitignore</code> (par exemple, quand j’ai lancé cloc sur l’exemple ci‐dessus, il a compté les fichiers dans <code>tmp/cache</code> et j’ai dû le relancer avec des options pour qu’il fasse ce que j’en attendais).</li>
</ul><hr><h2 id="pandoc">Pandoc</h2>
<p>Il existe de nombreux langages de balisage : HTML, Markdown, reStructuredText, textile, DocBook, <img style="display: inline; max-height: 1em;" class="mathjax" src="data:image/svg+xml;base64,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu%0AayIgc3R5bGU9IndpZHRoOiA1LjE0M2V4OyBoZWlnaHQ6IDIuMTQzZXg7IHZl%0AcnRpY2FsLWFsaWduOiAtMC41NzFleDsgbWFyZ2luLXRvcDogMXB4OyBtYXJn%0AaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMXB4OyBtYXJnaW4tbGVm%0AdDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyAiIHZpZXdCb3g9Ii0zIC03MDUu%0ANjc2NTIwODk5NjM0MiAyMTg5LjU3Nzc3NzIxMDkxMyA5NDcuMjExNjQ0MTU0%0ANzg5MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVm%0AcyBpZD0iTWF0aEpheF9TVkdfZ2x5cGhzIj48cGF0aCBpZD0iU1RJWFdFQk1B%0ASU5JLTRDIiBzdHJva2Utd2lkdGg9IjEwIiBkPSJNNTU5IDE4MGwtNTggLTE4%0AMGgtNTA5djE2YzU2IDYgNjQgMTUgODIgNzhsMTIyIDQzOGM4IDI3IDExIDQ3%0AIDExIDYyYzAgMjkgLTE1IDM5IC03NyA0M3YxNmgyNzN2LTE2Yy02MCAtNCAt%0AODUgLTIwIC0xMDEgLTc3bC0xMjAgLTQyOWMtNiAtMjMgLTEwIC00MCAtMTAg%0ALTU0YzAgLTMxIDIzIC00MSAxMDUgLTQxYzEwMCAwIDEzMSA1IDE4MCAzOGMz%0AMiAyMSA1NCA1NCA4MiAxMTJaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJN%0AQUlOSS00MSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTU2NCAwaC0yNDV2MTZj%0ANjMgMyA3NyAxOSA3NyA1M2MwIDggLTEgMTcgLTIgMjZsLTIwIDEzMWgtMjIw%0AbC01OSAtMTExYy0xNCAtMjYgLTIyIC01MCAtMjIgLTY2YzAgLTE5IDE1IC0z%0AMSA2MiAtMzN2LTE2aC0xODZ2MTZjNDYgOSA1OSAyNiAxMzQgMTU2bDI4NSA0%0AOTZoMjZsOTIgLTU1M2MxNCAtODQgMjUgLTk1IDc4IC05OXYtMTZ6TTM2OSAy%0ANjJsLTQ1IDI2M2wtMTQ5IC0yNjNoMTk0WiI+PC9wYXRoPjxwYXRoIGlkPSJT%0AVElYV0VCTUFJTkktNTQiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik02MzMgNjUz%0AbC00NCAtMTY0bC0xNyAyYzIgMTcgMyAzMyAzIDQ2YzAgNTMgLTM2IDgxIC0x%0AMDEgODFoLTU4bC0xMzcgLTQ5MGMtNiAtMjEgLTE0IC00NCAtMTQgLTY2YzAg%0ALTMxIDEyIC0zOSA1MyAtNDNsMzUgLTN2LTE2aC0yODh2MTZjNjkgNiA5MiAy%0AMSAxMDcgNzVsMTQzIDUyN2MtMTU4IDAgLTE5MCAtMTYgLTIzOCAtMTI0bC0x%0AOCA0bDQyIDE1NWg1MzJaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJNQUlO%0ASS00NSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTYzNCA2NTNsLTMxIC0xNTRs%0ALTIyIDJjMiAxNyAzIDMzIDMgNDZjMCA2MCAtMzUgNzMgLTE5MiA3M2MtNTcg%0AMCAtNjcgLTQgLTczIC0yNmwtNjYgLTIzM2g3OGM5MCAwIDEwMSAxMiAxMzkg%0AOTdsMTggLTRsLTY4IC0yMzJsLTIwIDVjNSAyMiA3IDM0IDcgNTJjMCAxNyAt%0AMiAyNiAtNyAzMWMtMTEgMTAgLTM4IDE1IC03OCAxNWgtNzhsLTMyIC0xMTJj%0ALTI1IC04OCAtMzYgLTEzNCAtMzYgLTE0NmMwIC0yNCAyMyAtMzQgNzkgLTM0%0AIGM5OCAwIDE1MiAxMiAyMDMgMzljMzIgMTcgNTYgNDUgOTQgOThsMTYgLThs%0ALTYyIC0xNjJoLTUwN3YxNmM1NiAxMCA2NSAxNiA4MSA3NGwxMjMgNDQyYzYg%0AMjAgMTEgNTIgMTEgNjRjMCAyNyAtMTUgMzUgLTc3IDQxdjE2aDQ5N1oiPjwv%0AcGF0aD48cGF0aCBpZD0iU1RJWFdFQk1BSU5JLTU4IiBzdHJva2Utd2lkdGg9%0AIjEwIiBkPSJNNjU1IDY1M3YtMTZjLTQzIC0xNCAtNzUgLTM3IC0xMjUgLTk1%0AbC0xNjkgLTE5NGwxMDEgLTI1NWMyNCAtNjAgMzcgLTY5IDEwNSAtNzd2LTE2%0AaC0yNzF2MTZjNjAgMSA3NyAxMyA3NyAzN2MwIDEzIC02IDMxIC0xNCA1MWwt%0ANjcgMTY1bC0xNTEgLTE3MmMtMTQgLTE2IC0yMyAtMzQgLTIzIC00OGMwIC0y%0AMiAxOCAtMzMgNjYgLTMzdi0xNmgtMjEzdjE2YzU2IDEwIDgzIDQwIDIyMCAy%0AMDBsODMgOTdsLTEwMyAyNTUgYy0xOSA0OCAtMzcgNjQgLTk1IDY5djE2aDI2%0AM3YtMTZjLTU1IC03IC03MSAtMTYgLTcxIC00MWMwIC0xMyA1IC0yOSAxNiAt%0ANTZsNTkgLTE0N2wxNDUgMTY3YzE0IDE2IDIxIDMxIDIxIDQzYzAgMTkgLTE4%0AIDMyIC02MSAzNHYxNmgyMDdaIj48L3BhdGg+PC9kZWZzPjxnIHN0cm9rZT0i%0AYmxhY2siIGZpbGw9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjAiIHRyYW5zZm9y%0AbT0ibWF0cml4KDEgMCAwIC0xIDAgMCkiPjx1c2UgaHJlZj0iI1NUSVhXRUJN%0AQUlOSS00QyIgeGxpbms6aHJlZj0iI1NUSVhXRUJNQUlOSS00QyI+PC91c2U+%0APGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjM5LDApIj48dXNlIHRyYW5zZm9y%0AbT0ic2NhbGUoMC43MDcxMDY3ODExODY1NDc2KSIgaHJlZj0iI1NUSVhXRUJN%0AQUlOSS00MSIgeD0iMCIgeT0iMjk2IiB4bGluazpocmVmPSIjU1RJWFdFQk1B%0ASU5JLTQxIj48L3VzZT48L2c+PHVzZSBocmVmPSIjU1RJWFdFQk1BSU5JLTU0%0AIiB4PSI1MDQiIHk9IjAiIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJTkktNTQi%0APjwvdXNlPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMDIsMCkiPjx1c2Ug%0AaHJlZj0iI1NUSVhXRUJNQUlOSS00NSIgeD0iMCIgeT0iLTIxNiIgeGxpbms6%0AaHJlZj0iI1NUSVhXRUJNQUlOSS00NSI+PC91c2U+PC9nPjx1c2UgaHJlZj0i%0AI1NUSVhXRUJNQUlOSS01OCIgeD0iMTUyNiIgeT0iMCIgeGxpbms6aHJlZj0i%0AI1NUSVhXRUJNQUlOSS01OCI+PC91c2U+PC9nPjwvc3ZnPg==%0A" alt="\LaTeX">, MediaWiki markup, OrgMode, EPUB, etc. Et ces langages ont parfois plusieurs variantes (exemple : CommonMark et GitHub Flavored Markdown pour le Markdown). Bref, ce n’est pas toujours facile de connaître les différents langages et de passer de l’un à l’autre. Pandoc (sous licence GPL v2 ou plus) permet de convertir un texte de la plupart de ces langages vers un autre langage, ou d’autres choses comme du PDF ou de l’OpenDocument.</p>
<p>Je m’en sers, par exemple, pour écrire des <a href="https://pandoc.org/MANUAL.html#producing-slide-shows-with-pandoc">présentations en Markdown</a> et en générer une version PDF via la classe <a href="https://en.wikipedia.org/wiki/Beamer_(LaTeX)">Beamer</a> pour <img style="display: inline; max-height: 1em;" class="mathjax" src="data:image/svg+xml;base64,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu%0AayIgc3R5bGU9IndpZHRoOiA1LjE0M2V4OyBoZWlnaHQ6IDIuMTQzZXg7IHZl%0AcnRpY2FsLWFsaWduOiAtMC41NzFleDsgbWFyZ2luLXRvcDogMXB4OyBtYXJn%0AaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMXB4OyBtYXJnaW4tbGVm%0AdDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyAiIHZpZXdCb3g9Ii0zIC03MDUu%0ANjc2NTIwODk5NjM0MiAyMTg5LjU3Nzc3NzIxMDkxMyA5NDcuMjExNjQ0MTU0%0ANzg5MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVm%0AcyBpZD0iTWF0aEpheF9TVkdfZ2x5cGhzIj48cGF0aCBpZD0iU1RJWFdFQk1B%0ASU5JLTRDIiBzdHJva2Utd2lkdGg9IjEwIiBkPSJNNTU5IDE4MGwtNTggLTE4%0AMGgtNTA5djE2YzU2IDYgNjQgMTUgODIgNzhsMTIyIDQzOGM4IDI3IDExIDQ3%0AIDExIDYyYzAgMjkgLTE1IDM5IC03NyA0M3YxNmgyNzN2LTE2Yy02MCAtNCAt%0AODUgLTIwIC0xMDEgLTc3bC0xMjAgLTQyOWMtNiAtMjMgLTEwIC00MCAtMTAg%0ALTU0YzAgLTMxIDIzIC00MSAxMDUgLTQxYzEwMCAwIDEzMSA1IDE4MCAzOGMz%0AMiAyMSA1NCA1NCA4MiAxMTJaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJN%0AQUlOSS00MSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTU2NCAwaC0yNDV2MTZj%0ANjMgMyA3NyAxOSA3NyA1M2MwIDggLTEgMTcgLTIgMjZsLTIwIDEzMWgtMjIw%0AbC01OSAtMTExYy0xNCAtMjYgLTIyIC01MCAtMjIgLTY2YzAgLTE5IDE1IC0z%0AMSA2MiAtMzN2LTE2aC0xODZ2MTZjNDYgOSA1OSAyNiAxMzQgMTU2bDI4NSA0%0AOTZoMjZsOTIgLTU1M2MxNCAtODQgMjUgLTk1IDc4IC05OXYtMTZ6TTM2OSAy%0ANjJsLTQ1IDI2M2wtMTQ5IC0yNjNoMTk0WiI+PC9wYXRoPjxwYXRoIGlkPSJT%0AVElYV0VCTUFJTkktNTQiIHN0cm9rZS13aWR0aD0iMTAiIGQ9Ik02MzMgNjUz%0AbC00NCAtMTY0bC0xNyAyYzIgMTcgMyAzMyAzIDQ2YzAgNTMgLTM2IDgxIC0x%0AMDEgODFoLTU4bC0xMzcgLTQ5MGMtNiAtMjEgLTE0IC00NCAtMTQgLTY2YzAg%0ALTMxIDEyIC0zOSA1MyAtNDNsMzUgLTN2LTE2aC0yODh2MTZjNjkgNiA5MiAy%0AMSAxMDcgNzVsMTQzIDUyN2MtMTU4IDAgLTE5MCAtMTYgLTIzOCAtMTI0bC0x%0AOCA0bDQyIDE1NWg1MzJaIj48L3BhdGg+PHBhdGggaWQ9IlNUSVhXRUJNQUlO%0ASS00NSIgc3Ryb2tlLXdpZHRoPSIxMCIgZD0iTTYzNCA2NTNsLTMxIC0xNTRs%0ALTIyIDJjMiAxNyAzIDMzIDMgNDZjMCA2MCAtMzUgNzMgLTE5MiA3M2MtNTcg%0AMCAtNjcgLTQgLTczIC0yNmwtNjYgLTIzM2g3OGM5MCAwIDEwMSAxMiAxMzkg%0AOTdsMTggLTRsLTY4IC0yMzJsLTIwIDVjNSAyMiA3IDM0IDcgNTJjMCAxNyAt%0AMiAyNiAtNyAzMWMtMTEgMTAgLTM4IDE1IC03OCAxNWgtNzhsLTMyIC0xMTJj%0ALTI1IC04OCAtMzYgLTEzNCAtMzYgLTE0NmMwIC0yNCAyMyAtMzQgNzkgLTM0%0AIGM5OCAwIDE1MiAxMiAyMDMgMzljMzIgMTcgNTYgNDUgOTQgOThsMTYgLThs%0ALTYyIC0xNjJoLTUwN3YxNmM1NiAxMCA2NSAxNiA4MSA3NGwxMjMgNDQyYzYg%0AMjAgMTEgNTIgMTEgNjRjMCAyNyAtMTUgMzUgLTc3IDQxdjE2aDQ5N1oiPjwv%0AcGF0aD48cGF0aCBpZD0iU1RJWFdFQk1BSU5JLTU4IiBzdHJva2Utd2lkdGg9%0AIjEwIiBkPSJNNjU1IDY1M3YtMTZjLTQzIC0xNCAtNzUgLTM3IC0xMjUgLTk1%0AbC0xNjkgLTE5NGwxMDEgLTI1NWMyNCAtNjAgMzcgLTY5IDEwNSAtNzd2LTE2%0AaC0yNzF2MTZjNjAgMSA3NyAxMyA3NyAzN2MwIDEzIC02IDMxIC0xNCA1MWwt%0ANjcgMTY1bC0xNTEgLTE3MmMtMTQgLTE2IC0yMyAtMzQgLTIzIC00OGMwIC0y%0AMiAxOCAtMzMgNjYgLTMzdi0xNmgtMjEzdjE2YzU2IDEwIDgzIDQwIDIyMCAy%0AMDBsODMgOTdsLTEwMyAyNTUgYy0xOSA0OCAtMzcgNjQgLTk1IDY5djE2aDI2%0AM3YtMTZjLTU1IC03IC03MSAtMTYgLTcxIC00MWMwIC0xMyA1IC0yOSAxNiAt%0ANTZsNTkgLTE0N2wxNDUgMTY3YzE0IDE2IDIxIDMxIDIxIDQzYzAgMTkgLTE4%0AIDMyIC02MSAzNHYxNmgyMDdaIj48L3BhdGg+PC9kZWZzPjxnIHN0cm9rZT0i%0AYmxhY2siIGZpbGw9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjAiIHRyYW5zZm9y%0AbT0ibWF0cml4KDEgMCAwIC0xIDAgMCkiPjx1c2UgaHJlZj0iI1NUSVhXRUJN%0AQUlOSS00QyIgeGxpbms6aHJlZj0iI1NUSVhXRUJNQUlOSS00QyI+PC91c2U+%0APGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjM5LDApIj48dXNlIHRyYW5zZm9y%0AbT0ic2NhbGUoMC43MDcxMDY3ODExODY1NDc2KSIgaHJlZj0iI1NUSVhXRUJN%0AQUlOSS00MSIgeD0iMCIgeT0iMjk2IiB4bGluazpocmVmPSIjU1RJWFdFQk1B%0ASU5JLTQxIj48L3VzZT48L2c+PHVzZSBocmVmPSIjU1RJWFdFQk1BSU5JLTU0%0AIiB4PSI1MDQiIHk9IjAiIHhsaW5rOmhyZWY9IiNTVElYV0VCTUFJTkktNTQi%0APjwvdXNlPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMDIsMCkiPjx1c2Ug%0AaHJlZj0iI1NUSVhXRUJNQUlOSS00NSIgeD0iMCIgeT0iLTIxNiIgeGxpbms6%0AaHJlZj0iI1NUSVhXRUJNQUlOSS00NSI+PC91c2U+PC9nPjx1c2UgaHJlZj0i%0AI1NUSVhXRUJNQUlOSS01OCIgeD0iMTUyNiIgeT0iMCIgeGxpbms6aHJlZj0i%0AI1NUSVhXRUJNQUlOSS01OCI+PC91c2U+PC9nPjwvc3ZnPg==%0A" alt="\LaTeX">. Ça m’a également servi, par le passé, pour convertir un wiki d’un format à un autre.</p></div><div><a href="https://linuxfr.org/news/trois-outils-pour-developpeur-mailhog-tokei-et-pandoc.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/114190/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/trois-outils-pour-developpeur-mailhog-tokei-et-pandoc#comments">ouvrir dans le navigateur</a>
</p>
Bruno MichelDavy Defaudpatrick_gNils Ratusznikhttps://linuxfr.org/nodes/114190/comments.atom