80

是否有任何现有的降价插件规范,包括对 RTL 语言的支持?

我希望是这样的

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

或者什么...我可以调整我的解析器来处理这个,但我想确保它不存在。

4

8 回答 8

76

实际上,正如我的朋友Aevyz提醒我的那样,Markdown 会在其中解析 HTML。

您无需更改解析器。我能想到的最快的解决方法是:

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

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

因此,您需要从字面上添加两行才能将整个文档或其中的任意部分转换为 RTL。它将比自己的脚本更兼容。

于 2018-08-30T10:58:56.093 回答
37

不完全是降价,但这是您可以在 StackExchange 问题和答案中覆盖段落方向的方式(此方法不适用于评论):

添加 ‫ (RIGHT-TO-LEFT EMBEDDING) 在段落的开头确实控制了该段落的方向(在 <br/> 或空行上自动重置):

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

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

测试 מה זה?是
的 test1 מה זה? 没有 test2 מה זה?不

测试1 מה זה?是的 test2 מה זה?是的

于 2014-01-07T08:52:35.503 回答
18

这是 Markdown 的 JavaScript 实现,它(根据提交评论)增加了对 RTL 语言的支持,即阿拉伯语、希伯来语、叙利亚语、Thaana。添加更多语言似乎很容易。

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

它基于 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);

希望这会有所帮助,
马格努斯

于 2011-01-02T20:02:31.830 回答
13

我在双向文本的降价标准中找不到任何内容。我使用自己的编辑器:rtlmd

于 2015-04-01T10:47:54.337 回答
8

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

上述段落是用希伯来语 RTL 编写的,在输入框中正确显示,但在预览中却没有。但是,不支持混合 - 有一个段落 RTL 和另一个 LTR。似乎有人需要在 Markdown 中移植上述希伯来语支持,也适用于 SO 版本的 MarkdownSharp。应该不会太难。

于 2011-06-05T20:58:02.607 回答
8

只需dir="auto"像下面的示例一样使用它,它将按您的意愿工作:

 <div dir="auto">
                با استفاده از attribute dir با مقدار auto در HTML می تونید به طور خودکار RTL رو هم داشته باشید.
  </div>

于 2021-01-24T05:04:21.907 回答
3

您可以简单地在span标签之间添加所有内容,如下所示:

<span dir="rtl" align="right">
      این یک test است
</span>

您可能需要检查链接以查看实际示例。

于 2021-06-24T07:50:00.450 回答
2

您可以使用:

<div align="right">
   این متن test است
</div>


or:

<div dir="auto" align="right">
   این متن test است
</div>


or (recommended):

<div dir="auto">
   این متن test است
</div>

于 2021-11-28T10:14:58.950 回答