如何在Jekyll文章中编写RTL文本?

3
我希望能够将Jekyll博客文章的默认文本方向设置为从右到左(RTL)。
以前我通常在Github markdown中在文本开头使用“
”来实现这一点,但是在Jekyll markdown中似乎无法正确设置文本方向,因为我的文章会变得混乱并且无法正确显示。
你有什么建议吗?

你把div的代码放在布局里了吗? - Mr. Hugo
3个回答

3

实际上我需要一个更微妙的解决方案,我的意思是我有一个“帖子模板”(在Kramer Markdown中),我在其中编写混合波斯语和英语文本,因此每种类型的文本都应该有其适当的方向;我认为您的建议将使帖子的所有内容以RTL方式显示,这对于要显示LTR的英语文本将不起作用。Markdown 2.0是否有任何指令/命令来部分设置文本方向? - Hassan Abedi
1
@HassanAbedi 你可以在kramdown中编写HTML标签,有什么问题吗? - marcanuy

1

如果页面是波斯语(或阿拉伯语),您确实需要在前置元数据中指定它:

lang: fa  # or "ar" if Arabic

然后,您可以通过创建一个if / else语句将其与@marcanuy的建议相结合,可能在您的基本布局文件中(在_layouts文件夹中查找类似default.htmlbase.html的文件),如下所示:

{%- if page.lang == 'fa' -%}   
    <div class="root" data-is-touch="false" dir="rtl">
        {{content}} 
    </div>
{%- else -%}
    <div class="root" data-is-touch="false">
        {{content}} 
    </div>
{%- endif -%}

注意:我的div属性,<div class="root" data-is-touch="false">取决于我的模板,而你的可能是其他任何东西。然而,重点在于如果if语句的条件得到满足,将会添加额外的属性。


0
您可以在页面或文章中使用以下布局:
---
layout: pageAuto
--- 
{% assign paragraphs = page.content | newline_to_br | strip_newlines | split: '<br />' %}
{% for p in paragraphs %}
<div dir="auto"> 
{{ p }}
</div>
{% endfor %}

它遍历段落。对于更复杂的情况,您可以使用基于内容或前置元数据中变量的条件块。此外,请注意Internet Explorer或Edge可能不支持自动方向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接