Markdown 中的 RTL

问题描述 投票:0回答:11

是否有任何现有的 Markdown 插件规范包含对 RTL 语言的支持?

我所希望的是类似的东西

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

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

markdown right-to-left
11个回答
97
投票

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

您无需更改解析器。我能想到的解决问题的最快路径是:

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

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

因此您需要添加两行以将整个文档或其任意部分转换为 RTL。它会比自己的脚本更兼容。


39
投票

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

在段落开头添加(从右到左嵌入)确实可以控制该段落的方向(在
或空行上自动重置):

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

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

测试什么?是的
test1 是什么?不 test2 是什么?不

test1 是什么?是的 test2 是什么?是的


23
投票

这里是 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);

希望这有帮助,
马格努斯


16
投票

我在比迪文本的降价标准中没有找到任何内容。 我使用自己的编辑器:rtlmd


11
投票

只需使用

dir="auto"
就像下面的例子一样,它就会按照你想要的方式工作:

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


11
投票

您可以使用:

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


or:

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


or (recommended):

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


9
投票

ענййй。世界上最伟大的人 一切都已结束。 六月六日 六月十五日 六月十五日 六月十五日吖 זה לא עובד טוב.

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


6
投票

您可以简单地在

span
标签之间添加所有内容,如下所示:

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

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


0
投票

当我使用对齐时,它看起来更好,但项目符号和编号中没有缩进


0
投票

由于 markdown 接受 html,因此使用这个技巧可能会很有用:

<style>*{direction: rtl}</style>

متن راست به چپ rtl text

## **rtl title عنوان راست به چپ**

我在 VSCode Jupyter Notebooks 中使用它,好处是你仍然可以使用 Markdown 标签(当你将内容包装在

<div dir="rtl">
或任何其他 HTML 标签中时这是不可能的)。


0
投票

简单的解决方案

在 Visual Studio Code 中,您可以通过在 Markdown 文件的开头添加以下注释来设置文档方向:

<!-- language: rtl -->

也在 Markdown 文件的开头:

如果所有文件都是

rtl

<style>
    * {
        direction: rtl;
    }
</style>

或者任何你想要的风格

您可以添加单独的自定义 css 文件,就像我们对 Html 文件所做的那样,就像在 Markdown 文件的开头一样:

<link rel="stylesheet" href="custom.css">

谢谢你^^

© www.soinside.com 2019 - 2024. All rights reserved.