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

Markdown bug #57

Closed
cgabard opened this issue Jan 6, 2014 · 83 comments
Closed

Markdown bug #57

cgabard opened this issue Jan 6, 2014 · 83 comments
Labels
S-BUG Corrige un problème

Comments

@cgabard
Copy link
Contributor

cgabard commented Jan 6, 2014

J'ouvre cette issue pour répertorier les bugs connus dans le markdown du site.

Une autre issue est ouverte pour discuter et répertorier les features demandées : changement de syntaxe, nouveau comportement, nouvelle extension, etc... : #58

Ici on se concentre sur les bugs.

Actuellement de connus :

  • La syntaxe de code "à la git hub" ne fonctionne pas dans des blocs persos ou citation : Ce bug a normalement été résolu mais n'est pas encore poussé en prod.
  • Les smiley s'insères n'importe comment dans les codes ou messages
  • La syntaxe actuelle des tableaux ne permet pas les sauts de ligne au sein d'une cellule, ni l'utilisation du caractère |.
  • les sauts de ligne ne sont pas permis dans un bloc aligné (centré ou à droite, peu importe).

N’hésitez pas si vous en voyez d'autres.

@cgabard cgabard mentioned this issue Jan 6, 2014
@ghost ghost assigned cgabard Jan 6, 2014
@Taluu
Copy link
Contributor

Taluu commented Jan 6, 2014

Histoire de faire mon chieur, je suis pas convaincu de ces meta-issue (plutôt qu'un tag / issue + milestone éventuelle)

Sinon, à propos de bug, j'ai cru en voir quelques un dans le post fait sur ZdS :

  • Dans les balises code, autant les * sont bien affichées, mais pas les _

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

Dans les balises code, autant les * sont bien affichées, mais pas les _

C'est à dire ?

@Taluu
Copy link
Contributor

Taluu commented Jan 6, 2014

Regarde les exemples des textes italiques et gras. Dans la balise code d'utilisation avec les _, ben on les voit pas

edit : nevermind, il semblerait que ce soit une sorte d'erreur css ?

@ShigeruM
Copy link
Contributor

ShigeruM commented Jan 6, 2014

Oui c'est à cause de la hauteur du bloc, un peu trop petite. Si tu descends un peu avec la scrollbar, tu les voies. En tout cas sur Chrome c'est comme ça. J'imagine que ce sera corrigé avec le nouveau design.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

En tout cas ce n'est pas un bug du markdown. On ne pourrat pas vérifier ça avant l'integration finale

@Coy0te
Copy link
Contributor

Coy0te commented Jan 6, 2014

Sujet complété avec les limites/bugs de la syntaxe des tableaux.
Les sauts de ligne intra-cellule ne marchent pas.
Et l'échappement du | avec \ devant ne marche pas non plus.

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

En ce qui concerne les tables multi-lignes, il faudrait, @cgabard si possible que tu intègres cette extension. ça rajouteras la syntaxe suivante :

+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | $1.34         | - built-in wrapper |
|               |               | - bright color     |
+---------------+---------------+--------------------+
| Oranges       | $2.10         | - cures scurvy     |
|               |               | - tasty            |
+---------------+---------------+--------------------+

Qui est aussi celle de pandoc

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

Pour le |, si l'échappement ne fonctionne pas, je pense voir comment faire pour que ce soit le cas, si tu pense que ça peut être une solution viable. Car dans tous les cas il faut pouvoir différentier les deux

@medegit : La syntaxe actuel ne le permet pas. Je remarque que pandoc propose 2 autres syntaxes qui le permettes : http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html :

  • multiline_tables
  • grid_tables

Qu'en pense tu ?

je vais voir ce qui se fait dans les extensions existantes

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

Bon j'ai pas trouvé mieux que celle proposé par @firm1

Cela me plait comme solution car a priori je n'ai rien a codé et que c'est compatible pandoc.

La grande question est de savoir si on autorise les deux syntaxe ou juste celle grid_tables

@Coy0te
Copy link
Contributor

Coy0te commented Jan 6, 2014

Pour moi ça semble ok. Je sais encore pas trop comment le parseur devra se comporter sur les quelques tableaux qui utilisent du colspan et du rowspan, mais bon... Je vais me débrouiller.

Du coup, tu me confirmes : je peux partir sur la syntaxe grid_tables pour la conversion zCode -> md ?

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

En fait si tu regarde https://github.com/smartboyathome/Markdown-GridTables/blob/master/test_grid_tables.py tu verra que l'extension proposé par @firm1 supporte les colspan et rowspan.

Celle de pandoc non, mais ça ce n'est pas le prob actuel.

Yep je pense qu'on peut partir dessus. Reste a voir si je peux garder les deux d'activés sans que ça pose de probs.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 6, 2014

Ok, c'est cool ça ! Sûrement chiant à gérer pour moi à la traduction du zCode (xD), mais bonne nouvelle quand même. Je pars là-dessus.

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

La grande question est de savoir si on autorise les deux syntaxe ou juste celle grid_tables

Je préfère qu'on autorise les deux syntaxe, parce qu'il y'en a une qui est plus simple a écrire à la main que l'autre.

@medegit privilégie lors de l'import la deuxième syntaxe (gridtable) pour être sur que tout sera toujours dans le pack.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

@medegit : a priori je vais essayé de pousser ça rapidement. J'ai pas grand chose à faire vu que c'est déjà codé ! En attendant oui tu va pouvoir partir là dessus.

@firm1 : Oui je vais tenter de garder les deux, normalement ça devrait le faire mais les syntaxes étant proches, on est jamais à l'abris d'une connerie. Je pense que ça va se jouer selon une question d'ordre de parsage.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

@ShigeruM : tu peux regarder la syntaxe de grid_tables expliqué plus haut pour les tableaux, en plus de celle précédente, pour mettre a jour ton tuto sur la syntaxe ? a priori les deux syntaxes seront supporté, celle de grid_table etant plus lourde mais permetant une édition plus avancé (colspan, rowspan, et multilignes dans les cellules, entre autre)

@Coy0te
Copy link
Contributor

Coy0te commented Jan 6, 2014

Bon, j'ai commencé par bricoler un truc qui semble marcher pour les tableaux sans rowspan/colspan.

Prévenez-moi dès que la syntaxe grid_tables est poussée sur ZdS, pour que je teste vite fait quelques trucs avant de continuer.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 6, 2014

Btw, qu'est-ce que je fais des "légendes" des tableaux ? Je les sors et les affiche en tant que texte centré et gras en dessous du tableau ?

@SpaceFox
Copy link
Contributor

SpaceFox commented Jan 6, 2014

Dans une balise (HTML5).

Le 6 janvier 2014 16:40, Coyote notifications@github.com a écrit :

Btw, qu'est-ce que je fais des "légendes" des tableaux ? Je les sors et
les affiche en tant que texte centré et gras en dessous du tableau ?


Reply to this email directly or view it on GitHubhttps://github.com//issues/57#issuecomment-31657638
.

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

Je les sors et les affiche en tant que texte centré et gras en dessous du tableau ?

C'est une solution qui me sied

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

@SpaceFox : L'extension md que @cgabard utilise ne me semble pas gérer les captions.

@SpaceFox
Copy link
Contributor

SpaceFox commented Jan 6, 2014

Argh. C'est dommage mais tant pis.

2014/1/6 firm1 notifications@github.com

@SpaceFox https://github.com/SpaceFox : L'extension md que @cgabardhttps://github.com/cgabardutilise ne me semble pas gérer les captions.


Reply to this email directly or view it on GitHubhttps://github.com//issues/57#issuecomment-31658112
.

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

Par contre, s'il est pas trop paresseux, il peut implementer le caption lui même. la syntaxe de pandoc pour celà, revient à faire un truc dans le genre :

: Le titre de mon tableau

+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | $1.34         | - built-in wrapper |
|               |               | - bright color     |
+---------------+---------------+--------------------+
| Oranges       | $2.10         | - cures scurvy     |
|               |               | - tasty            |
+---------------+---------------+--------------------+

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

@medegit : Je pense envoyer ça à @firm1 demain soir, donc j'imagine que mercredi ce sera en prod

Pour les captions, si ce n'est pas dans l'extension, je peux le mettre sur ma todo liste, dans une deuxième pass.

Mais la même question se pose pour les images : est ce qu'on essait de les détecter comme figure et utiliser les balises html5 correspondantes ? si oui quelle syntaxe ?

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

Pour les images, tu peux le mettre dans ta todolist avec la syntaxe de pandoc qui donne ceci :

![Légende de mon image](url)

Donc, du coup @medegit tu peux prendre ça en compte autant pour les tables que pour les images avec légendes ?

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

Ce que tu met comme légende est normalement le texte alt. En gros, si je comprend bien, quand on trouve une image seule dans son pragraphe, on fait un rendue de figure plutot que de img, c'est ça ?

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

je dirais les deux, alt et figure.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 6, 2014

Certes mais l'idée est là : transformer une balise img en figure (avec caption) si elle est seule dans son praragraphe ?!

Cela ne me parrait pas specialement compliqué, au détail pret que je dois trouver un moyen de différencier un smiley d'une image classique. Car il va m'etre plus simple de faire une extension qui passe après la création des balises images (qui est intégré à python-markdown et donc pas facilement modifiable).

@firm1
Copy link
Contributor

firm1 commented Jan 6, 2014

Cela ne me parrait pas specialement compliqué

Et donc tu confirmes donc à @medegit ce que tu feras, pour qu'il agisse dans le bon sens ?

@Coy0te
Copy link
Contributor

Coy0te commented Jan 7, 2014

J'ai fait quelques tests, le parseur tourne bien, il ne reste plus que les tableaux à gérer correctement.

Le souci avec les tableaux, c'est que j'ai réalisé ce matin que dans la syntaxe des tableaux grid_tables, il faut que les séparateurs de colonnes soient alignés verticalement pour que ça fonctionne, on ne peut pas dessiner les bordures à l'arrache (non alignées verticalement) comme on peut le faire avec une syntaxe comme pipe_tables. Donc a priori, faut dessiner un tableau dont les bordures des colonnes sont aussi larges que le contenu de leur plus longue cellule... Ça, plus les cas de rowspan/colspan, ça sent le truc ultra-méga-chiant à gérer, sans parler de la gueule du tableau dans la source du tuto, ni même du helper JS qu'il va falloir coder sur la zForm pour éviter à l'utilisateur de devoir aligner les bordures de ses tableaux avec une police à chasse non fixe...!).

Autrement dit, les tableaux markdown façon ASCII art, ça va très bien pour les tableaux qui contiennent trois caractères par cellule, mais au-delà ça devient un peu n'importe quoi.

Je continue mes tests et je verrai ce que mes rendus vont donner quand la syntaxe sera implémentée sur ZdS, mais je suis un peu sceptique.

@firm1
Copy link
Contributor

firm1 commented Jan 7, 2014

Si tu héberges ton code de parseur sur un repo git quelque part et qu'il est fait en java, ça m’intéresserai de le voir, je pourrais te faire des suggestion dessus vue que je suis globalement plus efficace en Java qu'en python.

@firm1
Copy link
Contributor

firm1 commented Jan 7, 2014

@medegit Et en checkant rapidement Google, je suis tombé sur ceci, qui va surrement te faciliter encore plus la tache.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 7, 2014

En soit c'est surtout pour toi le prob. Pour les auteurs ils auront les deux syntaxes à dispo donc la syntaxe grid_table sera réservé à ceux qui veulent faire des trucs avancés. A eux de faire attention à leur code.

Mais dans tous les cas, il ne semble pas y avoir de syntaxe miracle a la fois simple et permetant le colspan, rowspan et le multiligne.

Apres si quelqu'un pond une solution parfaite, je peux l'implémenter (mais ça prendra plus de temps.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 7, 2014

Il reste toujours la possibilité d'autorisé les tableaux avec du code html mais

  1. On ouvre une breche dans le principe de les interdire
  2. markdown normalement ne va pas chercher sa syntaxe à l'interieur de code html, donc ça va m'obliger à faire des trucs louches pour qu'il le fasse. Sinon il faut re-autoriser les autres balises html

@Coy0te
Copy link
Contributor

Coy0te commented Jan 7, 2014

Merci @firm1 pour l'API ascii, ça va simplifier le travail.
J'ai pas accès à github avant ce soir, je te mettrai ça en ligne d'ici minuit.

@firm1
Copy link
Contributor

firm1 commented Jan 7, 2014

Bah, les auteurs, ils auront à moyen terme un éditeur de tableau fait en JS (faut que je crée l'issue). Donc, on est a peu près sur que celui qui se rate, c'est son problème.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 7, 2014

Bon moi les je ferais la mise a jour du markdown demain soir finalement. J'ai du temps de dispo demain aprem, normalement je devrait pouvoir pousser les tableaux (avec si possible les legendes), les smiley, les commentaires voire le truc des figures.

J'ai oublié un truc ?

@Coy0te
Copy link
Contributor

Coy0te commented Jan 7, 2014

Pour le moment je pars sur l'ascii style, on verra ce que ça donne.
Au cas où, si jamais ça ressemble à rien, il me semble bien que pandoc interprète le md au sein des blocs HTML, à vérifier.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 7, 2014

Oui mais pandoc n'est pas utilisé. On envisage de le prendre pour générer les pdf & ebook, et c'est pour ça que l'on cherche a rester proche de sa syntaxe au possible, mais c'est python-markdown qui est utilisé sur le site. Et lui il me semble qu'il n'est pas specialement fait pour ça (à vérifier, je suis passé vite dans ce code là)

@cgabard
Copy link
Contributor Author

cgabard commented Jan 8, 2014

Bon j'ai une branche avec smiley, tableaux en grille et légende de tableaux. Cependant les légendes necessites actuellement une ligne vide entre les deux. C'est dut a l'extension de grille... Je vais voir pour gérer tout de même le cas ou les deux sont collées.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 8, 2014

Si jamais le saut de ligne est obligatoire, préviens-moi pour que je le rajoute à la conversion zCode.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 8, 2014

C'est bon, la légende doit être en dessous sans lignes entre les deux, compatible pandoc !

@cgabard
Copy link
Contributor Author

cgabard commented Jan 8, 2014

Ok et donc lorsque une image est isolé dans son paragraphe, à la racine de la page, dans un quote ou dans une de nos custom box (secret & co), elle est transformée en figure avec caption.

  • smileys
  • grid_table
  • legende quelque soit le soit le style de tableaux
  • commentaires.

Je fais la PR, firm1 va pouvoir te le pousser rapidement et te permettre de me trouver de nouveaux bugs ou trucs à faire

@Coy0te
Copy link
Contributor

Coy0te commented Jan 9, 2014

Je suis un peu mitigé au sujet de la transformation des images présentes dans les custom box :

  • si par exemple quelqu'un cite un passage de tuto contenant une image inline, est-ce qu'elle deviendra figure à l'affichage ?
  • dans le même genre, c'est bien possible que dans les tutos en zCode, il y ait des auteurs qui aient placé des images inline dans les box attention/question/etc.

En gros, c'est peut-être moins grave de faire en sorte qu'une image ne soit plus une figure lorsqu'elle est citée, que l'inverse. Non ?

@cgabard
Copy link
Contributor Author

cgabard commented Jan 9, 2014

Que ce soit dans les box ou les citations, il faut toujours que l'image soit isolé et pas inline pour qu'elle se transforme en figure.

En gros c'est pour que si tu cite un message contenant une figure il reste figure, c'est tout.

Quand je parle de ça, ce sont les endroits où je vais chercher les balises image isolées : a la racine, dans les citations et les box. Mais pas dans un tableau par exemple, une image dans une case restera une image et pas une figure quelle soit isolée ou non.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 9, 2014

Ok, j'avais compris de travers.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 14, 2014

On en avait déjà parlé il y a un moment, mais dans les tutos convertis il y a pas mal de sections -> ... <- ou -> ... -> qui contiennent des sauts de ligne, et qui sont donc mal interprétés par le parseur md -> html . Des exemples ici : http://www.zestedesavoir.com/forums/sujet/7/rediger-sur-zds?page=1#p39

En plus de la non interprétation des passages contenant des sauts de lignes (ça au pire, c'est pas hyper grave), certains éléments de syntaxe se retrouvent non interprétés également. Ce n'est pas le cas du gras ou des listes par exemple, qui sont très bien gérés, mais c'est le cas des tableaux. C'est possible de corriger ça ?

@cgabard
Copy link
Contributor Author

cgabard commented Jan 14, 2014

Hum effectivement... Les sauts de lignes necessitent d'être revus. Normalement le tableau devrait passer, je ne sais pas pourquoi ça ne passe pas.

J'ai changé pas mal de choses et apprit pas mal sur le fonctionnement de python-markdown depuis. Je devrait pouvoir faire mieux. Mais j'ai peur de ne pas pouvoir correctement traiter, par exemple, un décalage à l'interieur d'un autre...

@Coy0te
Copy link
Contributor

Coy0te commented Jan 14, 2014

Si jamais ça peut aider, le tableau doit être parfaitement aligné pour fonctionner, donc être converti avant le remplacement des blocs d'alignement (pour s'assurer que rien ne sera introduit au début de la première ligne du tableau notamment).

Mais j'ai peur de ne pas pouvoir correctement traiter, par exemple, un décalage à l’intérieur d'un autre...

Si tu parles d’alignements imbriqués, c'est pas censé arriver, pas besoin de se prendre la tête ici.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 14, 2014

Oui, l'extension grid_table est ultra sensible et je pense que c'est probablement ça qui la gène. Car normalement, dans le contenu du code aligné, tout doit etre re-parsé donc le tableau devrait être trouvé.

@Coy0te
Copy link
Contributor

Coy0te commented Jan 14, 2014

Dans ce cas, ce qu'il manque c'est peut-être juste un saut de ligne avant/après le tableau, j'ai déjà remarqué qu'un tableau n'étais pas interprété s'il n'était pas entouré par des sauts de ligne en haut et en bas.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 14, 2014

Oui. Ce serait cependant bien que j'assouplisse un peu les regles, car cette extension est ultra pénible. Je l'ai déjà empeché de provoquer un 404 à chaque tableau mal formé. Mais j'ai un peu la flemme de la recoder entièrement là...

@Coy0te
Copy link
Contributor

Coy0te commented Jan 14, 2014

Je viens de vérifier, il suffit de mettre un saut de ligne avant et après un tableau pour qu'il soit interprété. Je vais forcer ce comportement dans le parseur zCode.

Ça ne changera rien au fait que les sauts de lignes ne sont pas gérés dans un bloc aligné, mais au moins un tableau placé dans un bloc aligné sera correctement interprété, c'est déjà ça.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 14, 2014

Je viens de vérifier, les citations passent bien. Or ce sont le même type d'extension que les tableaux. Ça doit effectivement être une connerie du genre, je regarderais ce soir si j'ai le temps

@Coy0te
Copy link
Contributor

Coy0te commented Jan 15, 2014

Petit bug remarqué ce matin : quand un auteur écrit le caractère $ en dehors d'une balise code, le caractère est interprété comme un début de balise maths. Faut-il systématiquement l'échapper avec un \ ?

Si oui, ça veut dire que je vais devoir échapper tous les $ contenus dans les tutos SdZ, sauf ceux qui sont contenus dans des balises code ou minicode...

Autre truc qui ressemble à un bug :

  • quand on cite une liste, on écrit un > puis un espace en début de ligne, puis le contenu, et ça ne casse pas même si on cite une liste.
  • quand on fait un secret/info/etc, on écrit un | puis un espace en début de ligne, puis le contenu, et là par contre ça casse si on englobe une liste. Ça ne casse pas si on vire l'espace après le |. Assez étrangement par contre, ça ne pose pas de problème quand on englobe un tableau, ça marche avec ou sans espace dans ce cas-là. C'est juste les listes qui merdent.

@cgabard
Copy link
Contributor Author

cgabard commented Jan 15, 2014

Je ferme cette issue, c'etait une mauvaise idée de tout regrouper, j'en fait des indépendantes à la place.

@cgabard cgabard closed this as completed Jan 15, 2014
@cgabard
Copy link
Contributor Author

cgabard commented Jan 15, 2014

Normalement j'ai fais des issues indépendantes pour tout ce qui doit etre fait. Si vous en voyez d'autres, créez en une et assignez moi !

@cgabard cgabard removed their assignment May 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-BUG Corrige un problème
Projects
None yet
Development

No branches or pull requests

7 participants