82 votes

RTL dans Markdown

Y a-t-il un addon existant pour markdown qui inclut le support des langues RTL ?

Ce que j'espère, c'est quelque chose comme

This paragraph is left to right
<- This paragraph is right to left

Ou quelque chose comme ça... Je peux modifier mon analyseur syntaxique pour gérer cela, mais je veux m'assurer que cela n'existe pas déjà.

79voto

Makan Tayebi Points 69

En fait, comme mon ami Aevyz m'a rappelé, Markdown analyse le HTML en lui.

Vous n'aurez pas besoin de modifier votre analyseur syntaxique. La solution la plus rapide à laquelle j'ai pensé est la suivante :

<div dir="rtl">

</div>

Vous devez donc ajouter littéralement deux lignes pour transformer un document entier ou une section arbitraire de celui-ci en RTL. Il sera plus compatible qu'un propre script.

38voto

Alex Cohn Points 13248

Ce n'est pas exactement du markdown, mais c'est ainsi que vous pouvez remplacer le sens des paragraphes dans les questions et réponses de StackExchange (cette méthode ne fonctionne pas pour les commentaires) :

ajouter (RIGHT-TO-LEFT EMBEDDING) au début d'un paragraphe permet de contrôler la direction de ce paragraphe (auto-reset sur <br/>ou ligne vide) :

&#x202b;test מה זה? YES<br/>
test1 מה זה? NO
test2 מה זה? NO

&#x202b;test1 מה זה? YES
test2 מה זה? YES

test מה זה ? OUI
test1 מה זה ? NON test2 מה זה ? NON

test1 מה זה ? OUI test2 מה זה ? OUI

18voto

KajMagnus Points 2580

Voici une implémentation JavaScript de Markdown, qui (selon les commentaires du commit) ajoute le support des langues RTL, à savoir l'arabe, l'hébreu, le syriaque et le thaana. Et il semble trivialement facile d'ajouter d'autres langues.

https://github.com/hasenj/showdown/

C'est basé sur Showdown, http://attacklab.net/showdown .

Il semble comprendre automatiquement si le texte doit être rendu de droite à gauche ou non.
Considérez cet extrait de code : (du tout premier commit sur GitHub)

var p_tag = "<p>";
var rtl_p_tag = "<p style='direction:rtl; text-align: right'>";

// Check for RTL paragraphs: paragraphs that start with a character
// from an RTL script.
// RTL scripts are: Arabic, Hebrew, Syriac, Thaana
// Unicode ranges reference: http://www.ssec.wisc.edu/~tomw/java/unicode.html
var first_char = str.charCodeAt(str.search(/\S/)); //first non-white-space char
if(first_char >= 1424 && first_char <= 1983) 
{
    p_tag = rtl_p_tag;
}

    str = _RunSpanGamut(str);
    str = str.replace(/^([ \t]*)/g, p_tag);

J'espère que cela vous aidera,
Magnus

13voto

Dariush Abbasi Points 330

Je ne trouve rien dans le standard markdown pour les textes bidi. J'utilise mon propre éditeur : rtlmd

8voto

Avi Points 1833

מעניין. עכשיו אני רואה שבעצם יש גם לאתר הזה פה תמיכה בעברית וכתיבה מימין לשמאל. הבעיה היא שזה כותב טוב, אבל בתרגום בתיבה למטה שמציגה כמו שזה אמור להראות זה לא עובד טוב.

Le paragraphe ci-dessus a été écrit en hébreu RTL et s'est affiché correctement dans la zone de saisie mais pas dans la zone de prévisualisation. Cependant, il n'y avait pas de support pour le mixage - avoir un paragraphe RTL et un autre LTR. Il semble que quelqu'un doive porter le support de l'hébreu dans Markdown ci-dessus également pour MarkdownSharp, la version de SO. Cela ne devrait pas être trop difficile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X