Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 26 décembre 2019

Deux Plugins IDEA pour copier du code en tant qu'image et les utiliser dans des fichiers Markdown

Intégrer quelques lignes de code dans un fichier Markdown, README ou autre, ne pose pas de problème particulier.

On utilise alors:

  • Une indentation de 4 espaces (ou d'une tabulation)
  • Une séquence de code entre deux sections délimitées par trois backticks

Par exemple:

```console
$ sudo curl -L https://git.framasoft.org/grumpyf0x48/liar/raw/0.1/liar -o /usr/local/bin/liar
```

ce qui donne le rendu suivant.

Code in Markdown

Vous noterez qu'ici le caractère $ a été ajouté pour bien matérialiser la présence d'un Shell mais il n'est absolument pas requis dans la syntaxe Markdown.

Malheureusement, lorsque votre moteur de blog, par exemple la version de dotclear utilisée ici par Gandi, ne vous permet pas un rendu sympa des blocs de code, il faut bien trouver une solution !

Créer une image à partir d'une sélection de code dans IntelliJ

On va alors avoir recours à un plugin dans IntelliJ pour créer très rapidement une image à partir d'une section de code que l'on vient de sélectionner.

Ce plugin, c'est Code Screenshots, qui une fois installé va créer une image du code sélectionné chaque fois que vous utiliserez le raccourci: Ctrl+Alt+Shift+A.

L'image en question sera alors placée dans le presse papier (clipboard) du système.

On récupère l'image de la façon suivante:

xclip -selection clipboard -t image/png -o > $HOME/code-snippet.png

Notez qu'il nous faudra ensuite l'uploader sur le site du blog.

Copier une image dans un fichier Markdown depuis IntelliJ

Si maintenant nous avons une image dans le presse papier du système et que nous souhaitons l'intégrer dans un fichier Markdown édité avec IntelliJ, nous allons installer un deuxième plugin, et c'est Paste Images into Makdown.

Une fois installé, le raccourci Ctrl + V utilisé dans un fichier Markdown lorsqu'une image existe dans le presse-papier affichera la boite de dialogue suivante:

Paste Image into Markdown

Il ne nous reste alors qu'à choisir:

  • le nom de l'image
  • le répertoire où l'on souhaite la placer

et le fichier Markdown est alors modifié comme suit:

![](.README_images/040301ad.png)

Il nous reste enfin à donner un titre à cette image dans le Markdown.

samedi 24 décembre 2016

Vérifier la syntaxe des fichiers Markdown avec markdownlint

Les fichiers README des projets open source (ou non) sont maintenant (presque) toujours écrits avec le langage de balisage Markdown qu'on ne présente plus.

Après avoir trouvé un éditeur pour les fichiers Markdown et cherché comment convertir un document Markdown en HTML je me suis demandé comment vérifier les erreurs de syntaxe dans les fichiers README.

Il y a énormément d'éditeurs de Markdown en ligne, par contre les outils de vérification de syntaxe ne sont pas très nombreux. J'en ai quand même trouvé un sur GitHub.

Il s'agit de markdownlint disponible à l'adresse suivante: markdownlint.

markdownlint étant écrit en Ruby, il faut procéder comme suit pour l'installer:

sudo apt-get install rubygems
sudo gem install mdl

La vérification d'un fichier README se fait alors avec la commande mdl:

mdl README.md

Et on obtient les erreurs suivantes, par exemple:

README.md:291: MD013 Line length
README.md:19: MD012 Multiple consecutive blank lines
README.md:187: MD009 Trailing spaces
README.md:223: MD014 Dollar signs used before commands without showing output
README.md:15: MD034 Bare URL used

La première erreur MD013 vérifiant que les lignes n'excèdent pas 80 caractères est à mon avis discutable pour un fichier README.

Pour exclure cette règle, on peut procéder comme suit:

mdl -r ~MD013 README.md 

Ceci étant dit, il est facile d'inclure un appel à la commande mdl dans un processus de build logiciel ou d'intégration continue afin de vérifier la non transgression d'un certain nombre de règles.

Afin d'approfondir le sujet, ci-joint l'aide de la commande mdl:

mdl --help
Usage: mdl [options] [FILE.md|DIR ...]
    -c, --config FILE                The configuration file to use
    -g, --git-recurse                Only process files known to git when given a directory
    -i, --[no-]ignore-front-matter   Ignore YAML front matter
    -l, --list-rules                 Don't process any files, just list enabled rules
    -r, --rules RULE1,RULE2          Only process these rules
    -u, --rulesets RULESET1,RULESET2 Specify additional ruleset files to load
    -a, --[no-]show-aliases          Show rule alias instead of rule ID when viewing rules
    -w, --[no-]warnings              Show kramdown warnings
    -d, --skip-default-ruleset       Don't load the default markdownlint ruleset
    -s, --style STYLE                Load the given style
    -t, --tags TAG1,TAG2             Only process rules with these tags
    -v, --[no-]verbose               Increase verbosity
    -h, --help                       Show this message
    -V, --version                    Show version

mercredi 31 août 2016

Remarkable, un éditeur de Markdown très chouette pour Linux

On ne présente plus le langage de balisage Markdown qui est très utilisé dans les projets open source pour rédiger les fichiers README ou même de la documentation.

Mais la syntaxe de Markdown a beau être simple, on préfère quand même vérifier ce que l'on tape. Il nous faut un éditeur WYSIWYG (What You See Is What You Get), c'est à dire disposant de la fonctionnalité Live Preview: Etre obligé d'exporter le document périodiquement en HTML ou PDF n'est pas tenable.

J'ai découvert récemment un éditeur open source, écrit en Python, et fonctionnant sous Linux. Il s’appelle Remarkable et dispose (entre autres) des fonctionnalités suivantes:

  • Gestion du Markdown de GitHub
  • Coloration syntaxique
  • Export en PDF et HTML
  • Live Preview
  • CSS personnalisé
  • Différents thèmes pour le Live Preview et l'Export
  • Barre d'outils pour la mise en italique, gras, ...

Remarkable s'installe facilement, il est écrit en Python et vous aurez donc besoin d'installer quelques paquets relatifs à Python avant de pouvoir l'installer.

Vous trouverez le projet Remarkable sur GitHub.

Parmi les défauts que j'ai pu lui trouver:

  • Il n'y a pas de possibilité de recherche ou recherche / remplacement. Pour un éditeur, c'est un peu gênant.
  • Quand on lance remarkable depuis un terminal, il faut utiliser nohup sinon la fermeture du terminal ferme l'éditeur :-(
  • La synchronisation des vues Edtion et Preview semble dysfonctionner par moments. Le site parle de synchronized scrolling, je suis un peu sceptique ...

Le dernier défaut qu'on note rapidement, et qui est préoccupant, remarkable n'a pas l'air d'être réellement maintenu.

Cela étant dit, c'est le meilleur éditeur de Markdown que j'ai trouvé jusque là pour Linux, et ce n'est pas le premier que j'installe. Je vous invite donc à l'essayer !