Codeberg/Community
60
387
Fork
You've already forked Community
12

Display RTL (right-to-left) text properly #1021

Closed
opened 2023年05月14日 08:03:17 +02:00 by mokazemi · 9 comments

If a markdown text is in a Right-to-Left language (Farsi, Arabic, etc), Codeberge doesn't show it in proper way. Instead, it shows it Left-to-Right.

Also the same thing is true for textboxes (Like the one that I'm righting in)!

I attach the screenshots to see how it's now and how it should be.

Wrong (Codeberg)
image

Correct (Github)
image

If a markdown text is in a Right-to-Left language (Farsi, Arabic, etc), Codeberge doesn't show it in proper way. Instead, it shows it Left-to-Right. Also the same thing is true for textboxes (Like the one that I'm righting in)! I attach the screenshots to see how it's now and how it should be. ❌ Wrong (Codeberg) ![image](/attachments/405f2368-8488-4f17-a5ae-a54ff16fda27) ✅ Correct (Github) ![image](/attachments/c64e58e6-87fa-4a92-b639-1835c1675cc6)

Any link to such a sample file?

Any link to such a sample file?
> Any link to such a sample file? Yes. @silverwind This is the file on Codeberg: https://codeberg.org/mokazemi/Linux-notes-and-cheatsheet/src/branch/main/Set-Persian-Font-Globally.md And this is the same file on Github: https://github.com/mokazemi/Linux-notes-and-cheatsheet/blob/main/Set-Persian-Font-Globally.md

To display bidirectional texts properly, the best way is to add dir="auto" to every element. and in CSS, should use start and end instead of left and right. for example: text-align: start;. and similar things for margins, padding and...

To display bidirectional texts properly, the best way is to add `dir="auto"` to every element. and in CSS, should use `start` and `end` instead of `left` and `right`. for example: `text-align: start;`. and similar things for margins, padding and...

...the best way is to add dir="auto" to every element...

Not exactly.
This doesn't work on nested elements (for example li inside ul)

> ...the best way is to add `dir="auto"` to every element... Not exactly. This doesn't work on nested elements (for example `li` inside `ul`)

Looking at how GitHub does it, they do appear to indeed add dir=auto to many elements. There are CSS properties like direction, but apparently those do not have a auto value.

image

Looking at how GitHub does it, they do appear to indeed add `dir=auto` to many elements. There are CSS properties like `direction`, but apparently those do not have a `auto` value. ![image](/attachments/738a4d5b-50d0-4aba-a428-25929873ab37)
133 KiB

WIP at https://github.com/go-gitea/gitea/pull/24816, I added the dir=auto, but it does nothing. Not sure what else is needed. Feedback welcome on how to get it to work.

WIP at https://github.com/go-gitea/gitea/pull/24816, I added the `dir=auto`, but it does nothing. Not sure what else is needed. Feedback welcome on how to get it to work.

WIP at https://github.com/go-gitea/gitea/pull/24816, I added the dir=auto, but it does nothing. Not sure what else is needed. Feedback welcome on how to get it to work.

I did a lot of experiments on Codeberg and Github and I guess finally found the problem.
The thing is, somewhere on Codeberg css you are setting text-align: left; which causes the text direction to be RTL, but the align is still LTR.

image

That .ui.table selector is selecting the grandparent div of markdown text.
Removing that text-align: left; or adding text-align: initial; to the child(s) solves the issue.

> WIP at https://github.com/go-gitea/gitea/pull/24816, I added the `dir=auto`, but it does nothing. Not sure what else is needed. Feedback welcome on how to get it to work. I did a lot of experiments on Codeberg and Github and I guess finally found the problem. The thing is, somewhere on Codeberg css you are setting `text-align: left;` which causes the text direction to be RTL, but the align is still LTR. ![image](/attachments/432b2294-7180-44f5-952e-19a5d44eecd5) That `.ui.table` selector is selecting the grandparent div of markdown text. Removing that `text-align: left;` or adding `text-align: initial;` to the child(s) solves the issue.

Thanks, I figured that out as well. It's a short-sighted style coming from the Fomantic UI framework, which we now override to text-align: start and then it works. https://github.com/go-gitea/gitea/pull/24816 will merge momentarily.

Thanks, I figured that out as well. It's a short-sighted style coming from the Fomantic UI framework, which we now override to `text-align: start` and then it works. https://github.com/go-gitea/gitea/pull/24816 will merge momentarily.

This seems to have been fixed. Huge thanks @silverwind! Closing...

This seems to have been fixed. Huge thanks @silverwind! Closing...
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Labels
Clear labels
accessibility
Reduces accessibility and is thus a "bug" for certain user groups on Codeberg.
bug
Something is not working the way it should. Does not concern outages.
bug
infrastructure
Errors evidently caused by infrastructure malfunctions or outages
Codeberg
This issue involves Codeberg's downstream modifications and settings and/or Codeberg's structures.
contributions welcome
Please join the discussion and consider contributing a PR!
docs
No bug, but an improvement to the docs or UI description will help
duplicate
This issue or pull request already exists
enhancement
New feature
infrastructure
Involves changes to the server setups, use `bug/infrastructure` for infrastructure-related user errors.
legal
An issue directly involving legal compliance
licence / ToS
involving questions about the ToS, especially licencing compliance
please chill
we are volunteers
Please consider editing your posts and remember that there is a human on the other side. We get that you are frustrated, but it's harder for us to help you this way.
public relations
Things related to Codeberg's external communication
question
More information is needed
question
user support
This issue contains a clearly stated problem. However, it is not clear whether we have to fix anything on Codeberg's end, but we're helping them fix it and/or find the cause.
s/Forgejo
Related to Forgejo. Please also check Forgejo's issue tracker.
s/Forgejo/migration
Migration related issues in Forgejo
s/Pages
Issues related to the Codeberg Pages feature
s/Weblate
Issue is related to the Weblate instance at https://translate.codeberg.org
s/Woodpecker
Woodpecker CI related issue
security
involves improvements to the sites security
service
Add a new service to the Codeberg ecosystem (instead of implementing into Forgejo)
upstream
An open issue or pull request to an upstream repository to fix this issue (partially or completely) exists (i.e. Forgejo, Weblate, etc.)
wontfix
Codeberg's current set of contributors are not planning to spend time on delegating this issue.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
5 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg/Community#1021
Reference in a new issue
Codeberg/Community
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?