Markdown 中的 RTL

发布于 2024-08-21 04:36:50 字数 199 浏览 6 评论 0原文

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

我所希望的是类似的东西

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

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

Is there any existing addon spec for markdown that includes support for RTL languages?

What I'm hoping for is something like

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

Or something... I can tweak my parser to handle this but I want to make sure it doesn't exist already.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

与君绝 2024-08-28 04:36:51

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

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

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

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

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

Actually as my friend Aevyz reminded me, Markdown parses HTML in it.

You won't need to change your parser. The quickest path to solve that I could think of is this:

<div dir="rtl">

سلام دنیا

مرحبا العالم

שלום בעולם

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

So you need to add literally two lines to turn a whole document or an arbitrary section of it into RTL. It will be more compatible than an own script.

比忠 2024-08-28 04:36:51

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

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

‫test מה זה? YES<br/>
test1 מה זה? NO
test2 מה זה? NO

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

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

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

Not exactly markdown, but this is how you can override paragraph direction in StackExchange questions and answers (this method does not work for comments):

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

‫test מה זה? YES<br/>
test1 מה זה? NO
test2 מה זה? NO

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

‫test מה זה? YES
test1 מה זה? NO
test2 מה זה? NO

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

关于从前 2024-08-28 04:36:51

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

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

Here is a JavaScript implementation of Markdown, which (according to the commit comments) adds support for RTL languages, namely Arabic, Hebrew, Syriac, Thaana. And it seems trivially easy to add more languages.

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

It's based on Showdown, http://attacklab.net/showdown.

It seems to automatically understand whether or not to render the text from right to left.
Consider this code snippet: (from the very first commit at 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);

Hope this helps,
Magnus

青衫儰鉨ミ守葔 2024-08-28 04:36:51

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

I don't find anything in markdown standard for bidi texts.
I use my own editor : rtlmd

手心的温暖 2024-08-28 04:36:51

只需像下面的示例一样使用 dir="auto" ,它就会按照您想要的方式工作:

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

Just use dir="auto" like the below example and it will work as you wanted:

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

苦妄 2024-08-28 04:36:51

您可以使用:

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

或:

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

或(推荐):

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

You can use:

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

or:

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

or (recommended):

<div dir="auto">
   این متن test است
</div>
莳間冲淡了誓言ζ 2024-08-28 04:36:51

最好的。世界上最伟大的人
一切都已结束。
六角形 六角形 六角形 六角形 六角形 六角形埃
זה לא עובד טוב。

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

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

The above paragraph was written in Hebrew RTL and was displayed correctly in the input box but not in the preview one. However, there was no support for mixing - having one paragraph RTL and another one LTR. Seems someone needs to port the above Hebrew support in Markdown also for MarkdownSharp, SO's version. Shouldn't be too hard.

俏︾媚 2024-08-28 04:36:51

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

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

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

You can simply add everything between span tags like below:

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

You may want to check this link to see an example in action.

残龙傲雪 2024-08-28 04:36:51

简单的解决方案

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

<!-- language: rtl -->

也在 Markdown 文件的开头:

如果所有文件都是 rtl

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

或任何您想要的样式

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

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

Simple Solution

In Visual Studio Code, you can set the document direction by adding the following comment at the beginning of your Markdown file:

<!-- language: rtl -->

or

also in the beginning of your Markdown file:

if all the file is rtl

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

or any style you want

or

you can add separate custom css file like we are doing with Html file, like this in the beginning of your Markdown file :

<link rel="stylesheet" href="custom.css">
寄离 2024-08-28 04:36:51

由于 markdown 接受 html,所以使用这个技巧可能很有用:

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

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

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

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

或任何其他 HTML 标记)。

Since the markdown accepts html, using this trick might be useful:

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

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

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

I use this in VSCode Jupyter Notebooks, and the good thing is you can still use markdown tags (which is not possible when you wrap the content in <div dir="rtl"> or any other HTML tag).

独孤求败 2024-08-28 04:36:51

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

when I use align it looks better, but has no indents in bullets and numbering

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文