mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 00:29:48 +03:00
No Branch/Tag Specified
development
l10n_development
further_theme_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#2263
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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?
Originally created by @ahangarha on GitHub (May 24, 2021).
Describe the bug
Basically the app doesn't work properly when the text is mixed of RTL and LTR scripts.
Steps To Reproduce
Steps to reproduce the behavior:
these text are "on two three four". One starts with Persian and the Other starts with English. The first one should be read /rendered from right to left.
3. See the behavior in edit and view mode.
Expected behavior
There are different methods on how to deal with mixed text. The most used approach is to decide the direction of the paragraph based on the first strong character on the paragraph. So it it starts with Persian, it should be RTL (even if rest of the text is in English) and vise versa. This can be handled usually by adding
dir="auto"to html element containing the text.Screenshots

Your Configuration (please complete the following information):
I used the demo on https://demo.bookstackapp.com.
@ssddanbrown commented on GitHub (May 24, 2021):
Hi @ahangarha, Thanks for your input.
We have
dir=autoby default at a parent level within page content hence the browser is auto deciding the direction of the content as a whole based upon the first text it reads, the title.We technically could add
dir=autoto every block level item but I'd have thought that may cause more confusion and inconsistency on a page. If you're certain that this is the expected method of dealing with mixed direction text, some references to sources on the matter would be ideal to prove the existing standards.As an added note, since I see you're using the demo, When you enable an RTL language for your profile within BookStack, you'll be provided additional text direction controls within the editor to manually set the direction of each block.
@ahangarha commented on GitHub (May 24, 2021):
Thanks for you reply
I see the impact of that
dir="auto"but this would work if whole of the content is in one language. In practice and especially in making documentations for some program, apart from the regular text (which can be RTL), one would add lots of codes (which are mostly and not necessarily fully LTR). This means it is very much important to take care of such contents. This means each element should have its own direction independent from the surrounding text.Regarding the option to set RTL language for UI, that doesn't help in the scenario I explained. Messengers, Social Media and projects like BookStack would host lots of mixed LTR and RTL content. So having Bidi support is important. We cannot impose one direction to the whole page.
Yet the main challenge is with editor.
@ssddanbrown commented on GitHub (May 25, 2021):
Just to confirm, the text direction controls that will show in the WYSIWYG editor, when an RTL language is in use, allows per-block level control (Section of a page, not the entire page content):
As said above, if this is not the right approach then some examples of common handling on the web, by popular similar applications (Long-form content), would be appreciated since I don't really want to change the existing behavour if it's simply a matter of preference, only if it's a strong followed convention, since there's a significant risk of causing a change of behaviour to existing users.
@ahangarha commented on GitHub (May 25, 2021):
I didn't notice direction controls. That would work for rich text for sure.
Bidi support is only needed for plain texts like title.
@ssddanbrown commented on GitHub (Jun 2, 2021):
I'm going to close this off as I wouldn't really be happy to move forward on any of these requests without clear proof of established convention since I'm not experienced in this area but I'll try to keep this in mind in the event of any similar issues arising.
@ahangarha commented on GitHub (Jun 2, 2021):
Convention is clear: text should have direction based on first strong character. This can be achieved by adding
dir=autoto text container html element andtext-align: startcss style.You have already used
dir="auto"on html elements. What is needed is to add the style to title so that it keeps showing on correct side. And this should be done on all elements which doesn't contain rich text. See the following image which is related to a new book made on demo server:Gitlab uses the same method on its issues/MR to keeps things in correct direction and alignment.