Accéder au contenu.
Menu Sympa

progliste - Re: [progliste] Outil Python pour compiler des Tables des Matières avec liens hypertextes en Markdown par Adrian Bonnet 🇫🇷 et demande complémentaire après mon test.

progliste AT framalistes.org

Objet : Liste sur la programmation tous languages, orienté déficients visuels

Archives de la liste

Re: [progliste] Outil Python pour compiler des Tables des Matières avec liens hypertextes en Markdown par Adrian Bonnet 🇫🇷 et demande complémentaire après mon test.


Chronologique Discussions  
  • From: Abdel <abdelkrim.bensaid AT free.fr>
  • To: progliste AT framalistes.org
  • Subject: Re: [progliste] Outil Python pour compiler des Tables des Matières avec liens hypertextes en Markdown par Adrian Bonnet 🇫🇷 et demande complémentaire après mon test.
  • Date: Fri, 19 Apr 2024 20:20:30 +0200
  • Authentication-results: rod3.framasoft.org; dkim=pass header.d=free.fr header.s=smtp-20201208 header.b=ThYGLoeB; dmarc=pass (policy=none) header.from=free.fr; spf=pass (rod3.framasoft.org: domain of abdelkrim.bensaid AT free.fr designates 212.27.42.6 as permitted sender) smtp.mailfrom=abdelkrim.bensaid AT free.fr

Salut mon ami Rémy,

Ah je comprends mieux maintenant.

Effectivement, là, tu n'as pas le choix, tu es contraint de n'utiliser que la syntaxe Markdown...

Pourquoi?

Tout simplement parce que d'une part, il y a certaines petites nuances entre la syntaxe de Pandoc et celle de Markdown, et d'une autre part, parce que tes fichiers "md" sont convertis en ligne par "GitHub", c'est donc la syntaxe Markdown et seulement la syntaxe Markdown qui doit être utilisée.

À ma connaissance, et sauf erreur de ma part, GitHub n'interprète les pages publiées par l'utilisateur que depuis Markdown.

C'est donc mort pour Pandoc, dommage...

Pour le module "toc.py", il est claire que c'est lui qui cloche, je vais regarder et te tiens au jus...

Autrement, tu dis que je suis le meilleur, moi j'estime plutôt que je ne suis pas meilleur qu'un autre, j'apprends beaucoup grâce à vos échanges.

Et que dirait t-on de toi, mon cher ami, après toutes ces années de vaillants services en faveur de la communauté des déficients visuels ?

Pour le projet, il est en stand by pour le moment, je te tiens au jus en perso dès qu'il y aura du nouveau le concernant.

Voili voilou, merci et très bon Weekend à tous.

Cordialement,
Abdel.
Le 19/04/2024 à 14:37, Rémy Ruiz a écrit :

Coucou Abdel,
Merci beaucoup...
Je vais mieux t'expliquer...
Avant de découvrir que le script mentionné ci-dessus existait, j'avais déjà consulté cet article sur pandoc
https://www.jdbonjour.ch/cours/markdown-pandoc/

Avec pandoc:
Quand je veux publier un article le lien du numéro nous renvoie au lien du titre mais une partie du code est visible une fois publié sur GitHub.

Cela m'est arrivé il y a longtemps et depuis je n'ai plus insisté...

Peut-être que je fais quelque chose mal, je ne sais pas.

Cela arrive aussi dans d'autres conversions y compris l'affichage des tableaux...

Je dois le corriger manuellement aussi ...

Code corrigé pour les tableaux en markdown pour GitHub
Il faut corriger les tableaux avec le signe: | (barre verticale )

Exemple :

| Commande                                          | Raccourci |
|  | ------------------------------------------------------------------------------------------ | ------------------------------------------ |
barre verticale contenu barre verticale contenu barre verticale
etc...

(J'ai utilisé le README-fr.md de l'auteur pour faire un autre test)

Comme je n'ai pas un modèle en ligne de commande, j'imaginais que ça pourrait être quelque chose comme :

pandoc -s -V lang=fr -N --toc FileName.md -o test.md

Je ne sais pas si cette commande est la bonne en utilisant pandoc aussi.

pour conclure. Bref...

Merci d'avoir clarifié mon doute, le problème provient de la façon dont la table des matières à été générée apparemment depuis le script toc.py.

C'est dommage que rien ne puisse être fait dans ledit script pour corriger ce problème...

Tu es le meilleur !

HMMM, Et le projet dont j'ai parlé en privé avance ? grand merci !

Voilà Cher Abdel,,
Encore mille merci pour tout.
Affaire à suivre, donc...
Bon week-end.
En toutes amitiés.
Rémy

Le 18/04/2024 à 19:26, Abdel a écrit :
Salut Rémy et tous,

Je viens juste de cloner le dépôt et j'ai essayé, comme toi, d'utiliser la commande permettant de générer le fichier "md" comportant la table des matières.

Je me retrouve dans la même situation que toi, je suis contraint, après obtention du fichier md comportant la table des matières générée de procéder à la correction des caractères illisibles.

Le problème provient de la façon dont la table des matières à été générée apparemment.

L'utilisateur est contraint de corriger manuellement les occurrences de la table comportant des caractères unicode.

Mais dis-donc, pourquoi n'utilises-tu pas pandoc, dans le tutoriel suivant, il est décrit pas à pas la procédure pour générer une table des matières.

https://www.jdbonjour.ch/cours/markdown-pandoc/


Qu'en penses-tu ?

Cordialement,
Abdel.
Le 18/04/2024 à 12:08, Rémy Ruiz a écrit :
Coucou Abdel et toute la liste,
Merci.
Ne t'inquiète pas...

Le fichier que j'ai modifié avant d'effectuer la conversion, c'est-à-dire le fichier appelé : "FileName.md"
Je l'ai ouvert avec le programme : Notepad++""
Aller à l'option :
Encodage
C'est bien coché comme :
UTF-8
Ensuite j'ai sélectionné l'option :
Convertir en UTF-8
Enregistré le fichier avec "Contrôle S".

python toc.py FileName.md -o test.md

Voici plus bas le résultat dans le fichier de sortie : test.md

Le résultat est le même que précédemment même si le fichier est encodé et converti en UTF-8 , donc voici la partie incriminée :

## Sommaire

* [Markdown-Table-of-Contents](#markdown-table-of-contents)
    * [Sommaire](#sommaire)
    * [Qu'est-ce que c'est ?](#qu'est-ce-que-c'est-)
    * [Comment ça marche ?](#comment-㧡-marche-)
    * [Comment l'utiliser ?](#comment-l'utiliser-)
    * [Arguments pour la ligne de commande](#arguments-pour-la-ligne-de-commande)
    * [Spécifications](#sp㩣ifications)
    * [Fonctionnalités manquantes](#fonctionnalit㩳-manquantes)
    * [Licence](#licence)

<!-- table of contents created by Adrian Bonnet, see https://Relex12.github.io/Markdown-Table-of-Contents for more -->

## Qu'est-ce que c'est ?

Le problème des symboles c'est-à-dire les signes cabalistiques ne se reflète que dans la partie convertie à l'aide du fichier toc.py, et le reste du fichier ne montre pas ce problème avec les autres mots accentués.

P.S : j'ai vu que les fichiers README.md et README-fr.md de l'auteur récupérés dans son dépôt sont sauvegardés avec codage : UTF-8


En espérant que cela  donne plus d'indices à explorer.


Si cela ne te dérange pas, STP tu peux faire également le test ?


Affaire à suivre, donc...
Encore mille merci pour tout.
En toutes amitiés.
Rémy

Le 18/04/2024 à 07:16, Abdel a écrit :
Salut Rémy et tous,

HMMM, tout d'abord, mille excuses pour le retard mon ami, je devais te répondre en privé, mais tant qu'à faire, je vais le faire sur la liste progliste, en espérant que ce sera utile à tous.

Bon mon ami Rémy, il faut vérifier la chose suivante sur le fichier "md" dans lequel ce problème d'encodage a été détecté.

Essaie de l'ouvrir avec Notepad++, 6pad ou NGPad.

1. Si tu l'as ouvert avec Notepad++, va dans le menu "Encodage", puis descends jusqu'à "convertir en utf-8".

Ceci fait, sauvegarde le fichier avec "Contrôle S".

2. Si tu l'as ouvert avec 6pad ou NGPad, va dans le menu "Format/Encodage", puis valide le choix "utf-8" ou "Unicode 8 bit, utf-8".

Ceci fait, sauvegarde le fichier avec "Contrôle S".

Après cela, refais ta conversion et le problème devrait être résolu.

Tu dois juste garder à l'esprit que des langues comme le français, espagnol, et bien d'autres utilisent des caractères accentués.

Ce sont ces caractères qui, lorsque ton fichier "md" est enregistré dans un encodage comme le "ansi" ou "ascii", qui vont poser ce problème, car python 3 va essayer de décoder le fichier "md" en utilisant l'encodage "utf-8".

Donc, basiquement, le fichier "md" comportant les caractères accentués doit être en "utf-8", afin que l'opération se déroule sans erreurs.

Lorsque tu génèreras le fichier comportant la table des matières, le problème que tu as signalé devrait alors être corrigé.

Fais des tests et tiens-nous au jus.

Cordialement,
Abdel.

Le 17/04/2024 à 21:02, Rémy Ruiz a écrit :
Coucou la liste,
En espérant que tout le monde va bien.
Aujourd'hui, je vous apporte quelque chose qui pourrait vous plaire, pour les amoureux du langage Markdown, donc voici les infos:
Outil Python pour compiler des Tables des Matières avec liens hypertextes en Markdown par Adrian Bonnet 🇫🇷 via BlindHelp.github.io
https://blindhelp.github.io/Markdown-Table-of-Contents/
Publié le Samedi 13 Avril 2024
Source:
BlindHelp.github.io
https://blindhelp.github.io/
ASTUCE EN INFORMATIQUE ADAPTÉE ET INFOS DIVERS (HORS SUJET)

J'ai essayé d'utiliser cet outil et je vous donne ici mes conclusions :

POUR VOTRE INFORMATION

Cette commande n'est pas reconnue  en utilisant : python3
python3 toc.py FileName.md

Cette commande n'est pas reconnue  en utilisant : python3
python3 toc.py FileName.md -o FileName.md

Comme seul python est installé sur mon système, je l'ai remplacé par la commande :
python toc.py FileName.md -o FileName.md

Afin de ne pas altérer le fichier original j'ai modifié le fichier en sortie avec un autre nom :
python toc.py FileName.md -o test.md

Vous pouvez renommer le fichier FileName.md sous un autre nom.

===

Explications rapides

Pour tester cela, j'ai fait ce qui suit :

J'ai pris le fichier qui se trouvait dans le dépôt de l'auteur appelé :
README-fr.md
J'ai précédemment supprimé ces parties du fichier appelé README-fr.md
* [Markdown-Table-of-Contents](#markdown-table-of-contents)
    * [Sommaire](#sommaire)
    * [Qu'est-ce que c'est ?](#qu'est-ce-que-c'est-)
    * [Comment ça marche ?](#comment-ça-marche-)
    * [Comment l'utiliser ?](#comment-l'utiliser-)
    * [Arguments pour la ligne de commande](#arguments-pour-la-ligne-de-commande)
    * [Spécifications](#spécifications)
    * [Fonctionnalités manquantes](#fonctionnalités-manquantes)
    * [Licence](#licence)

<!-- table of contents created by Adrian Bonnet, see https://Relex12.github.io/Markdown-Table-of-Contents for more -->

Puis Ctrl+s pour enregistrer ces changements.

Et renommé le fichier par :
FileName.md

Vous pouvez renommer le fichier FileName.md sous un autre nom.

J'ai également placé au même niveau le fichier appelé :
toc.py

J'ai ouvert le fichier que je viens de renommer :
FileName.md

Vous pouvez renommer le fichier FileName.md sous un autre nom.

J'ai laissé en tant que tel le premier titre de niveau 1 appelé :
# Markdown-Table-of-Contents
Celui-ci est situé au début du fichier.

J'ai fait la même chose avec le titre de niveau 2 appelé :
## Sommaire

J'ai laissé une ligne vide puis j'ai ajouté ceci :
[toc]## Sommaire

J'ai immédiatement laissé en tant que tel deuxième titre de niveau 2 appelé :

## Qu'est-ce que c'est ?

Cela ressemblerait à ceci :

## Sommaire

[toc]## Sommaire

## Qu'est-ce que c'est ?

Puis en ligne de commande j'ai tapé :

python toc.py FileName.md -o test.md

Vous pouvez renommer le fichier FileName.md sous un autre nom.

Le résultat se trouve dans le fichier appelé :
test.md

Malheureusement certains caractères ne sont pas bien encodés, je ne sais pas comment l'auteur a fait pour qu'ils s'affichent correctement dans son fichier appelé README-fr.md (pour le français).

J'imagine que ce problème n'existe pas dans le fichier anglais appelé :
README.md

Je viens de faire un test en utilisant le fichier en anglais appelé :
README.md

J'ai supprimé les parties insérées par le script :
## Summary

* [Markdown-Table-of-Contents](#markdown-table-of-contents)
    * [Summary](#summary)
    * [What is it?](#what-is-it)
    * [How does it work?](#how-does-it-work)
    * [How to use it?](#how-to-use-it)
    * [CLI arguments](#cli-arguments)
    * [Specifications](#specifications)
    * [Missing features](#missing-features)
    * [License](#license)

<!-- table of contents created by Adrian Bonnet, see https://github.com/Relex12/Markdown-Table-of-Contents for more -->

## What is it?

J'ai laissé en tant que tel le deuxième titre de niveau 2 appelé :
## Summary
puis le deuxième titre de niveau 2 appelé :
## What is it?

Cela ressemblerait à ceci :

## Summary

[toc]## Summary

## What is it?

Puis en ligne de commande j'ai tapé :

python toc.py FileName.md -o test.md

Vous pouvez renommer le fichier FileName.md sous un autre nom.

J'ai obtenu le même résultat que celui trouvé dans le fichier README.md en anglais réalisé par l'auteur sans aucun problème de codage.
Je pense que l'auteur a traduit le fichier README.md en français ensuite l'auteur l'a renommé en README-fr.md, c'est peut-être pour cela que ce problème d'encodage n'est pas reflété avec des séries de caractères exotiques qui ne s'affichent pas correctement une fois le fichier converti avec le script toc.py...

Le script toc.py au début il contient la ligne :
#!/usr/bin/env python3

Voici quelques explications trouvé sur :
python - Purpose of #!/usr/bin/python3 shebang - Stack Overflow
https://stackoverflow.com/questions/7670303/purpose-of-usr-bin-python3-shebang

Likely, one big motivation for the existence of shebangs is the fact that in Linux, we often want to run commands from PATH just as:
basename-of-command
instead of:
/full/path/to/basename-of-command
But then, without the shebang mechanism, how would Linux know how to launch each type of file?
Hardcoding the extension in commands:
 basename-of-command.py
or implementing PATH search on every interpreter:
python3 basename-of-command
would be a possibility, but this has the major problem that everything breaks if we ever decide to refactor the command into another language.
Shebangs solve this problem beautifully.
See also: Why do people write #!/usr/bin/env python on the first line of a Python script?
https://stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python-on-the-first-line-of-a-python-script

Je n'y connais rien en programmation, je voulais juste utiliser ce script pour me faciliter la tâche avec l'insertion des Tables des Matières avec liens hypertextes (TOC) lors de la rédaction de certains de mes posts, mais il me semble que cela fonctionne pour les fichiers écrits en anglais en Markdown, Comme je l'ai déjà dit, lorsqu'il est écrit en français, lorsque ledit script est exécuté, ceci insère des signes cabalistiques incompréhensibles dans le texte.

Voici une partie du texte Markdown avec la partie incompréhensible :

## Sommaire

* [Markdown-Table-of-Contents](#markdown-table-of-contents)
    * [Sommaire](#sommaire)
    * [Qu'est-ce que c'est ?](#qu'est-ce-que-c'est-)
    * [Comment ça marche ?](#comment- a-marche-)
    * [Comment l'utiliser ?](#comment-l'utiliser-)
    * [Arguments pour la ligne de commande](#arguments-pour-la-ligne-de-commande)
    * [Spécifications](#sp cifications)
    * [Fonctionnalités manquantes](#fonctionnalit s-manquantes)
    * [Licence](#licence)

<!-- table of contents created by Adrian Bonnet, see https://Relex12.github.io/Markdown-Table-of-Contents for more -->

## Qu'est-ce que c'est ?

Voilà,
Je pense avoir fait le tour dudit script...
Un grand merci aux personnes qui pourront mieux me guider à ce sujet.
En toutes amitiés.
Rémy









Archives gérées par MHonArc 2.6.24.

Haut de le page