Markdown du nouveau Reddit
Le Markdown est le format dans lequel le contenu est rédigé sur Reddit. Ceci est le guide des Markdowns particuliers de Reddit, mis à jour pour le Nouveau Reddit et à jour au 19 septembre 2018.
À propos de ce document
Le contenu basé sur du texte dans Reddit — commentaires, auto-publications et autres — est représenté comme une variation du format Markdown spécifique à Reddit, et ce format a été modifié dans le Nouveau Reddit, à la fois en termes de la manière dont il est analysé et dont il est rendu. Ce guide porte sur le format Markdown de Reddit, expliquant d'une manière générale comment formater le contenu sur le nouveau Reddit et identifiant précisément les domaines dans lesquels les Markdowns du nouveau Reddit diffèrent des anciens.
Ceux qui soumettent exclusivement du contenu via l'éditeur « Fancy Pants » par défaut sur le nouveau Reddit ne sont pas exposés aux détails mentionnés ici. Il n'est pas nécessaire de connaître ces informations pour utiliser Reddit : Fancy Pants est un éditeur de texte riche qui fournit toutes les options de formatage courantes, telles que les caractères gras ou italiques, les listes, etc.
Dans ce guide, des exemples sont présentés sous forme de paires présentant d'abord comment le Markdown est rédigé dans l'éditeur, puis tel qu'il est rendu, ou présenté, à l'écran. Important Les notes du nouveau Reddit au sujet des différences entre le Markdowndu nouveau Reddit et le Markdown de l'ancien Reddit sont présentées dans des paragraphes en italiques marqués par une boule de cristal (🔮), et les astuces générales sont indiquées par une fleur-de-lis (⚜️).
Référence rapide
Ceci est un aide-mémoire condensé portant sur la syntaxe courante de Markdown. Pour obtenir une multitude de détails, poursuivez votre lecture.
Écrit | Rendu |
---|---|
_italique_ ou *italique* |
italique |
__gras__ ou **gras** |
gras |
___italique gras___ ou ***italique-gras*** |
gras-italique |
~~barré~~ |
barré |
>!spoilers!< |
spoilers |
^exposant ou ^(exposant) |
exposant |
`code` |
code |
Écrit | Rendu |
---|---|
https://www.reddit.com |
https://www.reddit.com |
r/annonces |
r/annonces |
u/reddit |
u/reddit |
Écrit :
[lien](https://redditinc.com)
ou
[lien][1] [1]: https://redditinc.com`
Rendu :
Écrit :
# Titre 1 ## Titre 2
Rendu :
Titre 1
Titre 2
Écrit :
- a - b 1. c 2. d
Rendu :
- a
- b
- c
- d
Écrit :
> Lorem blockquote dolor sit amet, consectetur adipiscing elit. > Sed ullamcorper enim libero, ut luctus lorem ultricies ut. > Aenean sed nulla a mauris posuere aliquam bibendum id ipsum. > Fusce non augue mollis, dictum libero sed, blockquote enim.
Rendu :
Lorem blockquote dolor sit amet, consectetur adipiscing elit. Sed ullamcorper enim libero, ut luctus lorem ultricies ut. Aenean sed nulla a mauris posuere aliquam bibendum id ipsum. Fusce non augue mollis, dictum libero sed, blockquote enim.
Écrit :
| titre | titre | titre | titre | |--------|:-------|-------:|:------:| | texte | texte | texte | texte |
Rendu :
titre titre titre titre texte texte texte texte
Écrit (notez le retrait) :
fn main() { println!("eh") }
Rendu :
fn main() { println!("eh") }
Où utiliser Markdown sur Reddit
Le contenu en markdown peut être soumis à différents endroits sur Reddit. Markdown est principalement utilisé dans le texte proprement dit d'une publication (le corps de texte d'une publication) et dans les commentaires.
Lorsque vous soumettez une publication de texte ou un commentaire dans le nouveau Reddit, vous soumettez par défaut un contenu non-Markdown via l'éditeur WYSIWYG « Fancy Pants » (sur le bureau du moins — la situation peut être différente sur les plateformes mobiles). Si vous cliquez sur « Basculer vers Markdown » dans l'écran suivant la soumission, vous soumettrez un Markdown. Certains utilisateurs peuvent préférer Markdown à Fancy Pants pour bénéficier d'un contrôle plus précis de leur document, pour accéder à des fonctionnalités occasionnelles qui ne sont pas prises en charge par Fancy Pants, ou simplement pour une raison de préférence personnelle.
D'autres sites prennent en charge Markdown :
- Wikis — certains subreddits possèdent leurs propres wikis, et il existe un wiki à l'échelle du site.
- par ex. https://www.reddit.com/r/funny/wiki/index
- par ex., https://www.reddit.com/wiki/faq
- Le texte de soumission de subreddit (le texte qui s'affiche dans l'ancien Reddit lors de la soumission d'une publication vers un subreddit particulier).
- La barre latérale « zone de texte » du nouveau Reddit.
- Règles de subreddit : celles-ci s'affichent à plusieurs endroits, en particulier dans la barre latérale, mais aussi sur d'autres pages.
- Le texte « À propos de » dans certains profils d'utilisateur du nouveau Reddit - Actuellement en version bêta (en tant que fonctionnalité en option).
Il existe des différences majeures en termes de prise en charge de ces derniers cas entre l'ancien et le nouveau Reddit, l'ancien et le nouvel analyseur de Markdown. Pour plus de précisions, voir « Différences de prise en charge de contenu entre l'ancien et le nouveau Reddit »
Markdown aux accents de Reddit
Paragraphes et sauts de ligne
Dans Reddit, les paragraphes apparaissent comme des lignes de texte séparées par des lignes vierges.
Écrit :
Très loin, dans les profondeurs inexplorées de l'extrémité démodée du bras en spirale occidental de la Galaxie, se trouve un petit soleil jaune à peine perceptible. Tournant dans son orbite à environ quatre-vingt douze millions de miles, se trouve une petite planète bleue totalement insignifiante, où des créatures descendues des grands singes sont tellement primitives qu'elles pensent toujours que les montres numériques sont une trouvaille fascinante. Cette planète a - ou plutôt, avait - un problème : la majorité de ses habitants étaient malheureux la plupart du temps. De nombreuses solutions furent suggérées pour résoudre ce problème, mais elles se résumaient généralement à des mouvements de petits papiers verts, ce qui est étrange, car d'une manière générale, ce n'étaient pas ces petits papiers verts qui étaient malheureux.
Rendu :
Très loin, dans les profondeurs inexplorées de l'extrémité démodée du bras en spirale occidental de la Galaxie, se trouve un petit soleil jaune à peine perceptible.
Tournant dans son orbite à environ quatre-vingt douze millions de miles, se trouve une petite planète bleue totalement insignifiante, où des créatures descendues des grands singes sont tellement primitives qu'elles pensent toujours que les montres numériques sont une trouvaille fascinante.
Cette planète a - ou plutôt, avait - un problème : la majorité de ses habitants étaient malheureux la plupart du temps. De nombreuses solutions furent suggérées pour résoudre ce problème, mais elles se résumaient généralement à des mouvements de petits papiers verts, ce qui est étrange, car d'une manière générale, ce n'étaient pas ces petits papiers verts qui étaient malheureux.
Veuillez noter que les sauts de ligne ne s'affichent pas — autrement dit, les lignes sont jointes pour créer un seul paragraphe. Il est possible d'ajouter des sauts de ligne explicitement en terminant les lignes par deux espaces, ou par une barre oblique inversée (\
).
Écrit (notez les doubles espaces à la fin de la première ligne) :
L'amour est l'ensemble. Nous ne sommes que des parties.
Rendu :
L'amour est l'ensemble.
Nous ne sommes que des parties.
Écrit (notez le positionnement et l'orientation de la barre oblique) :
Au-delà des idées du mal\ et du bien s'étend un champ.\ Je t'y retrouverai.
Rendu :
Au-delà des idées du mal
et du bien s'étend un champ.
Je t'y retrouverai.
🔮 Remarque concernant le nouveau Reddit : la création de sauts de ligne avec une barre oblique inversée ne fonctionne que dans le nouveau Reddit. Même si la barre oblique inversée est plus facile à lire et à écrire que les deux espaces, pour assurer la compatibilité avec l'ancien Reddit, utilisez deux espaces pour créer des sauts de ligne.
Les paragraphes sont séparés par un certain nombre de lignes vierges, lesquelles ne sont pas rendues elles-mêmes ; par conséquent on ne peut pas ajouter un espace arbitraire entre les paragraphes simplement en insérant des lignes vierges.
Écrit :
Ne vous inquiétez pas.\ Pensez à ceux qui ont créé la pensée ! Pourquoi restez-vous en prison\ Alors que la porte est grande ouverte ?
Rendu :
Ne vous inquiétez pas.
Pensez à ceux qui ont créé la pensée !Pourquoi restez-vous en prison
alors que la porte est grande ouverte ?
⚜️ Astuce : un conseil pour insérer des lignes vierges : créez un paragraphe contenant seulement « espace insécable ».
Écrit :
Ne vous inquiétez pas.\ Pensez à ceux qui ont créé la pensée ! Pourquoi restez-vous en prison\ Alors que la porte est grande ouverte ?
Rendu :
Ne vous inquiétez pas.
Pensez à ceux qui ont créé la pensée !
Pourquoi restez-vous en prison
alors que la porte est grande ouverte ?
Ce
est un type d'entité HTML, utile pour appliquer certains « trucs » dans Markdown.
Formatage de texte de base
Le texte en italique se distingue du texte environnant avec une seule astérisque (*
) ou un tiret du bas (_
).
Écrit :
Seules les *erreurs*, et non la _vérité_, ne supportent pas l'examen.
Rendu :
Seules les erreurs, et non la vérité, ne supportent pas l'examen.
Le texte en gras se distingue du texte environnant par une astérisque double (**
) ou un tiret du bas double (__
).
Écrit :
Seules les **erreurs**, et non la __vérité__, ne supportent pas l'examen.
Rendu :
Seules les erreurs, et non la vérité, ne supportent pas l'examen.
Le texte en gras-italique se distingue du texte environnant par une astérisque triple (***
) ou un tiret du bas triple (___
).
Écrit :
Seules les ***erreurs***, et non la ___vérité___, ne supportent pas l'examen.
Rendu :
Seules les erreurs, et non la vérité, ne supportent pas l'examen.
Les exemples précédents mettaient l'accent sur un seul mot, mais il est aussi possible de mettre en valeur plusieurs mots.
Notez que dans les exemples précédents, les mots mis en évidence étaient entourés d'astérisques ou de tirets du bas. On peut aussi mettre en évidence certaines parties de mots seulement, mais uniquement avec des astérisques.
Écrit :
C'est totalement sub*der*ma**togly**phique.
Rendu :
C'est totalement subdermatoglyphique.
Le texte barré se différencie du texte environnant par des double-tildes (~~
).
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à ~~aimer~~ reddit et à être ~~aimé~~ reddité en retour.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à aimer reddit et à être aimé reddité en retour.
Les spoilers peuvent être masqués en tant que spoilertext en entourant le texte de >!
et !<
.
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à >!redditer et à être reddité en retour!<.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
Le texte en exposant se différencie du texte environnant par des parenthèses précédées d'un accent circonflexe (^
).
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à redditer ^(et à être reddité en retour).
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
Un seul mot peut aussi être mis en exposant en le précédant d'un simple accent circonflexe.
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à ^redditer et à être ^reddité en retour.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
🔮 Remarque concernant le nouveau Reddit : il existe des différences majeures dans l'analyse des exposants entre l'ancien et le nouveau Reddit. L'ancien Reddit en particulier n'analyse pas toujours la forme entre parenthèses si elle contient des liens (par exemple, ^(a [b](http://example.com))
). Le nouveau Reddit ne prend pas (encore) en charge plusieurs niveaux d'exposants. À cela s'ajoutent des bugs. Dans les deux versions. Pour une compatibilité maximale des exposants entre l'ancien et le nouveau Reddit, respectez la syntaxe d'exposant à un seul mot, sans parenthèse et placez chaque mot en exposant, ou séparez les mots par des entités HTML « espace insécable » (
) ou « espace quart de quadratin » ( 
) (ce dernier permet les sauts de ligne dans l'exposant).
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à redditer ^et ^à ^être ^reddité ^en ^retour.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à redditer ^et à être reddité en retour.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
Et si votre exposant contient des liens, appliquez l'exposant au texte des liens également.
Écrit :
La plus grande chose que vous apprendrez, c'est simplement à redditer ^et [^à ^être ^reddité] (https://www.redditgifts.com) ^en ^retour.
Rendu :
La plus grande chose que vous apprendrez, c'est simplement à redditer et à être reddité en retour.
Liens
Les URL commençant par "http://" ou "https://" sont automatiquement transformées en hyperliens, de même que les noms de subreddit et les noms d'utilisateur. Ces derniers sont appelés redditlinks et userlinks, respectivement. Collectivement, ils sont appelés autolinks.
Écrit | Rendu |
---|---|
http://www.reddit.com |
http://www.reddit.com |
https://www.reddit.com |
https://www.reddit.com |
/r/annonces |
/r/annonces |
r/annonces |
r/annonces |
/u/reddit |
/u/reddit |
u/reddit |
u/reddit |
⚜️ Conseil : les URL complexes peuvent être analysées de manière inattendue comme des autolinks. Lorsque vous constatez qu'une URL ne fonctionne pas correctement, vous pouvez placer le lien entre crochets (<
, >
).
Écrit :
<http://example.com/foo/../bar..>
Rendu :
Le texte arbitraire peut être transformé en hyperlien de manière explicite en l'entourant de crochets, suivis d'une URL entre parenthèses. Vous pouvez attribuer un titre au lien, lequel apparaît généralement dans le navigateurs lorsque l'on passe le curseur sur le lien.
Le titre doit être entouré de guillemets simples, de guillemets doubles ou de parenthèses.
Écrit | Rendu |
---|---|
[Rumi](https://en.wikipedia.org/wiki/Rumi) |
Rumi |
[Zappa](https://en.wikipedia.org/wiki/Frank_Zappa "Frank Zappa - Wikipedia") |
Zappa |
[Gandhi](https://en.wikipedia.org/wiki/Mahatma_Gandhi 'Mahatma Gandhi - Wikipedia') |
Gandhi |
[Twain](https://en.wikipedia.org/wiki/Mark_Twain (Mark Twain - Wikipedia)) |
Twain |
🔮 Remarque relative au nouveau Reddit : les titres entre parenthèses ne sont pris en charge que dans le nouveau Reddit. Pour une meilleure compatibilité, utilisez des guillemets.
Les liens peuvent aussi être définis comme des références, extérieures au paragraphe.
Écrit :
Il en faut [très peu] pour être heureux ; tout dépend de vous, de votre [façon de penser][fdp]. [Très peu]: https://www.reddit.com/r/Meditation/ [fdp]: https://www.reddit.com/r/ChangeMyView/
Rendu :
Il en faut très peu pour être heureux ; tout dépend de vous, de votre façon de penser.
Par défaut, le nom de la référence est le même que le texte entre crochets, mais la référence peut être nommée explicitement dans une deuxième série de crochets, comme dans [façon de penser][fdp]
. Comme les liens en ligne, les liens de référence peuvent porter des titres.
⚜️ Conseil : les liens de style référence sont particulièrement utiles pour désencombrer les textes qui contiennent beaucoup de liens.
Écrit :
Quelque part dans [la Mancha][lm], dans un lieu dont j'ai oublié le nom, vivait il n'y a pas si longtemps un homme, un de ceux qui portent une [lance] et un [ancien bouclier][ab] sur une étagère et qui possèdent une [jument éflanquée][je] et un lévrier pour la course. [lm]: https://en.wikipedia.org/wiki/La_Mancha [lance]: https://en.wikipedia.org/wiki/Holy_Lance "Sainte Lance - Wikipedia" [ba]: http://myarmoury.com/feature_shield.html 'The Shield: An Abridged History of its Use and Development' [je]: https://en.wikipedia.org/wiki/Epona (Epona - Wikipedia)
Rendu :
Quelque part dans la Mancha, dans un lieu dont j'ai oublié le nom, vivait il n'y a pas si longtemps un homme, un de ceux qui portent une lance et un ancien bouclier sur une étagère et qui possèdent une jument éflanquée et un lévrier pour la course.
⚜️ Conseil : notez que les liens ne peuvent contenir des parenthèses que si elles sont « équilibrées », c'est-à-dire, si à chaque «(» correspond une «)». Pour lier une URL à des parenthèses non équilibrées, échappez la parenthèse avec une barre oblique inversée (« \ »), ou utilisez la syntaxe de liaison alternative, en plaçant l'URL entre crochets correspondants, « < » et « > ».
Écrit :
[Parenthèses](https://en.wikipedia.org/wiki/\()
Rendu :
Écrit :
[Parenthèses](<https://en.wikipedia.org/wiki/(>)
Rendu :
Sur Reddit, les liens doivent généralement inclure le mécanisme d'URI, par exemple « https:// », de sorte qu'au lieu d'écrire [a](www.exemple.com)
, vous écrirez [a](https://www.exemple.com)
.
L'ensemble complet de préfixes acceptés dans les URL est le suivant : "http://", "https://", "ftp://", "mailto:", "git://", "steam://", "irc://", "news://", "mumble://", "ssh://", "ircs://", "ts3server://", "/", "#".
En-têtes
Il existe six niveaux d'en-têtes de section et ils sont précédés d'un symbole dièse (#
).
Écrit :
# Domaine ## Royaume ### Embranchement #### Classe ##### Ordre ###### Famille
Rendu :
Domaine
Royaume
Embranchement
Classe
Ordre
Famille
Les en-têtes de niveaux 1 et 2 peuvent aussi être indiqués en soulignant le texte d'en-tête avec « = » et « - » respectivement.
Écrit :
Domaine ====== Royaume -------
Rendu :
Domaine
Royaume
Listes
Les listes peuvent être non ordonnées (à puces) ou ordonnées (numérotées).
Les lises non ordonnées se composent de lignes précédées d'un signe "-" ou "*".
Écrit :
- Agamemnon - Les Porteurs de libations - Euménides
Rendu :
- Agamemnon
- Les Porteurs de libations
- Euménides
Écrit :
* Agamemnon * Les Porteurs de libations * Euménides
Rendu :
- Agamemnon
- Les Porteurs de libations
- Euménides
Les listes non ordonnées se composent de lignes numérotées délimitées par un "." ou une ")".
Écrit :
1. Agamemnon 2. Les Porteurs de libations 3. Euménides
Rendu :
- Agamemnon
- Les Porteurs de libations
- Euménides
Écrit :
1) Agamemnon 2) Les Porteurs de libations 3) Euménides
Rendu :
- Agamemnon
- Les Porteurs de libations
- Euménides
🔮 Remarque relative au nouveau Reddit : l'utilisation de ")" pour définir des listes ordonnées ne fonctionne que dans le nouveau Reddit. Pour la compatibilité avec l'ancien Reddit, utilisez ".".
Sur Reddit, les listes ordonnées doivent commencer par "1".
Outre la numérotation, les listes non ordonnées et ordonnées sont par ailleurs généralement analysées de la même manière, de sorte que les exemples restants utiliseront des listes non ordonnées pour plus de simplicité.
Chaque entrée individuelle dans une liste est appelée élément de liste. Les éléments peuvent être séparés par n'importe quel espace. L'ajout d'un espace peut rendre des éléments de liste complexes plus lisibles pendant l'édition.
Écrit :
- Agamemnon - Les Porteurs de libations - Euménides
Rendu :
Agamemnon
Les Porteurs de libations
Euménides
Les éléments de liste peuvent contenir des sous-listes.
Écrit :
- Homère - L'Illiade - L'Odyssée - Eschyle - Agamemnon - Les Porteurs de libations - Euménides
Rendu :
- Homère
- L'Illiade
- L'Odyssée
- Eschyle
- Agamemnon
- Les Porteurs de libations
- Euménides
Notez que les sous-listes d'éléments de listes non ordonnées doivent être précédées d'au moins deux espaces, alors que les sous-listes d'éléments de listes ordonnées doivent être précédées d'au moins trois espaces.
Les listes peuvent contenir leurs propres paragraphes, blocs de citations et autres types de contenu.
Écrit :
- Tout d'abord : Lorem ipsum dolor sit amet, consectetur adipiscing elit. > Fusce hendrerit, nunc quis rhoncus tristique, neque augue ornare > enim, ut aliquam libero diam et ligula. Aliquam sagittis sem sed > rutrum luctus. Nunc massa est, egestas eget massa id, lacinia > pretium dui. Nam eget consequat eros, eget commodo urna. - Mais ensuite : Phasellus vitae libero sit amet orci tempor lacinia sed at tellus. Curabitur sit amet nibh elit. Quisque pulvinar odio sapien, et condimentum velit convallis et. ### Lipsum facts |Lorem|Ipsum|Dolor| |-----|-----|-----| |8 |1 |3 | |3 |7 |8 | Aenean at dui in sapien sagittis sodales.
Rendu :
Tout d'abord : Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Fusce hendrerit, nunc quis rhoncus tristique, neque augue ornare enim, ut aliquam libero diam et ligula. Aliquam sagittis sem sed rutrum luctus. Nunc massa est, egestas eget massa id, lacinia pretium dui. Nam eget consequat eros, eget commodo urna.
Mais ensuite : Phasellus vitae libero sit amet orci tempor lacinia sed at tellus. Curabitur sit amet nibh elit. Quisque pulvinar odio sapien, et condimentum velit convallis et.
Lipsum facts
Lorem Ipsum Dolor 8 1 3 3 7 8 Aenean at dui in sapien sagittis sodales.
🔮 Remarque au sujet du nouveau Reddit : dans Markdown, y compris dans l'ancien Reddit, le +
peut aussi être utilisé pour définir des listes non ordonnées. Pour le moment, le nouveau Reddit n'analyse pas ces listes.
Blocs de citations
Les blocs de citations permettent de mettre en évidence des quantités de texte plus importantes, généralement utilisées dans les réponses aux commentaires pour citer les commentaires d'autres utilisateurs. Pour les créer, on débute une ligne par un crochet fermant (>
).
Écrit :
> Il est si difficile d'oublier la douleur, mais encore plus difficile de se souvenir de la douceur. Le bonheur ne laisse aucune cicatrice. Nous apprenons si peu de la paix.
Rendu :
Il est si difficile d'oublier la douleur, mais encore plus difficile de se souvenir de la douceur. Le bonheur ne laisse aucune cicatrice. Nous apprenons si peu de la paix.
Pour les citations simples, il suffit de commencer la première ligne d'un paragraphe par >
, comme ci-dessus, et l'ensemble constituera un bloc de citation.
Pour les blocs de citation plus complexes, précédez chaque ligne d'un >
.
Écrit :
> - Tout d'abord : Lorem ipsum dolor sit amet, consectetur adipiscing > elit. > > - Mais ensuite : Phasellus vitae libero sit amet orci tempor lacinia > sed at tellus. Curabitur sit amet nibh elit. Quisque pulvinar odio > sapien, et condimentum velit convallis et. > > > Fusce hendrerit, nunc quis rhoncus tristique, neque augue ornare > > enim, ut aliquam libero diam et ligula. Aliquam sagittis sem sed > > rutrum luctus. Nunc massa est, egestas eget massa id, lacinia > > pretium dui. Nam eget consequat eros, eget commodo urna. > > ### Lipsum facts > > |Lorem|Ipsum|Dolor| > |-----|-----|-----| > |8 |1 |3 | > |3 |7 |8 | > > Aenean at dui in sapien sagittis sodales.
Rendu :
Tout d'abord : Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Mais ensuite : Phasellus vitae libero sit amet orci tempor lacinia sed at tellus. Curabitur sit amet nibh elit. Quisque pulvinar odio sapien, et condimentum velit convallis et.
Fusce hendrerit, nunc quis rhoncus tristique, neque augue ornare enim, ut aliquam libero diam et ligula. Aliquam sagittis sem sed rutrum luctus. Nunc massa est, egestas eget massa id, lacinia pretium dui. Nam eget consequat eros, eget commodo urna.
Lipsum facts
Lorem Ipsum Dolor 8 1 3 3 7 8 Aenean at dui in sapien sagittis sodales.
Tableaux
Les tableaux se composent d'une ligne d'en-tête et d'un nombre variable de lignes de contenu. Les colonnes sont séparées par des lignes verticales (|
), et la ligne d'en-tête est séparée des lignes de contenu par des tirets (-
).
Écrit :
| Télescripteur | Investissement | Profit | |--------|------------|--------| | BTC | 100 $ | $-50 | | ETH | 1000 $ | $-500 | | DOGE | 10000 $ | $-5000 |
Rendu :
Télescripteur Investissement Profit BTC 100 $ -50 $ ETH 1 000 $ -500 $ DOGE 10 000 $ -5 000 $
Cette deuxième ligne du tableau, qui contient des tirets, est la ligne de marqueur et détermine l'alignement du texte dans la colonne. Les colonnes de la ligne de marqueur débutant par :
sont alignées à gauche ; les colonnes qui se terminent par :
sont alignées à droite ; les colonnes commençant et se terminant par :
sont centrées ; les colonnes contenant uniquement des tirets sont alignées par défaut (alignement à gauche).
Écrit :
| Télescripteur | Investissement | Profit | |:-------|-----------:|:------:| | BTC | 100 $ | -50 $ | | ETH | 1 000 $ | -500 $ | | DOGE | 10 000 $ | -5 000 $ |
Rendu :
Télescripteur Investissement Profit BTC 100 $ -50 $ ETH 1 000 $ -500 $ DOGE 10 000 $ -5 000 $
Heureusement, les colonnes n'ont pas à être formatées pour s'aligner les unes avec les autres et fonctionner - elles peuvent être en désordre.
Écrit :
| Télescripteur | Investissement | Profit | |:-|-:|:-:| | BTC | 100 $ | -50 $ | | ETH | 1 000 $ | -500 $ | | DOGE | 10 000 $ | -5 000 $ |
Rendu :
Télescripteur Investissement Profit BTC 100 $ -50 $ ETH 1 000 $ -500 $ DOGE 10 000 $ -5 000 $
⚜️ Conseil : les tableaux peuvent être rédigés sans barre verticale en début et en fin de ligne (|
), mais le résultat peut être surprenant lorsque l'analyseur doit deviner si la ligne fait partie d'un tableau ou d'autre chose. Les lignes verticales au début et à la fin indiquent explicitement que vous créez un tableau.
Blocs de code et code en ligne
Il existe plusieurs moyens de représenter le code dans Markdown, qui est toujours rendu dans une police à un seul espace et exactement tel qu'il est rédigé : aucun Markdown n'est interprété à l'intérieur d'une région de code.
Il est possible d'intégrer des extraits de code courts, du code en ligne, dans les paragraphes et autres textes, et ils sont délimités par des guillemets obliques fermants (`
).
Écrit :
Nous avions tort : `goto`\ n'est pas considéré comme nocif ;\ `goto` souhaite aider.
Rendu :
Nous avions tort :
goto
n'est pas considéré comme nocif ;goto
souhaite aider.
Les blocs de code plus longs peuvent être représentés de différentes manières. La première consiste à mettre en retrait l'ensemble des quatre espaces du bloc de code.
Écrit :
hashOut.data = hashes + SSL_MD5_DIGEST_LEN; hashOut.length = SSL_SHA1_DIGEST_LEN; if ((err = SSLFreeBuffer(&hashCtx)) != 0) goto fail; if ((err = ReadyHash(&SSLHashSHA1, &hashCtx)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &clientRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
Rendu :
hashOut.data = hashes + SSL_MD5_DIGEST_LEN; hashOut.length = SSL_SHA1_DIGEST_LEN; if ((err = SSLFreeBuffer(&hashCtx)) != 0) goto fail; if ((err = ReadyHash(&SSLHashSHA1, &hashCtx)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &clientRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail;
🔮 Note concernant le nouveau Reddit : les blocs de code en retrait sont la seule forme de blocs de code qui fonctionne sur l'ancien Reddit. Utilisez-les pour assurer la compatibilité.
La saisie de quatre espaces avant chaque ligne d'un bloc de code est une opération fastidieuse et sujette aux erreurs. Le moyen le plus simple consiste à encadrer l'ensemble du bloc de code de délimiteurs de code. Un délimiteur de code est une ligne commençant par trois guillemets obliques fermants (`
) ou plus ou par trois tildes (~
) ou plus.
Écrit :
``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ```
Rendu :
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail;
Écrit :
~~~ if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ~~~
Rendu :
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail;
Les délimiteurs ouvrant et fermant doivent correspondre, aussi bien en termes de caractères utilisés et de répétitions.
⚜️ Conseil : lorsque le code en ligne lui-même contient un guillemet oblique fermant, ou qu'un bloc de code délimité contient lui-même un délimiteur de code, les guillemets obliques et les délimiteurs intérieurs peuvent provoquer une fermeture anticipée du code. Dans ces cas, les délimiteurs peuvent être ajustés pour s'adapter au code. Le reste de cette section concerne la gestion des cas particuliers.
Considérez l'exemple suivant.
Écrit :
``` Ce code n'a pas fonctionné comme prévu : ``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ``` Mais il a fait de son mieux. ```
Rendu :
Ce code n'a pas fonctionné comme prévu :
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail;
Mais il a fait de son mieux.
Il s'agit d'un délimiteur de code à l'intérieur d'un délimiteur de code (c'est-à-dire d'un bloc de code Markdown contenant un exemple de Markdown), et il n'est pas rendu comme souhaité - le code placé à l'intérieur du délimiteur de code n'est pas rendu comme un code du tout. Le code apparaît plutôt comme un texte classique entouré de deux blocs de code.
Ce problème est facile à résoudre, car la syntaxe du délimiteur de code possède deux délimiteurs différents, (`
) et (~
), et permet aux blocs de code d'être entourés de plus de trois délimiteurs. Utilisez simplement d'autres guillemets obliques fermants dans le délimiteur de code extérieur, ou utilisez l'autre délimiteur.
Écrit :
```` Ce code n'a pas fonctionné comme prévu : ``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ``` Mais il a fait de son mieux. ````
Rendu :
Ce code n'a pas fonctionné comme prévu : ``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ``` Mais il a fait de son mieux.
Écrit :
~~~ Ce code n'a pas fonctionné comme prévu : ``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ``` Mais il a fait de son mieux. ~~~
Rendu :
Ce code n'a pas fonctionné comme prévu : ``` if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; ``` Mais il a fait de son mieux.
Il existe une astuce similaire pour le code en ligne : le code en ligne peut être entouré de n'importe quel nombre de guillemets obliques fermants, et les guillemets ouvrants et fermants doivent correspondre. Par conséquent, s'il faut placer un seul guillemet fermant à l'intérieur d'un code en ligne, il suffit d'entourer le code de deux guillemets fermants, par ex. ``cette chose ici - ` - c'est un guillemet oblique fermant``
.
Naturellement, il existe une autre situation compliquée ici : et si votre code en ligne lui-même doit commencer ou se terminer par un guillemet oblique : par ex. si vous souhaitez illustrer la manière d'écrire le code en ligne Markdown dans le code en ligne. Il ne suffit pas de placer deux guillemets obliques pour ouvrir le code en ligne et un seul guillemet oblique pour commencer le code en ligne, car cela ressemble à un code en ligne délimité par trois guillemets obliques : ```exemple de code en ligne```
. Si vous écriviez simplement cela, vous perdriez les guillemets obliques intérieurs :
Écrit | Rendu |
---|---|
```exemple de code en ligne``` |
exemple de code en ligne |
Markdown offre une dernière échappatoire pour ces situations : tout espace entourant le code en ligne est supprimé, ce qui permet d'écrire des délimiteurs de code en ligne, un espace, puis le guillemet oblique fermant du texte :
Écrit | Rendu |
---|---|
`` `exemple de code en ligne` `` |
`exemple de code en ligne` |
Cette situation se produit le plus souvent pour les personnes qui écrivent du Markdown au sujet du Markdown (comme moi !) Avec un peu de chance, vous ne la rencontrerez jamais.
Enfin, que faire si vous souhaitez réellement placer des espaces de début ou de fin dans votre code en ligne ? Eh bien, c'est assez compliqué. Si vous vous trouvez dans cette situation, vous serez suffisamment astucieux pour trouver une solution de contournement.
Ruptures thématiques
La rupture thématique, alias la « règle horizontale », est simplement une ligne horizontale tracée en travers de la page. Elle peut être utilisée pour créer une séparation visuelle dans le contenu. Une rupture thématique est écrite comme une ligne contenant trois astérisques ou plus (*
), des tirets (-
) ou des tirets du bas (_
).
Écrit :
Voici une anecdote nostalgique au sujet de papi. --- Voici une photo d'un âne assoupi.
Rendu :
Voici une anecdote nostalgique au sujet de papi.
Voici une photo d'un âne assoupi.
Écrit :
Voici un perroquet festif authentique. *** Voici la tromperie, la déchéance et — finalement — la mort.
Rendu :
Voici un perroquet festif authentique.
Voici la tromperie, la déchéance et — finalement — la mort.
Écrit :
Voici une porte de grange rouillée. ___ Café noir.
Rendu :
Voici une porte de grange rouillée.
Café noir.
Autres trucs et astuces
Échappement de la syntaxe de Markdown
L'échappement est un moyen d'indiquer à l'analyseur qu'il ne doit pas interpréter les caractères spéciaux comme du Markdown, en les précédant d'une barre oblique inversée (\
).
On constate parfois que l'analyseur a interprété le texte de manière imprévue. Cela peut se produire, par exemple, si au milieu d'un paragraphe, un trait d'union débute une nouvelle ligne.
Écrit :
J'ai senti mes poumons se gonfler face à la beauté du paysage - l'air, les montagnes, les arbres, les gens. J'ai pensé, « Voilà ce que c'est qu'être heureux. »
Rendu :
J'ai senti mes poumons se gonfler face à la beauté du paysage
- l'air, les montagnes, les arbres, les gens. J'ai pensé, « Voilà ce que c'est qu'être heureux. »
Dans ce cas, le trait d'union a pour but d'être intégré au texte et non de débuter une liste. L'échappement du trait d'union avec une barre oblique inversée résout le problème.
Écrit :
J'ai senti mes poumons se gonfler face à la beauté du paysage \- l'air, les montagnes, les arbres, les gens. J'ai pensé, « Voilà ce que c'est qu'être heureux. »
Rendu :
J'ai senti mes poumons se gonfler face à la beauté du paysage - l'air, les montagnes, les arbres, les gens. J'ai pensé, « Voilà ce que c'est qu'être heureux. »
Un autre cas courant où un échappement est nécessaire est celui des parenthèses situées dans les liens.
Écrit :
[Parenthèse](https://en.wikipedia.org/wiki/))
Rendu :
Ceci est supposé être un lien vers l'article Wikipedia au sujet des parenthèses (« https://en.wikipedia.org/wiki/) »), mais il s'agit en fait d'un lien vers « https://en.wikipedia.org/wiki/ ». En ce qui concerne la parenthèse d'échappement dans l'URL, l'analyseur ne la traite pas comme la parenthèse fermante de la syntaxe du lien.
[Parenthèse](https://en.wikipedia.org/wiki/\))
Rendu :
Entités HTML
Markdown prend en charge les entités HTML, telles que
relativement courante pour l'espace insécable. Il peut s'agir d'une « échappatoire » pour écrire un contenu difficile à représenter. Par exemple,
est souvent utilisé pour insérer des paragraphes « vides », fournissant un espace blanc vertical lorsque Markdown ne le permet pas autrement.
Dans les autres cas, on utilise des entités HTML pour entrer les caractères difficiles à saisir, comme ceux qui sont au-dessus de la plage ASCII dans l'Unicode ou les caractères qui n'ont pas de représentation visuelle.
Quelques exemples utiles :
- On insère un tiret avec
—
. Il s'agit d'un tiret plus long que le trait d'union classique, et du caractère approprié pour séparer des clauses dans les phrases. - On peut utiliser différents caractères d'espace vide non-ASCII pour insérer des espaces lorsque Markdown ne le permet pas autrement. Si vous souhaitez simplement entrer un espace d'une taille arbitraire entre deux mots, vous pouvez le faire, par exemple, en insérant plusieurs caractères « em space » (
 
).
Conseils relatifs aux robots
Au cours de la transition, nous avons constaté certaines incompatibilités dans la syntaxe utilisée par les robots. Voici quelques notes résultant de ces expériences, ainsi que des informations d'ordre général au sujet de la publication automatique de Markdown.
(Remarque rapide : l'aide d'auteurs de robots serait utile pour cette section !)
Dans les liens, n'insérez pas d'espaces entre le texte (
[...]
) et l'URL ((http://exemple.com)
). Cela fonctionnait dans l'ancien Reddit, mais pas dans le nouveau.Insérez un échappement sous forme de barre oblique inversée à toutes les parenthèses dans les URL (pas les autolinks), comme
[texte](http://exemple.com/foo\(bar)
. Les parenthèses doivent être équilibrées, sinon elles ne seront pas analysées comme des liens. Par conséquent, il ne suffit pas d'utiliser un échappement à toutes les parenthèses pour que tous les liens contenant des parenthèses soient correctement analysés.Vous pouvez aussi utiliser la syntaxe à crochets pour les URL de liens (
[texte](<http://exemple.com>)
, qui accepte les parenthèses non équilibrées. Dans ce cas cependant, vous devez utiliser les crochets d'échappement aux URL, comme%3C
et%3E
.Si vous publiez des autolinks (URL brutes sans la syntaxe de parenthèses), envisagez de les entourer de crochets (
<
>
) et d'utiliser des échappements d'URL pour tous les crochets internes aux URL, comme%3C
et%3E
. Cela évitera toute ambigüité dans l'analyse, en particulier à la fin des autolinks. Notez que même entre crochets, les autolinks ne doivent pas contenir d'espaces : utilisez donc l'échappement d'URL pour ceux-ci comme%20
.Il n'existe aucun moyen d'échapper à quelque chose tout en publiant des liens arbitraires en tant que robot si vous souhaitez que toutes les URL soient analysées comme prévu. Les détails de l'analyse des liens figurent dans les spécifications.
Le nouvel analyseur, comme l'ancien analyseur, traitent les échappement HTML (à la
) de manière différente : l'ancien les préserve, à la fois dans le texte et dans les liens ; le nouveau ne les évite pas pendant l'analyse, de sorte que les clients (dont un bon nombre ne sont pas des navigateurs Web) n'y sont pas exposés. C'est vrai à la fois pour le texte et pour les liens, et cela est spécifié comme tel par CommonMark. Nous ne comprenons pas l'impact de cet élément sur les robots et n'avons pas de recommandation pour le moment.S'il existe une possibilité que votre exposant contienne des liens, écrivez-les en mettant chaque mot en exposant ou en séparant les mots en exposant par un « espace quart de quadratin ». La syntaxe
^(...)
, plus agréable, n'est pas fiable sur l'ancien Reddit lorsqu'elle est associée à des liens.
Recommandations de compatibilité Markdown aux accents Reddit
Voici quelques recommandations pour écrire un Markdown compatible avec l'analyse de Markdown de l'ancien Reddit (sous réserve que l'ancien analyseur soit toujours utilisé).
Certaines des recommandations sont « faciles », car elles ont des équivalents aussi efficaces dans l'ancien Reddit ; d'autres sont « malencontreuses », car elles favorisent une syntaxe moins agréable.
On peut penser que l'ancien analyseur sera entièrement éliminé progressivement à un certain moment (il n'est plus utilisé aujourd'hui sur les anciens clients Web - les clients mobiles utilisent le nouveau), et à ce stade, ces recommandations pourraient changer.
D'un autre côté, si vous n'aimez pas le formatage sur l'ancien Reddit, n'hésitez pas à aller à l'opposé de toutes ces suggestions !
Recommandations de compatibilité faciles
Utilisez des guillemets pour les titres des liens, comme
[texte](http://exemple.com "titre")
(par opposition aux parenthèses pour les titres des liens). L'ancien Reddit ne prend pas en charge les parenthèses ici.Commencez et terminez les colonnes de tableaux par des barres verticales (
|
). C'est techniquement facultatif, mais on trouve parfois des analyses surprenantes lorsqu'on ne les utilise pas. L'ancien et le nouveau Reddit présentent des particularités différentes.Délimitez les listes ordonnées par des points au lieu des parenthèses - par ex. (
1. Premier
). L'ancien Reddit ne prend pas en charge cette syntaxe.Délimitez les listes non ordonnées par des
-
ou des*
, pas par des+
. Le nouveau Reddit ne prend pas en charge cette syntaxe pour le moment.
Recommandations de compatibilité malencontreuses
Utilisez des doubles espaces à la place des barres obliques inversées pour indiquer les sauts de ligne. L'ancien Reddit ne prend en charge que les doubles espaces.
Utilisez des blocs de code en retrait au lieu des délimiteurs de code. L'ancien Reddit ne prend en charge que les blocs de code en retrait.
N'utilisez pas des mises en évidences imbriquées telles que
_ceci est __vraiment__ important_
. Oui, vous avez deviné : ça ne marche pas dans l'ancien Reddit.N'utlisez pas plusieurs niveaux d'exposant (c'est-à-dire des « tours »). Cela ne fonctionne pas dans le nouveau Reddit (du moins, pas encore).
Continuez à utiliser les astuces courantes pour que les exposants prennent en charge les espaces, par exemple en mettant en exposant chaque mot ou en joignant les mots par des caractères d'espacement Unicode exotiques (
ou​
. Évitez la syntaxe d'exposant entre parenthèses,^(...)
— elle est souvent mal analysée dans l'ancien Reddit.
Plus d'informations sur Markdown dans Reddit
Le nouvel analyseur de Markdown de Reddit, Snoomark, est une variante de GitHub-flavored Markdown (GFM), basée sur CommonMark, avec les extension de table GFM et d'autolink, ainsi qu'une extension modifiée pour les caractères barrés. Cela inclut aussi des extensions spécifiques à Reddit et des astuces de compatibilité spécifiques à Reddit qui s'écartent de CommonMark.
Snoomark est un projet en aval de comrak, lequel est à son tour une réimplémentation de cmark-gfm, l'implémentation de CommonMark par GitHub avec des extensions GitHub (GFM), qui est lui même en aval de cmark, l'implémentation de référence de CommonMark. Snoomark lui-même n'est pas (encore) en open source, mais les modifications apportées à comrak sont régulièrement fusionnées dans Snookmark.
À mesure que de nouveaux redditors ont commencé à utiliser les outils de création de publications et de formatage du nouveau Reddit, la philosophie autour de la prise en charge de Markdown a fluctué : initialement, le plan était de passer à un dispositif approchant de CommonMark et d'abandonner toute compatibilité avec les « particularités » de l'ancien Reddit ; mais à mesure du déploiement, cette position s'est assouplie et un certain nombre de particularités de compatibilité ont été ajoutées au nouvel analyseur.
On ne s'attend pas actuellement à ce que de nombreuses autres particularités de compatibilité soient ajoutées au nouveau Reddit : il est plus probable que l'ancien Reddit sera mis à niveau vers le nouvel analyseur. Dans ce scénario, une certaine quantité (espérons-le, limitée) de l'ancien contenu ne sera plus rendue correctement en raison des différences d'analyse.
Cela dit, les orientations futures continueront à être évaluées à mesure que le déploiement se poursuivra et que des bugs seront signalés.
Le rendu de Markdown dans le nouveau Reddit est notablement différent de celui de l'ancien Reddit, et de celui de la plupart des sites Web qui utilisent Markdown, par le fait qu'il n'apparaît pas directement en HTML à partir de Markdown, mais passe par un format de document intermédiaire exclusif à Reddit, appelé RTJSON (« Rich Text JSON ») Ce format est conçu pour être consommé et rendu facilement par tous les clients de Reddit, Web et sur mobile, alors que dans l'ancien Reddit, les clients mobiles avaient quelques difficultés à rendre le contenu Markdown de manière cohérente. Les détails du format RTJSON ne sont pas publiés actuellement.
Motivation pour effectuer la transition vers CommonMark
Le nouvel analyseur a été créé parce que l'ancien analyseur était difficile à gérer, rédigé en code C critique en termes de sécurité et que l'ajout de nouvelles fonctionnalités était extrêmement difficile. Le nouvel analyseur n'est pas écrit en code C et est donc plus gérable. En outre, la nouvelle conception nécessitait de nouvelles fonctionnalités et la possibilité d'ajouter d'autres fonctions à l'avenir.
La vitesse de développement effective de l'ancien analyseur était de 0. Le nouvel analyseur reçoit les modifications au besoin, et la plupart des changements ne requièrent pas de révision de sécurité.
Cette nouvelle conception offrait également une opportunité de mise à niveau de l'ancien dialecte markdown de Reddit vers un dialecte CommonMark moderne basé sur des normes, où il peut bénéficier des avantages du développement continu en amont et du travail sur les normes, et se tenir à jour pendant environ 6 ans de l'évolution de Markdown (alors que l'ancien analyseur Reddit était stagnant). Cette décision a naturellement donné lieu à de nombreuses plaintes, indiquant que certaines syntaxes de l'ancien Reddit ne fonctionnent pas dans le nouveau Reddit, mais nous avons progressivement ajouté la rétrocompatibilité pour les problèmes les plus courants.
Le Markdown du nouveau Reddit bénéficie en outre de plusieurs fonctionnalités intéressantes héritées de CommonMark, notamment les sauts de ligne après une barre oblique inversée de fin et les blocs de code démarqués par des délimiteurs au lieu de retraits. Pendant la période de transition, ces fonctions ne sont naturellement pas compatibles avec l'ancien Reddit, mais nous nous attendons à ce qu'elles puissent être utilisées en toute sécurité, sans trop de préoccupations concernant la compatibilité : les clients mobiles comprennent déjà la sortie du nouvel analyseur ; seul l'ancien client Web ne le fait pas encore.
La seule alternative sérieuse à la mise à niveau vers CommonMark aurait probablement été la réécriture complète de l'ancien analyseur dans un langage sûr, en conservant toutes les particularités spécifiques à Reddit. Cela n'a probablement pas été considéré comme souhaitable, à la fois en raison des efforts considérables que cela aurait nécessité, et parce que cela n'aurait été adapté à personne d'autre que Reddit. Le nouvel analyseur, en revanche, est basé sur un analyseur CommonMark tenu à jour activement, ce qui est utile pour tous ceux qui souhaitent analyser CommonMark. À long terme, un comportement plus proche de celui de CommonMark offrira une expérience plus transparente à ceux qui utilisent CommonMark ailleurs, principalement ceux qui connaissent la technique, car la grande majorité des utilisateurs du Nouveau Reddit utilisent l'éditeur Fancy Pants. Reddit est maintenant en mesure de participer à la communauté CommonMark en amont (et a déjà affecté des implémentations en amont et la spécification CommonMark). Encore une fois, la combinaison d'un codebase gérable et la disponibilité d'une norme à laquelle se conformer signifie que Reddit peut tenir à jour son analyseur au fil de l'évolution des normes.
Différences entre le Markdown de l'ancien Reddit, le Markdown du nouveau Reddit et CommonMark
Le nouveau Markdown aux accents de Reddit a hérité des caractéristiques du Markdown de l'ancien Reddit et de CommonMark/ GFM, mais il présente aussi des différences avec les autres. Cette section répertorie les différences connues du Markdown du nouveau Reddit par rapport à celui de l'ancien Reddit et par rapport à CommonMark/GFM. Elle n'est pas exhaustive.
Les différences par rapport à l'ancien Reddit sont souvent héritées de CommonMark. Notez que pour ceux qui souhaitent que leur contenu soit rendu avec précision pour les utilisateurs de l'ancien Reddit, on peut choisir de ne pas utiliser ces fonctionnalités. (Voir aussi « Recommandations de compatibilité avec le Markdown aux accents de Reddit ».) Les différences par rapport à CommonMark sont souvent destinées à prendre en charge des « particularités » de l'ancien Reddit. Les différences par rapport à l'un et à l'autre peuvent être considérées ou non comme des bugs, selon la personne qui examine la situation et selon le moment.
Extensions spécifiques à Reddit
Spoilertext — Spoilertext (
>!spoiler!<
) est spécifique à Reddit.Exposants — Il n'y a pas de norme concernant les exposants et Reddit possède sa propre syntaxe, qui est toujours prise en charge (
^
,^(...)
).Caractères barrés — La syntaxe de Reddit est différente de l'extension GFM.
Liens Reddit et liens d'utilisateurs — Noms de subreddits et d'utilisateurs de Reddit, précédés du préfixe
/r/
,r/
,/u/
etu/
, sont automatiquement liés.Médias en texte riche — Reddit prend en charge les soumissions contenant des images, des vidéos et des gifs, lesquels sont encodés dans le Markdown avec une syntaxe d'image en ligne personnalisée. Cette fonction n'est prise en charge que par l'éditeur Fancy Pants — la syntaxe serait d'une complexité rédhibitoire à écrire manuellement actuellement.
Les paragraphes contenant seulement un espace de largeur zéro (
​
) sont des paragraphes vides (le ZWS est supprimé dans le rendu). Cela prend en charge l'éditeur Fancy Pants.
Nouvelles fonctionnalités héritées de CommonMark
Les listes ordonnées peuvent être écrites avec des parenthèses, alors que l'ancien Reddit ne prenait en charge que les listes ordonnées avec des points : (
1)
par rapport à1.
).Les sauts de ligne peuvent être écrits en terminant les lignes par une
\
, alors que l'ancien Reddit ne prenait cela en charge qu'en terminant les lignes par un double-espace. Cette syntaxe est plus lisible et moins surprenante que la syntaxe à double-espace.Les blocs de code peuvent être entourés de délimiteurs au lieu d'être mis en retrait (
```
ou~~~
). Cette syntaxe populaire est peut-être plus facile à écrire et à lire que la syntaxe utilisant le retrait.
Différences par rapport au Markdown de l'ancien Reddit
La syntaxe des exposants utilisant des parenthèses (
^(super duper)
) est analysée de manière plus fiable (par ex. les exposants contenant des liens fonctionnent correctement) et une fois que l'ancien analyseur aura disparu, cette syntaxe devrait généralement être préférée à la syntaxe sans parenthèses (^super
).Les exposants sont analysés légèrement différemment dans les cas particuliers — par ex.,
^(^b)
.Plusieurs niveaux d'exposants imbriqués sont rendus comme un niveau unique d'exposant. Cela pourra être réparé à l'avenir.
- Ticket : CREATE-1599
Le nouveau Reddit n'analyse pas correctement les exposants sans parenthèses lorsqu'ils précèdent un mot qui est suivi par un crochet fermant, une parenthèse fermante ou une mise en évidence fermante.
- Ticket : CREATE-2474
Les parenthèses sans échappement dans les liens doivent être équilibrées.
- Discussions précédentes : 1
- Ticket : CREATE-1662
Les sous-listes requièrent au moins deux espaces de retrait pour les listes non ordonnées et trois pour les listes ordonnées, alors que l'ancien Reddit nécessitait seulement un espace.
- Discussions précédentes : 1
- Ticket : CREATE-1702
La première cellule d'en-tête de tableau ne doit pas être vide si elle n'est pas précédée d'une barre verticale (
|
) — par ex., la syntaxe suivante ne fonctionne pas :(cette ligne est une astuce pour ouvrir un bloc de code dans l'ancien Reddit et ne fait pas partie de l'exemple) |B|C -|-|- d|e|f
- Discussions précédentes : 1
- Ticket : CREATE-1701
Le premier « marqueur » de tableau ne doit pas être un tiret suivi d'un espace s'il n'est pas précédé d'une barre verticale (
|
) — il sera alors interprété comme le début d'une liste. Par exemple, la syntaxe suivante ne fonctionne pas :(cette ligne est une astuce pour ouvrir un bloc de code dans l'ancien Reddit et ne fait pas partie de l'exemple) A | B - | - c | d
- Discussions précédentes : 1
- Ticket : CREATE-1708
Le texte de spoiler n'a bas besoin d'un « encadrement » ; c'est-à-dire que les délimiteurs de spoilertext (
>!
et!<
) seront analysés comme tels, quelle que soit leur situation à proximité d'un espace ou d'un signe de ponctuation.- Discussions précédentes : 1
- Ticket : CREATE-1534
Le spoilertext de blocs de citations n'est pas pris en charge — autrement dit, les codes de blocs écrits avec
>!
au lieu de>
.- Ticket : CREATE-1723
La syntaxe des liens ne permet pas d'espace entre les crochets carrés (
[]
) et les parenthèses (()
).Plus de deux tildes (
~
) dans la syntaxe des caractères barrés — par ex.,a ~~~b~~~ c
— sont traités différemment : dans l'ancien Reddit, les tildes supplémentaires ne sont pas utilisés, alors que dans le nouveau Reddit, ils sont pris en compte. En outre, dans le nouveau Reddit, plus de deux tildes au début d'une ligne peuvent être interprétés comme des délimiteurs de code.Les lignes contenant seulement des signes dièse (
#
) sont gérées différemment : dans l'ancien Reddit, ces lignes étaient entièrement utilisées et n'apparaissaient pas ; dans le nouveau Reddit, 6 dièses ou moins sont rendus comme un en-tête vide, et plus de 6 dièses sont rendus comme un paragraphe contenant des signes dièse.Certains cas particuliers concernant l'analyse de liens contenant des espaces, en particulier en ce qui concerne leur interaction avec les titres de liens, sont différents.
Il existe d'autres cas de différence d'analyse des liens, certains étant considérés comme des bugs et d'autres non décidés.
- Discussions précédentes : 1
- Ticket : CREATE-2206
Certains cas d'analyse « d'intérieurs de mot » en gras+italique (alias fort+souligné) sont différents. Par exemple, l'ancien Reddit analyse
a**_b_**c
comme gras + italique, alors que ce n'est pas le cas de CommonMark.- Discussions précédentes : 1
Les listes ordonnées doivent commencer par « 1 ». Les autres chiffres initiaux ne sont pas pris en charge. L'ancien Reddit analysait les autres chiffres initiaux, même s'il rendait toujours les listes comme débutant par 1.
Le nouveau Reddit autorise régulièrement les mises en évidence imbriquées, comme
_a __b c b__ d_
, alors que l'ancien Reddit produit souvent des erreurs d'analyse dans ces cas.Les liens imbriqués dans des liens sont analysés différemment — par ex.,
[[a](http://exemple.com)](http://exemple.com)
Le texte des liens dans le nouveau Reddit n'autorise pas de spoilertext dans le texte des liens.
- Ticket : CREATE-2623
Les listes non ordonnées démarquées par des
+
ne fonctionnent pas dans le nouveau Reddit. Il s'agit d'une violation de la spécification de CommonMark.- Ticket : CREATE-2403
Les en-têtes ne doivent pas contenir d'intégrations comme des italiques dans le nouveau Reddit. Il s'agit d'une violation de la spécification de CommonMark.
- Ticket : CREATE-2668
De même, le nouveau Reddit accepte le préfixe d'URL seul comme une URL valide, alors que l'ancien Reddit requiert que le préfixe soit suivi d'autres caractères.
Le contenu du paragraphe suivi d'une ligne qui ressemble à une liste non ordonnée est interprété comme la fermeture d'un paragraphe et l'ouverture d'une liste non ordonnée, alors que l'ancien Reddit continuait le paragraphe.
Les définitions de liens de référence peuvent apparaître entre des balises blockquote.
Les longueurs de code intégré contenant des guillemets obliques peuvent contenir n'importe quel nombre de guillemets obliques, alors que dans l'ancien Reddit, les guillemets obliques externes doivent être la chaîne de guillemets la plus longue dans la longueur de code.
`` `code` ``
fonctionne dans les deux,` ``code`` `
fonctionne seulement dans le nouveau Reddit.Les éléments de bloc imbriqués (comme les listes et les blocs de citations et les tableaux) peuvent être ouverts sur la même liste que les éléments de liste.
Différences par rapport à CommonMark/GFM
Les images imbriquées ne sont pas prises en charge en mode Markdown, seulement en mode Fancy Pants.
La syntaxe des exposants est similaire à celle de l'ancien Reddit, pas de comrak.
Les listes ordonnées doivent commencer par « 1 ». Les autres chiffres initiaux ne sont pas pris en charge.
Les liens peuvent contenir des espaces.
Les lignes contenant uniquement des dièses (
#
) sont traitées différemment.Les en-têtes ne requièrent pas d'espaces après les dièses.
Les en-têtes contenant plus de 6 dièses sont analysés différemment, comme des en-têtes de niveau 6 contenant des caractères dièse dans le texte de l'en-tête (par ex.
#######valhallaforolaf
). Dans CommonMark, ces constructions ne sont pas analysées comme des en-têtes.Une ligne de cellules d'un tableau peut commencer par un dièse suivi d'un espace, alors que dans CommonMark, cela ouvrait une nouvelle liste non ordonnée.
(cette ligne est une astuce pour ouvrir un bloc de code dans l'ancien Reddit et ne fait pas partie de l'exemple) A | B | C --|---|-- - | e | f
(Notez cependant que cela ne s'applique pas actuellement à la ligne de « marqueurs » qui suit la ligne d'en-tête, de sorte que ce qui suit n'est pas analysé comme un tableau,
(cette ligne est une astuce pour ouvrir un bloc de code dans l'ancien Reddit et ne fait pas partie de l'exemple) A | B | C - | - | - - | e | f
alors que c'est le cas dans l'ancien Reddit.)
Les caractères barrés requièrent deux tildes (
~~
) dans l'ancien Reddit, et non un seul, comme dans CommonMark.Les liens relatifs ne sont pas pris en charge.
Le HTML en ligne n'est pas pris en charge.
Les listes non ordonnées démarquées par des
+
ne fonctionnent pas dans le nouveau Reddit.Les en-têtes ne doivent pas contenir d'intégrations arbitraires comme les italiques dans le nouveau Reddit.
Différences de prise en charge de contenu entre l'ancien et le nouveau Reddit
La section « Où utiliser Markdown dans Reddit » décrivait les fonctionnalités spécifiques de Reddit qui acceptent Markdown en entrée. À ce jour, il existe des différences importantes en termes de prise en charge de ces différents cas entre l'ancien et le nouveau Reddit, l'ancien et le nouvel analyseur de Markdown.
Voici les détails précis.
auto-texte — Alors que le nouveau Reddit utilise le nouvel analyseur/outil de rendu de Markdown pour rendre l'auto-texte dans la plupart des emplacements, y compris dans la propre page de cette publication et dans la « lucarne » (la fenêtre contextuelle qui s'affiche lorsqu'on clique sur une publication dans la page de liste), il utilise l'ancien analyseur de Markdown dans les aperçus de liste, à la fois dans la vue de carte par défaut et dans « l'expando », c'est-à-dire, les détails qui apparaissent lorsqu'on clique sur l'icône représentant deux flèches opposées) dans la vue classique.
wikis — Actuellement rendus uniquement via l'ancien Reddit.
Description de subreddit — Non interprétée comme un markdown dans le nouveau Reddit. En outre, l'ancien contenu multi-lignes est limité à une seule ligne.
texte de soumission de subreddit — Non rendu du tout dans le nouveau Reddit.
barre latérale de « zone de texte » du nouveau Reddit — Utilise l'outil de rendu de l'ancien Reddit.
règles de subreddit — Toujours rendu avec l'outil de rendu de l'ancien Reddit.
texte « À propos de » des profils d'utilisateur de nouveau style — Toujours rendu avec l'outil de rendu de l'ancien Reddit.
Différences entre Fancy Pants et Markdown.
L'éditeur WYSIWYG de Fancy Pants prend généralement en charge la plupart des fonctionnalités de Markdown prises en charge par Reddit, mais présente certaines limites. Sous son capot, Fancy Pants stocke ses documents comme du Markdown, mais son interface ne prend pas en charge toutes les fonctionnalités de Markdown de Reddit.
Les entités HTML ne peuvent pas être saisies dans Fancy Pants.
Fancy Pants présente des « limites d'imbrication » beaucoup plus basses que le Markdown brut. Les limites d'imbrication affectent la profondeur à laquelle les listes imbriquées et les blocs de citations peuvent être créées dans le document.
Les images et vidéos multimédia peuvent être imbriquées dans le contenu via l'éditeur Fancy Pants, mais pas dans le Markdown brut.
Fancy Pants ne prend en charge qu'un seul niveau d'en-tête.
Fancy Pants ne prend pas en charge l'insertion d'éléments de bloc arbitraires comme les listes, les blocs de citations et les tableaux à l'intérieur de listes ou de blocs de citations.
Fancy Pants ne prend pas en charge les définitions des références de lien - les liens répétés doivent être insérés de manière répétée.
Fancy Pants ne prend pas en charge les sauts de ligne forcés.
Fancy Pants peut créer des lignes vierges, alors que Markdown ne permet pas de le faire. Il utilise pour ce faire une astuce rétrocompatible en insérant des paragraphes contenant un seul espace de largeur zéro (
​
), que l'analyseur de Markdown convertit ensuite en paragraphe vide. Techniquement, les auteurs de Markdown peuvent remplir la même fonction.
Même si la page de soumission peut basculer entre les modes Fancy Pants et Markdown, méfiez-vous des basculements entre Markdown et Fancy Pants. Si le passage de Fancy Pants à Markdown doit s'effectuer sans perte, l'inverse n'est pas vrai. Par exemple, si votre Markdown contient des entités HTML, elles seront converties en Unicode ordinaire pendant la conversion, les listes profondément imbriquées seront perdues, etc. En outre, lors du retour à Markdown depuis Fancy Pants, le Markdown exact que vous avez saisi sera perdu et remplacé par le Markdown généré par Fancy Pants.
Remerciements et lectures recommandées
Un grand merci à /u/brson pour avoir créé ce document et travaillé si dur pour améliorer notre analyseur. L'organisation de base de cette page et de son contenu ont été influencés par la page Reddit Markdown Primer de /u/AnteChrono, la page Reddit Comment Formatting de /u/Raerth, la page Wiki de « commentaires » existante, et la page d'aide de CommonMark.
Citations et références utilisées comme exemples :
- « Très loin, dans les profondeurs inexplorées...» — Douglas Adams
- « Au-delà des idées du mal et du bien...» « L'amour est l'ensemble...» « Ne vous inquiétez pas...» — Rumi
- « Il en faut très peu pour être heureux...» — Marc Aurèle
- « Quelque part dans la Mancha...» — Miguel de Cervantes
- « Seules les erreurs...» — Thomas Paine
- « La plus grande chose que vous apprendrez...» — eden ahbez
- «Agamemnon, ...» — Eschyle
- « Il est si difficile d'oublier la douleur,...» — Chuck Palahniuk
- « J'ai senti mes poumons se gonfler...» — Sylvia Plath