noteworthy
noteworthy copied to clipboard
Right-to-left (RTL) languages support
Please consider adding support for Right-to-left (RTL) languages (Arabic: 422 million speakers + Hebrew 5 million people + Persian/Farsi 110 million people + Urdu 70 million people )
Resources: https://www.w3.org/International/questions/qa-html-dir
Thank you for the suggestion! RTL support (and support for CJK scripts as well) has been in the back of my mind but I'm pretty clueless about how to get the user experience right. In some ways, this might be out of my control, since:
- Noteworthy is built on ProseMirror, so it will only be possible to support RTL to the extent that ProseMirror supports it.
- ProseMirror Discuss, "Does ProseMirror Support RTL languages editing?"
- Noteworthy will use
remarkfor parsing Markdown (currently in the process of migrating frommarkdown-it). Theremarkproject aims not to deviate from CommonMark, which as far as I know has no standard solution for handling RTL.- StackOverflow, "RTL in Markdown"
- StackOverflow, "How to Write RTL direction in Markdown"
- Markdown Discourse, "RTL Languages Support"
- Markdown Discourse, "Explicit RTL Indication in Pure Markdown"
Could you do me a favor and try out the example editor on the ProseMirror site and let me know if everything works the way you expect as a RTL user?
- If it does work as expected, it should be straightforward to get RTL working in Noteworthy.
- If it does not work as expected, I suspect there are some deeper issues to solve in ProseMirror / remark that will block RTL support in Noteworthy
I will do an audit of the existing code to see if there are any places where I'm doing something obviously RTL-incompatible. Long term (once Noteworthy has a public release) I hope to have some RTL / CJK users who can help me get language support right.
I did a test on Prosemirror Markdown and WYSIWYM example editors. This is what a bidi example looks like on these editors:

This is what it supposed to look like:

Apparently just like Codemirror, RTL is not implemented there. I'm not sure how much of it is under your control but usually RTL speakers need a bi-directional editor where each paragraph/block has its own direction. The common approach is to detect the first character of each paragraph and automatically change the direction based on that character. Even a manual way to switch between directions is helpful (example: CTRL/⌘+ L-shift/R-shift shortcuts or a dedicated button).
Also requires addressing benrbray/prosemirror-math#41