Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formatage Markdown des tableaux #54

Open
Seb35 opened this issue Mar 29, 2018 · 9 comments
Open

Formatage Markdown des tableaux #54

Seb35 opened this issue Mar 29, 2018 · 9 comments
Labels
spec-format Lié à la façon d’organiser les dépôts Git

Comments

@Seb35
Copy link
Member

Seb35 commented Mar 29, 2018

Actuellement les tableaux sont en HTML, et certains diffs montrent des retours à la ligne alors que ceux-ci ne sont que liés à la représentation HTML sans influence sur le contenu. Il faudrait nettoyer cette soupe de balises HTML et avoir une jolie représentation textuelle des tableaux.

La version GitHub du Markdown possède cette syntaxe, je trouve ça pas mal, elle a l’avantage d’être lisible. Vérifier s’il est possible de fusionner verticalement ou horizontalement des cellules ou, à défaut, si c’est bloquant en recherchant dans des textes de loi.

Voir aussi cette discussion sur Meta Stackoverflow.

@Changaco
Copy link
Member

Il faudrait nettoyer cette soupe de balises HTML

Cette fonctionnalité est implémentée dans legi.py 0.3 (Legilibre/legi.py#25).

@boogheta
Copy link

@Seb35 Le problème de la syntaxe markdown des tableaux est qu'elle repose sur des espaces complétant le texte, ce qui est déjà un peu chiant à générer imho mais ça n'est pas critique*
Mais surtout du coup dès que le texte d'une cellule va augmenter, ça génerera du diff sur toutes les autres cellules de la même colonne
L'idéal à mon avis serait de partir sur des pistes du type daff mais je ne sais pas à quel point c'est facilement intégrable
On a le même souci dans la fabrique et pas encore trouvé de solution idéale à ce jour. cc @mdamien

@Seb35
Copy link
Member Author

Seb35 commented Mar 30, 2018

@boogheta Je n’avais effectivement pas pensé que les espaces généreront des diffs ; on peut peut-être contourner ceci en mettant toujours une espace à gauche et à droite de chaque cellule même si le texte brut est moins lisible. En syntaxe MediaWiki, il n’y aurait pas ce problème mais ce n’est pas non plus très lisible (exemple ci-dessous). @mdamien m’a parlé de daff (on a échangé sur différentes problématiques techniques qu’on rencontrait chacun de notre côté) ; ça peut effectivement convenir côté visualisation, mais j’aimerais avoir une solution texte brut pour ce qui est des dépôts Git.

A B C
D E F
MediaWiki :
{|
|-
| A
| B
| C
|-
| D
| E
| F
|}

GitHub Flavoured Markdown:
| A | B | C |
|:-:|:-:|:-:|
| D | E | F |

@boogheta
Copy link

boogheta commented Apr 3, 2018

Effectivement si on accepte de rendre le markdown moins lisible, soit en méthode wiki avec une ligne par cellule, soit en méthode github avec juste un espace à gauche et à droite, ça peut rendre les diffs lisibles sans bruit.
Du coup c'est un compromis à trouver entre lisiblité du texte et lisibilité des diffs, relou :p

exemple ci-dessous plus réaliste pour le côté peu lisible de la version github avec des cellules de longueur différentes :

| A | Bateau | Cri |
|:-:|:-:|:-:|
| Demain | Est | Forcément un autre jour |

@mdamien
Copy link

mdamien commented Apr 3, 2018

J'ai une préférence perso pour la syntaxe mediawiki, en markdown, cela te force d'avoir un header, ce qui ajoute du bruit dans le diff

@Seb35
Copy link
Member Author

Seb35 commented Apr 4, 2018

J’ai aussi une préférence pour la syntaxe MediaWiki qui permet aussi des fusions de cellules. Par contre, je me vois pas trop écrire les titres en Markdown et les tableaux en MediaWiki, sinon l’option est du "tout MediaWiki", mais la syntaxe est largement moins répandue que Markdown.

Bon, après, l’idéal serait de faire un sondage sur ce que proposent les principales interfaces Git (GitHub, Gitlab, Gogs, …) comme syntaxe de tableau et comme formats supportés, et mettre en balance tout ça avec la lisibilité des syntaxes.

PS : toutes ces syntaxes, il y a en plein, un peu trop d’ailleurs et elles ne sont pas toujours bien formalisés (genre toutes les variantes de Markdown), et elles sont parfois limitées comme ce problème de tableaux ou le fait qu’il n’y a que 6 niveaux de titres (alors que j’aurais besoin de plus, 10 niveaux je crois ; je me permets d’ailleurs d’aller au-delà des 6 niveaux réglementaires, même si ça n’est pas reconnu par les moteurs de rendu). Je vais peut-être finir par faire ma propre syntaxe pour parer aux limitations, comme dit XKCD 927 (je dis ça dans un moment de déprime, mais c’est peut-être pas une solution raisonnable).

@fenollp
Copy link

fenollp commented Apr 5, 2018

C’est plus joli d’avoir des pages qui rendent bien sur github/gitlab/gogs mais sûrement juste un petit plus non ?
Si la syntaxe MediaWiki est mieux définie + supporte plus de niveaux de tableau + a des parsers dans plusieurs langages mainstream ça a l’air plus intéressant IMO.
Si c’est le cas ça permet un peut moins de déprime dans ce monde :)

Seb35 added a commit that referenced this issue Aug 14, 2018
- Les <br>, <p>, <div>, <span> sont transformés en paragraphes au sens Markdown
- Les listes à puces prennent toujours le format de liste à puces Markdown, y
  compris avec les tirets exotiques (avec une ligne vide précédent la liste à
  puces comme en Markdown originel)
- Maximum de 1 espace consécutive
- Maximum de 2 retours chariots consécutifs
- Le formatage des tableaux reste en HTML pour l’instant, mais la soupe de <tr>,
  <td>, <th> est séparée en les mettant chacun sur une ligne séparée; déjà ça
  rend le tableau plus lisible et les diffs plus lisibles
- Les alinéas sont désormais correctement délimités, par 1 ou 2 retours chariot
  (2 le plus souvent, mais 1 lorsqu’il s’agit de listes à puces), hormis dans
  les tableaux où cela demande un parsing spécifique.

Issue: #54
Issue: #25
@Seb35
Copy link
Member Author

Seb35 commented Aug 14, 2018

Sans préjuger d’une décision sur cette issue, je viens a minima d’organiser un peu la soupe de tags de tableaux HTML, ça rend le texte et les diffs plus lisibles en restant fidèle à l’original. Par exemple sur le git-blame du code de la propriété intellectuelle, on voit assez distinctement sur l’article D631-1 les différentes modifications -- j’ai fait en sorte de retirer les espaces en fin de ligne à l’intérieur des cellules sinon ça rajoute des "faux-positifs" sur la version au 1er janvier 2012 (ainsi on voit sur cette version que seul le gras du titre est changé).

@Seb35
Copy link
Member Author

Seb35 commented Mar 27, 2019

Je viens de tomber sur le forum de CommonMark et il y a une longue discussion sur les tableaux (et qq autres, chercher "table"). (Je le mentionne mais j’ai pas encore lu en détails.)

En y repensant à l’instant, je me dis que finalement la lisibilité des diffs peut être moins importante que la lisibilité de la syntaxe (donc j’ai moins de scrupules à utiliser une syntaxe Markdown/GFM) étant donné que je travaille sur la visualisation des diffs pour le site archeo-lex.fr (donc je me place sur plus de liberté d’action, comme pour la Fabrique, voir cette issue qui fait suite aux implémentations en PHP et Python) et il y a aussi l’option -w dans git diff -w pour éviter les différences d’espaces, et GitHub a désormais un "rich diff" sur les fichiers Markdown où ils ignorent peut-être les différences d’espaces.

@Seb35 Seb35 added the spec-format Lié à la façon d’organiser les dépôts Git label Aug 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec-format Lié à la façon d’organiser les dépôts Git
Projects
None yet
Development

No branches or pull requests

5 participants