7 min read

Rstudio et blogdown

L’IDE scientifique couteau suisse

Présentation

Rstudio est un IDE , orienté exploitation de données , il est en particulier utilisé dans le domaine scientifique . Il est capable de se connecter à des bases de données, de gérer Git, se connecter à github.

Il a sa console R , un terminal, un navigateur de fichier, et toute une série d’outils destiné à produire de la documentation élégante.

Il est maintenu par posit.co.


Fonctionnalités

Visual RMarkdown

C’est la clef de l’IDE. Il envoie le document des son enregistrement à pandoc qui va le convertir à la volée en .html , en .pdf pour l’afficher.

Dans le cas présent , j’utilise le packages blogdown qui fait tourner un moteur de blog écrit en go , et suivant la commande envoyée; soit il me produit le site en local en ré écrivant les entêtes des pages .html pour résoudre les liens en local.

Sinon les liens vont dehors vers le vrai site en production. On début ça surprend , quand on n’a pas saisi le workflow.

Ce n’est pas très flagrant , il y a un petit bouton qui permet de basculer l’éditeur en mode Visual .

⚠️ Ne passez pas d’un mode d’édition à un autre ,le code déjà édité en mode source risque de casser en mode visual , choisissez l’un ou l’autre, ça m’a cassé plein de syntaxes imbriquées.

J’ai testé c’est sympa, et ça pourrait séduire les adeptes de la souris, et doucement les faire glisser vers l’édition textuelle .

En mode visual le rendu du texte est en direct , on peut toujours taper du Markdown, celui ci est immédiatement converti , c’est du WYSIWYG : What You See Is What You Get.

Pour en revenir aux non “codeux” (c’est que du Markdown quand même..), les options sont là, accessibles à la souris .

Menu de mise en page

Le gros plus, il suffit de faire un controle / pour obtenir la liste des commandes , et l’insertion d’images est peut être la seule commande qui m’intéresse . Le code n’est pas compliqué en soit ![info_bulle](mon_image) mais il faut connaitre le chemin, et surtout le nom de l’image.accéder au code

Un panneau s’ouvre

On navigue dans ses dossiers pour choir l’image à insérer.

Choix de l’image

On lui met une légende, si on le souhaite

une légende si on le souhaite

En 3 c’est la console qui indique les commandes exécutées , et les erreurs rencontrées. C’est également depuis cette console que l’on peut installer des Rpackages.


RMarkdown

L’extension .Rmarkdown ou .Rmd; permettent d’inclure des blocs de code R dans le document, ou du LaTex et de le traiter pour produire un graphique, ou des formules mathématiques directement dans l’éditeur et dans le document.

Mais ne tentez pas de faire du R dans du Markdown , utilisez seulement RMarkdown.

Malheureusement , j’ai commencé à éditer en Markdown , je ne pourrais pas faire la démonstration dans cet article.

R

Déjà traité dans une série d’articles

LaTex

Le Tex , et sa version dédiée aux mathématiques le LaTex est très utilisé en milieu universitaire , pour produire de belles documentation.

LaTex permet en particulier d’insérer des formules mathématiques du plus joli effet.

Le LaTex dans le Markdown fera l’objet d’un article ultérieurement.


Markdown

Bref historique

Le Markdown est un langage de balisage léger, dont les premières implémentations remontent à 2004; par John Gruber en collaboration avec Aaron Swartz, sur la base du projet atx d’Aaron Source wikipédia.

Vers 2012-2014 avec github , la pratique du versionning de code s’est imposé , la culture de la documentation et du wiki aussi : ce qui est une bonne chose .

L’utilisation du markdown a séduit les informaticiens, sa syntaxe difficile simplicime, le rend très accessible.

  • Insertion de code

Un effet sympa du Markdown est que l’on peu insérer du code in line <h2 style="color:crimson;">Titre niveau 2</h2>, grâce au caractère d’échappement ``, qui est l’accent grave , obtenu avec la combinaison de touche alt-grp 7 . Il faut placer son code entre 2 accents. Car si le code n’est pas échappé, il sera interprété directement

  • Échappement du caractère d’échappement

Il faut à mon tour que j’échappe le caractère d’échappement pour vous montrer à quoi ressemble l’insertion de blocs de codes.

De cette manière

\`\`\`langage




\`\`\`

Les blocs de codes permettent la coloration syntaxique, il suffit d’indiquer le langage au début du bloc.

  • md

```md

# Titre de niveau 1
## Titre de niveau 2

```

# Titre de niveau 1

## Titre de niveau 2
  • yml

```yml

  volumes:
    nextcloud:
    db:

  services:
    db:
      image: mariadb:10.6
      restart: always
      command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=P@ssw0rdC0mpliqu3
      - MYSQL_PASSWORD=changeme
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  volumes:
    nextcloud:
    db:

```


volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
  volumes:
    - db:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=P@ssw0rdC0mpliqu3
    - MYSQL_PASSWORD=changeme
    - MYSQL_DATABASE=nextcloud
    - MYSQL_USER=nextcloud
volumes:
  nextcloud:
  db:

```bash

```

  • html

```html

<!DOCTYPE html>
<html lang="fr-FR">
  <head><script src="/blogdown/livereload.js?mindelay=10&amp;v=2&amp;port=4321&amp;path=blogdown/livereload" data-no-instant defer></script>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="generator" content="Hugo 0.145.0">


<title>Les ordinateurs, les autres et moi</title>
<meta property="og:title" content="Les ordinateurs, les autres et moi">
<meta property="og:type" content="website">

```

<!DOCTYPE html>
<html lang="fr-FR">
  <head><script src="/blogdown/livereload.js?mindelay=10&amp;v=2&amp;port=4321&amp;path=blogdown/livereload" data-no-instant defer></script>
    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Hugo 0.145.0">


<title>Les ordinateurs, les autres et moi</title>
<meta property="og:title" content="Les ordinateurs, les autres et moi">
<meta property="og:type" content="website">
  • Les niveaux de titre

# Titre 1
## Titre 2
### Titre 3
  • Titre avec du code html

Le markdown traite très bien le code html, il a été pensé pour que les balises correspondent.

<h2 style="color:red;">Titre niveau 2</h2>

Titre niveau 2

Si ce rouge est trop criard , il existe 140 couleurs.

<h2 style="color:crimson;">Titre niveau 2</h2>
<h3 style="color:IndianRed;">Titre niveau 3</h3>

Titre niveau 2

Titre niveau 3

Supporte également le code hexadécimal des couleurs

Fonctionne pour un <a style="color:#483D8B;">mot</a> dans une phrase.

Fonctionne pour un mot dans une phrase. Je découvre que ça me permet de souligner un mot , et de lui mettre une sur-brillance: classe.

  • Les commentaires

Markdown utilise les commentaires html <!–Ne pas oublier–>

  • Les emphases

*  un astérisque pour un ou plusieurs mots en *italique*
*  un unerscore encore pour un ou plusieurs mot en _italique_
* 2 astérisques pour un mot en gras **gras**
* 2 underscore pour un ou plusieurs mots __encore en gras__
* le tidle ~ pour barrer un mot ~barré~
  • un astérisque pour un ou plusieurs mots en italique
  • un unerscore encore pour un ou plusieurs mot en italique
  • 2 astérisques pour un mot en gras gras
  • 2 underscore pour un ou plusieurs mots encore en gras
  • le tidle ~ pour barrer un mot barré
  • Les listes

* liste à point
* liste à point
  * sous liste

1.  liste numérotée
2.  liste numérotée
  • liste à point
  • liste à point
    • sous liste
  1. liste numérotée
  2. liste numérotée
  • Les tâches

* [x] blogdown::serve_site()
* [ ] Corriger les fautes d'orthographes
* [x] Corriger les syntaxes
* [ ] blogdown::stop_server()
* [ ] blogdown::build_site()
* [ ] ssh-add ~/.ssh/ma_clé_privé
* [ ] git status
* [ ] git add *
* [ ] git commit -m "MaJ du site"
* [ ] git push --set-upstream origin main 
  • blogdown::serve_site()

  • Corriger les fautes d’orthographes

  • Corriger les syntaxes

  • blogdown::stop_server()

  • blogdown::build_site()

  • ssh-add ~/.ssh/ma_clé_privé

  • git status

  • git add *

  • git commit -m “MaJ du site”

  • git push –set-upstream origin main

  • Les encarts

> Ceci est un encart
>> encore plus encarté

Ceci est un encart

encore plus encarté

  • Ligne séparatrice

3 underscore ___
ou 3 tirets ---
ou 3 ticks ```



blogdown Générateur de blog

Yihui Xie créatrice du template hugo-lithium travaillait pour posit.co.

Elle a développé à priori en partie Rstudio , et a créé le package blogdown , et plusieurs autres, ce package exploite hugo le moteur de blog écrit en go . Yihui annonce son départ après 10 ans chez posit.

Workflow

Je profite d’avoir fait les listes de tâches pour noter le workflow ici. Je n’avais pas bien lu la documentation, et au début je poussais les fichiers .html issu de la version locale, et quand le serveur tourne encore , et que l’on voit localhost dans le navigateur ça surprend ….

* [x] blogdown::serve_site()
* [ ] Corriger les fautes d'orthographes
* [x] Corriger les syntaxes
* [ ] blogdown::stop_server()
* [ ] blogdown::build_site()
* [ ] ssh-add ~/.ssh/ma_clé_privé
* [ ] git status
* [ ] git add *
* [ ] git commit -m "MaJ du site"
* [ ] git push --set-upstream origin main 

Ressouces et liens utiles