Вот JavaScript-реализация Markdown, которая (согласно комментариям к коммиту) добавляет поддержку языков RTL, а именно арабского, иврита, сирийского, тхана И кажется, что легко добавить больше языков.
https://github.com/hasenj/showdown/
Он основан на вскрытии, http://attacklab.net/showdown.
Кажется, автоматически понимается, следует ли отображать текст справа налево.
Рассмотрим этот фрагмент кода: (с самого первого коммита на 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);
Надеюсь, это поможет,
Magnus