Le but de cet article est de parler de la librairie txtmark mais pour ceux qui ne connaissent pas je vais commencer par un petit rappel
Le langage Markdown
Voici un exemple simple pour comprendre la syntaxe Markdown.
Heading ======= Sub-heading ----------- Paragraphs are separated by a blank line. Text attributes *italic*, **bold**, `monospace`. A [link](http://javamind-fr.blogspot.fr/). Blog category list: * java * android * agile method
Une fois que le texte est saisi il peut être stocké sous la même forme. A la restitution il est parfois préférable de le convertir en HTML comme ci dessous. C'est à cette étape qu'une librairie existante vous sera utile.
<h1>Heading</h1>
<h2>Sub-heading</h2>
<p>Paragraphs are separated by a blank line.</p>
<p>Text attributes <em>italic</em>, <strong>bold</strong>, <code>monospace</code>.</p>
<p>A <a href="http://javamind-fr.blogspot.fr">link</a>.</p>
<p>Blog category list:</p>
<ul>
<li>java</li>
<li>android</li>
<li>agile method</li>
</ul>
Pour plus d'informations vous pouvez vous référer au site de John Gruber.
Un exemple de librairie
Dans le cadre de la mise à jour de mon application android pour Mixit 2014 j'ai du trouver une librairie assez simple, légère et rapide à embarquer. J'en ai testé plusieurs avant de tomber sur txtmark. A chaque fois j'étais tombé sur plusieurs problèmes
- lenteur
- profondeur des dépendances. X lib associée à récupérer pour effectuer la conversion...
- complexité
- ...
Pour intégrer la librairie à votre projet si vous utilisez Gradle
compile 'com.github.rjeschke:txtmark:0.11'
Pour Maven
<dependency> <groupId>com.github.rjeschke</groupId> <artifactId>txtmark</artifactId> <version>0.11</version> </dependency>
Après au niveau de votre code vous devez simplement appeler le com.github.rjeschke.txtmark.Processor. Par exemple ici je met à jour un TextField Android
TextView mytext = (TextView) row.findViewById(R.id.link_text);
mytext.setText(Html.fromHtml(Processor.process(membre.getDescription())), TextView.BufferType.SPANNABLE);
Voila rien de plus à dire sur le sujet... Je vous conseille de lire la page Github liée au projet si vous voulez ajouter des options pour interpréter plus que la syntaxe Markdown. Sur les tests de performance l'auteur indique plusieurs comparaisons avec des outils existants
Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.