RTL в уценке - PullRequest
       44

RTL в уценке

45 голосов
/ 13 февраля 2010

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

Я надеюсь, что-то вроде

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

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

Ответы [ 5 ]

27 голосов
/ 07 января 2014

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

add & # x202b; (ВПРАВО С ПРАВОЙ К ЛЕВОЙ) в начале абзаца контролирует направление этого абзаца (автоматический сброс по
или по пустой строке):

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

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

& # x202b; test מה זה? ДА
test1 מה זה? НЕТ test2 מה זה? NO

& # x202b; test1 מה זה? ДА test2 מה זה? ДА

15 голосов
/ 02 января 2011

Вот 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

11 голосов
/ 30 августа 2018

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

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

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

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

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

10 голосов
/ 01 апреля 2015

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

7 голосов
/ 06 июня 2011

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

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

...