diff --git a/journal/Readme.md b/journal/Readme.md index f56eb60293dc1edebe2b3660a48b225330a72878..96d6e552e5486c10d3af3097cb4c38faa8435a59 100644 --- a/journal/Readme.md +++ b/journal/Readme.md @@ -1,9 +1,42 @@ -# Journal de bord du Mooc / Mooc's logbook +# Journal de bord du Mooc -FR +**Bienvenue dans mon journal de bord du Mooc RR !** -Espace réservé au journal de bord du Mooc +## Module 1 : « Cahier de notes, cahier de laboratoire » -EN +Ce premier module offre une partie historique tout à fait interressante. +J'utilise déjà la notation markdown pour divers applications, par contre j'ai +beaucoup à apprenndre sur le fonctionnement de Gitlab et je pressens que j'en +ferai un usage intensif ! -Reserved for the Mooc's logbook \ No newline at end of file +### Une application des « étiquettes » + +Je propose une petite application utilisant les étiquettes. + +Il s'agit de construire un fichier markdown structuré en *strophes* à savoir un +ensemble de lignes encadrées par des étiquettes personnalisées. + +- La première strophe est la table des matières (notée TOC). +- Sur chaque ligne de la TOC est inscrit un sujet numéroté- +- Les autres strophes, encadrées des numéros correspondants, développent les sujets. + +Les étiquettes sont de la forme : + +- pour la table des matières : ` ... ` +- pour le sujet numéroté 4 (par exemple) : ` ... ` + +Pour exploiter ce fichier, un script Python extrait une strophe en utilisant ces +commentaires comme des expressions régulières, et l'affiche sur le navigateur +par défaut, + +Ci-joint, une copie d'écran qui illustre la structure de l'application. + +![exemple](etikedo.png). + + +Le script Python se nomme `md2html.py`. +Il est à côté du répertoire `exemple` contenant le fichier markdown `exemple.md` +et des images utiles au format `png`. + +Pour exploiter plus facilement ce fichier, on peut utiliser un shell script (cf. +le fichier `exemple`). diff --git a/journal/canelle_gingembre.png b/journal/canelle_gingembre.png new file mode 100644 index 0000000000000000000000000000000000000000..4d30482bbaaee349681ae405b18e8600692c60b6 Binary files /dev/null and b/journal/canelle_gingembre.png differ diff --git a/journal/etikedo.png b/journal/etikedo.png new file mode 100644 index 0000000000000000000000000000000000000000..9cab2bb28f418a234d8417ec53a85636967fb776 Binary files /dev/null and b/journal/etikedo.png differ diff --git a/journal/exemple.md b/journal/exemple.md new file mode 100644 index 0000000000000000000000000000000000000000..60f694e665631d0ed77be764071c3a58fe6dcadf --- /dev/null +++ b/journal/exemple.md @@ -0,0 +1,148 @@ + + + +### TOC + +1. Texlive +2. Anaconda +3. Gâteaux secs +4. Clavier Eo + + +--- + + +### Install texlive + +La commande `tlmgr --self` informe sur la mise-à-jour. Pour faire une mise-à-jour : + +`tlmgr -gui` Puis appuyer sur "Mettre à jour tous les packages installés" + +##### Install +Exemple d'install pour texlive 2019 : + +- download de `install-tl` depuis le site `tug.org/texlive/acquire-netinstall.html` +- décompresser `install-tl-unx.tar.gz` +- `$ ./install-tl -gui` +- configurer le répertoire principal : `/home/bob/texlive/2019` + +##### Ajout d'un paquet (par exemple `bclogo`) + +`tlmgr install bclogo` + +##### Ajout d'un paquet hors texlive (par exemple `tikz-uml.sty`) + +- Créer un répertoire dans `~/texlive/2019/texmf-dist/tex/latex` : + +`$ mkdir tikz-uml`. Vérifier les permissions : `755 bob:bob` + +- Ajouter le paq dans le répertoire : + +` ./tikz-uml/tikz-uml.sty`. Vérifier les permissions : `644 bob:bob` + +- Régénérer la base de données de texlive : + +`$ mktexlsr` + +**Note :** Même procédure pour ajouter une classe de document (`*.cls`). + + +--- + + +### Install anaconda + +##### Install + +- Download : `https://www.anaconda.com/distribution/` +- Dans `Téléchargement` : `$ bash ` +- Accepter l'activation de l'environnement de base + +##### Mise à jour + +`conda update conda` puis `conda update --all` + +##### Les environnements + +- Création + + 1. `conda config --set channel_priority strict` + 2. `conda create -n dun2 python=3.7` + +- Activation : `conda activate dun2` (alias : `dun2`) +- Désactiver l'environnement en cours : `conda deactivate` (alias : `deac`) + +Note : Pour **ne pas activer** conda base au startup : + +`$ conda config --set auto-activate_base false` + + +--- + + +### Gâteaux secs + +##### Préparation + +45 min. Cuisson 10 min. + +##### Ingrédients + +- 175 g de farine +- 1/2 cc de bicarbonate de sodium +- 1/2 cc de cannelle +- 1/2 cc de gingembre +- 75 g de sucre +- 75 g de beurre +- 2 cs de miel (miel de coing ou sirop d'agave) +- 1 jaune d'œuf + +![gâteaux secs](canelle_gingembre.png) + +Préchauffer le four à 180 °C (th 6). + +Mélanger les matières sèches. Ajouter le beurre ramolli, le jaune d'œufs et le miel de coing. Bien mélanger. Pétrir, faire une boule et la laisser reposer 1/2 h au frigo dans papier alimentaire. + +Étaler au rouleau sur papier sulfurisé, quadriller au couteau puis séparer les carrés pour qu'ils ne collent pas à la cuisson. + +10 min au four puis laisser refroidir sur le papier sulfurisé. + +Bon appétit ! + + +--- + + +### Claviers Eo + +Par défaut j'utilise la disposition de clavier : « Français (variante) » qui est assez riche. + +*On peut visualiser un clavier par l'application* `Onboard`. + +Par contre, j'ai besoin d'afficher les caractères accentués de l'espéranto. + +##### Configuration + +À la racine du compte, mettre le fichier `.Xmodmap` (-rw-r--r--) contenant : + +![keycode](keycode.png) + +On active ce fichier par la commande : + +`$ xmodmap ./.Xmodmap` + +*À ne faire qu'une fois car l'effet est persistant.* + +##### Usage + +Les 6 lettres accentuées de l'espéranto sont simplement obtenues en utilisant la touche Windows gauche (notée `W`). Par exemple : + +- `W+c` (ĉ) ou `W+u` (ŭ) pour les bas de casse ; +- `Shift+W+c` (Ĉ) ou `Shift+W+u` (Ŭ) pour les capitales. + diff --git a/journal/keycode.png b/journal/keycode.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed09e63ef28c066983414e227048be73ac3d23a Binary files /dev/null and b/journal/keycode.png differ diff --git a/journal/md2html.py b/journal/md2html.py new file mode 100644 index 0000000000000000000000000000000000000000..ca4301301c59ce9831eed93c63475a7d8a77ca02 --- /dev/null +++ b/journal/md2html.py @@ -0,0 +1,74 @@ +# coding: utf8 +"""Extrait une strophe du fichier info.md et l'affiche dans firefox + +Usage: python3 md2html.py nom_fichier.md [numéro_strophe] + +La strophe à afficher est encadrée par un commentaire spécial dans info.md : + + +strophe + + +L'appel sans numéro de strophe donne la table des matières . + +Auteur: B. Cordeau sur une idée de L. Pointal +""" + +# Import ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +import sys +import re +from pathlib import Path +from markdown import markdown +import webbrowser + +# Programme principal ========================================================= +fichier_md = sys.argv[1] + +motif = 'toc' if len(sys.argv) == 2 else sys.argv[2] + +motif_deb = r"" +motif_fin = r"" +deb = re.compile(motif_deb) +fin = re.compile(motif_fin) + +infos = "" # chaîne résultat +dedans = False + +with open(fichier_md, encoding='utf-8') as f: + for line in f: + if fin.match(line): + break + + if dedans: + infos += line + + if deb.match(line): + dedans = True + +path = Path(sys.argv[1]) +fichier = path.name.split(".")[0] +titre = "TOC" if len(sys.argv) == 2 else fichier + " n° " + sys.argv[2] + +entete = """\ + + + + + """ + titre + """ + + + """ + +body = markdown(infos) + +enbas = """\ + + +""" + +page = entete + body + enbas + +with open("page.html", "w", encoding="utf-8") as f: + f.write(page) + +webbrowser.open("page.html") diff --git a/module1/exo2/fichier-markdown.md b/module1/exo2/fichier-markdown.md index 30d74d258442c7c65512eafab474568dd706c430..510b434ee27ba34961a70810fea18d65864d112c 100644 --- a/module1/exo2/fichier-markdown.md +++ b/module1/exo2/fichier-markdown.md @@ -1 +1,54 @@ -test \ No newline at end of file +# Partie 1 + +## Sous-partie 1 : texte + +Une phrase sans rien + +*Une phrase en italique* + +**Une phrase en gras** + +Un lien vers [fun-mooc.fr](https://www.fun-mooc.fr/) + +Une ligne de `code` + +## Sous-partie 2 : listes + +**Liste à puce** + +- item + - sous-item + - sous-item +- item +- item + +**Liste numérotée** + +1. item +2. item +3. item + +## Sous-partie 3 : code + +# Extrait de code + +```python +# On repère une position sur un échiquier par une lettre (la colonne) et un nombre (la ligne). +# Entrer une position valide et déterminer la couleur de la case. + +H = 'abcdefgh' # Repère horizontal + +# Saisies filtrées de la position +lettre = input("Position horizontale ['a'.. 'h'] : ").lower() +while lettre not in H: + lettre = input("Position horizontale ['a'.. 'h'], S.V.P : ").lower() +nombre = int(input("Position verticale [1.. 8] : ")) +while not (1 <= nombre <= 8): + nombre = int(input("Position verticale [1.. 8], S.V.P : ")) + +# On postule que noir est vrai et blanc faux +coul_lettre = True if H.index(lettre)%2 == 0 else False +coul = coul_lettre if nombre%2 == 1 else not(coul_lettre) + +print(f"\nLa position '{lettre}{nombre}' est une case {'noire' if coul else 'blanche'}.") +``` \ No newline at end of file