Подтвердить что ты не робот

RTL в Markdown

Существует ли какая-либо существующая спецификация аддона для уценки, которая включает поддержку языков RTL?

То, что я надеюсь, это что-то вроде

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

Или что-то... Я могу настроить мой парсер, чтобы справиться с этим, но я хочу убедиться, что он еще не существует.

4b9b3361

Ответ 1

Ниже приведена реализация Markdown на JavaScript, которая (согласно комментариям к коммиту) добавляет поддержку языков 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);

Надеюсь, это поможет,
Магнус

Ответ 2

Не точно уценка, но вы можете переопределить направление абзаца в вопросах и ответах StackExchange (этот метод не работает для комментариев):

add &#x202b; (RIGHT-TO-LEFT EMBEDDING) in the beginning of a paragraph does control the direction of this paragraph (auto-reset on <br/" > or empty line):

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

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

‫test מה זה? YES
test1 מה זה? НЕТ test2 מה זה? НЕТ

‫test1 מה זה? YES test2 מה זה? ДА

Ответ 3

На самом деле, как напомнил мне мой друг Aevyz, Markdown анализирует в нем HTML.

Вам не нужно будет менять свой парсер. Самый быстрый путь решения, который я мог придумать, таков:

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

ہیلو دنیا
</div>

Поэтому вам нужно добавить буквально две строки, чтобы превратить весь документ RTL, и, кстати, он будет лучше совместим, чем собственный скрипт. Так что я думаю, что это ответ на вопрос.

Ответ 4

Я не нахожу ничего в стандарте уценки для биди текстов. Я использую свой собственный редактор: rtlmd

Ответ 5

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

Вышеупомянутый абзац был написан на иврите RTL и корректно отображался в поле ввода, но не в предварительном просмотре. Однако не было поддержки для смешивания - с одним абзацем RTL и другим LTR. Кажется, кому-то нужно передать вышеупомянутую ивритскую поддержку в Markdown также для MarkdownSharp, SO версии. Не должно быть слишком сложно.