Skip to content

Improve RTL rendering #14044

Closed
Closed
@Nishef

Description

@Nishef

Right to left Persian language render bug

Is there an existing issue for this?

  • I have searched the existing issues

Can the issue be reproduced with the default theme (daylight/midnight)?

  • I was able to reproduce the issue with the default theme

Could the issue be due to extensions?

  • I've ruled out the possibility that the extension is causing the problem.

Describe the problem

Hi, Thanks for this great app.

After selecting all the text to be right to left direction and chosing the rtl alignment, it doesn't render the bullet point and number list correctly. but the body text is positioned correctly(Except for the title text).

Image

Expected result

Should render something like this:

Image

Screenshot or screen recording presentation

No response

Version environment

- Version: v3.1.21
- Operating System: Win 11
- Browser (if used):

Log file

system-log.zip

siyuan.log:

I 2025/02/11 00:26:27 working.go:148:
___ ___ ___ ___
/ /\ ___ ___ //\ / /\ //
/ /:/_ / /\ //| \ :\ / /::\ \ :
/ /:/ /\ / /:/ | |:| \ :\ / /:/:\ \ :
/ /:/ /::\ /
/::\ | |:| ___ \ :\ / /://::\ __:
//:/ /:/:\ _/:_ ||:| /
/\ __:\ /
/:/ /:/:\ /_/::::::::
\ :/:/
/:/ \ :/\ //::::\ \ :\ / /:/ \ :/:// \ :~~/
\ ::/ /:/ _::/ ~:\ \ :\ /:/ \ ::/ \ :\ ~~~
_
/ /:/ //:/ \ :\ \ :/:/ \ :\ \ :
/
/:/ _/ _/ \ ::/ \ :\ \ :
_/ _/ _/ _/
I 2025/02/11 00:26:27 runtime.go:87: kernel is booting:
* ver [3.1.20]
* arch [amd64]
* os [Microsoft Windows 11 Pro]
* pid [17796]
* runtime mode [prod]
* working directory [C:\Program Files\SiYuan\resources]
* read only [false]
* container [std]
* database [ver=20220501]
* workspace directory [D:\SiYaun]
I 2025/02/11 00:26:27 conf.go:147: initialized the specified language [en_US]
I 2025/02/11 00:26:27 runtime.go:139: use network proxy [system]
I 2025/02/11 00:26:27 serve.go:209: kernel [pid=17796] http server [127.0.0.1:12723] is booting
I 2025/02/11 00:26:28 blocktree.go:75: reinitialized database [D:\SiYaun\temp\blocktree.db]
I 2025/02/11 00:26:28 database.go:92: the database structure is changed, rebuilding database...
I 2025/02/11 00:26:28 database.go:109: reinitialized database [D:\SiYaun\temp\siyuan.db]
I 2025/02/11 00:26:28 conf.go:853: tree/block count [0/0]
I 2025/02/11 00:26:28 working.go:194: kernel booted
I 2025/02/11 00:26:28 box.go:77: auto stat [trees=0, blocks=0, dataSize=36.87 kB, assetsSize=0 B]
I 2025/02/11 00:26:28 disk.go:33: disk usage [total=326.33 GB, used=217.02 GB, free=109.31 GB]
I 2025/02/11 00:26:28 font.go:58: loaded system fonts [116] in [619ms]
I 2025/02/11 00:26:28 fixedport.go:35: fixed port service [127.0.0.1:6806] is running
I 2025/02/11 00:26:30 pandoc.go:186: initialized built-in pandoc [ver=3.5, bin=D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 00:26:30 conf.go:1115: pandoc initialized, set pandoc bin to [D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 00:26:31 index.go:220: rebuilt database for notebook [20210808180117-6v0mkxr] in [0.03s], tree [count=67, size=1.39 MB]
I 2025/02/11 00:26:31 index.go:290: resolved refs [37] in [38ms]
I 2025/02/11 00:48:39 mount.go:65: created box [20250211004839-71y9c7i]
I 2025/02/11 00:48:39 index.go:220: rebuilt database for notebook [20250211004839-71y9c7i] in [0.01s], tree [count=0, size=0 B]
I 2025/02/11 00:48:39 index.go:290: resolved refs [37] in [306ms]
E 2025/02/11 00:49:00 tree.go:214: block id is invalid [id=], stack: [ github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0x0, 0x0})
D:/88250/siyuan/kernel/model/tree.go:213 +0x151
github.com/siyuan-note/siyuan/kernel/model.GetDoc({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, ...)
D:/88250/siyuan/kernel/model/file.go:454 +0xac
github.com/siyuan-note/siyuan/kernel/api.getDoc(0xc00339e200)
D:/88250/siyuan/kernel/api/filetree.go:1132 +0x6f6
]
E 2025/02/11 00:49:00 tree.go:214: block id is invalid [id=], stack: [ github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0x0, 0x0})
D:/88250/siyuan/kernel/model/tree.go:213 +0x151
github.com/siyuan-note/siyuan/kernel/model.GetDoc({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, ...)
D:/88250/siyuan/kernel/model/file.go:454 +0xac
github.com/siyuan-note/siyuan/kernel/api.getDoc(0xc003d40c00)
D:/88250/siyuan/kernel/api/filetree.go:1132 +0x6f6
]
E 2025/02/11 00:49:00 tree.go:214: block id is invalid [id=], stack: [ github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0x0, 0x0})
D:/88250/siyuan/kernel/model/tree.go:213 +0x151
github.com/siyuan-note/siyuan/kernel/model.GetDoc({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, ...)
D:/88250/siyuan/kernel/model/file.go:454 +0xac
github.com/siyuan-note/siyuan/kernel/api.getDoc(0xc002d24500)
D:/88250/siyuan/kernel/api/filetree.go:1132 +0x6f6
]
E 2025/02/11 00:49:00 tree.go:214: block id is invalid [id=], stack: [ github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0x0, 0x0})
D:/88250/siyuan/kernel/model/tree.go:213 +0x151
github.com/siyuan-note/siyuan/kernel/model.GetDoc({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, ...)
D:/88250/siyuan/kernel/model/file.go:454 +0xac
github.com/siyuan-note/siyuan/kernel/api.getDoc(0xc003d40600)
D:/88250/siyuan/kernel/api/filetree.go:1132 +0x6f6
]
E 2025/02/11 00:49:00 tree.go:214: block id is invalid [id=], stack: [ github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0x0, 0x0})
D:/88250/siyuan/kernel/model/tree.go:213 +0x151
github.com/siyuan-note/siyuan/kernel/model.GetDoc({0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, ...)
D:/88250/siyuan/kernel/model/file.go:454 +0xac
github.com/siyuan-note/siyuan/kernel/api.getDoc(0xc003d40b00)
D:/88250/siyuan/kernel/api/filetree.go:1132 +0x6f6
]
I 2025/02/11 00:50:19 format.go:32: formatting tree [20250211004843-x98ixr7]...
I 2025/02/11 00:50:19 format.go:75: formatted tree [20250211004843-x98ixr7]
I 2025/02/11 01:03:50 conf.go:615: exiting kernel [force=false, setCurrentWorkspace=true, execInstallPkg=0]
W 2025/02/11 01:03:50 box.go:115: found a corrupted box [D:\SiYaun\data\20210808180117-6v0mkxr]
W 2025/02/11 01:03:50 box.go:143: fixed a corrupted box [D:\SiYaun\data\20210808180117-6v0mkxr]
I 2025/02/11 01:03:50 conf.go:1105: closed user guide box [20210808180117-6v0mkxr]
I 2025/02/11 01:03:50 database.go:1318: closed database
E 2025/02/11 01:03:50 blocktree.go:393: sql query [SELECT * FROM blocktrees WHERE id = ?] failed: github.com/siyuan-note/siyuan/kernel/treenode.GetBlockTree({0xc0007bce10, 0x16})
D:/88250/siyuan/kernel/treenode/blocktree.go:393 +0x185
github.com/siyuan-note/siyuan/kernel/model.LoadTreeByBlockID({0xc0007bce10, 0x16})
D:/88250/siyuan/kernel/model/tree.go:218 +0x3f
github.com/siyuan-note/siyuan/kernel/model.Outline({0xc0007bce10, 0x16}, 0x0)
D:/88250/siyuan/kernel/model/outline.go:213 +0x4b
github.com/siyuan-note/siyuan/kernel/api.getDocOutline(0xc001532300)
D:/88250/siyuan/kernel/api/outline.go:47 +0x145
I 2025/02/11 01:03:50 conf.go:1036: cleared workspace temp
I 2025/02/11 01:03:51 sync.go:798: sync websocket closed
I 2025/02/11 01:03:56 working.go:148:
___ ___ ___ ___
/ /\ ___ ___ //\ / /\ //
/ /:/_ / /\ //| \ :\ / /::\ \ :
/ /:/ /\ / /:/ | |:| \ :\ / /:/:\ \ :
/ /:/ /::\ /
/::\ | |:| ___ \ :\ / /://::\ __:
//:/ /:/:\ _/:_ ||:| /
/\ __:\ /
/:/ /:/:\ /_/::::::::
\ :/:/
/:/ \ :/\ //::::\ \ :\ / /:/ \ :/:// \ :~~/
\ ::/ /:/ _::/ ~:\ \ :\ /:/ \ ::/ \ :\ ~~~
_
/ /:/ //:/ \ :\ \ :/:/ \ :\ \ :
/
/:/ _/ _/ \ ::/ \ :\ \ :
_/ _/ _/ _/
I 2025/02/11 01:03:56 runtime.go:87: kernel is booting:
* ver [3.1.20]
* arch [amd64]
* os [Microsoft Windows 11 Pro]
* pid [19028]
* runtime mode [prod]
* working directory [C:\Program Files\SiYuan\resources]
* read only [false]
* container [std]
* database [ver=20220501]
* workspace directory [D:\SiYaun]
I 2025/02/11 01:03:56 conf.go:129: loaded conf [D:\SiYaun\conf\conf.json]
I 2025/02/11 01:03:56 runtime.go:139: use network proxy [system]
I 2025/02/11 01:03:56 serve.go:209: kernel [pid=19028] http server [127.0.0.1:13075] is booting
I 2025/02/11 01:03:57 working.go:513: database [D:\SiYaun\temp\siyuan.db] size [9.7 MB]
I 2025/02/11 01:03:57 working.go:513: database [D:\SiYaun\temp\blocktree.db] size [790.53 kB]
I 2025/02/11 01:03:57 working.go:513: database [D:\SiYaun\temp\history.db] size [65.54 kB]
I 2025/02/11 01:03:57 working.go:513: database [D:\SiYaun\temp\asset_content.db] size [24.58 kB]
I 2025/02/11 01:03:57 conf.go:853: tree/block count [1/350]
I 2025/02/11 01:03:57 working.go:194: kernel booted
I 2025/02/11 01:03:57 box.go:77: auto stat [trees=1, blocks=350, dataSize=4.58 MB, assetsSize=0 B]
I 2025/02/11 01:03:57 disk.go:33: disk usage [total=326.33 GB, used=217.18 GB, free=109.15 GB]
I 2025/02/11 01:03:57 fixedport.go:35: fixed port service [127.0.0.1:6806] is running
I 2025/02/11 01:03:57 font.go:58: loaded system fonts [116] in [965ms]
I 2025/02/11 01:04:00 pandoc.go:146: built-in pandoc [ver=3.5, bin=D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 01:04:00 conf.go:1115: pandoc initialized, set pandoc bin to [D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 01:11:11 format.go:32: formatting tree [20250211004843-x98ixr7]...
I 2025/02/11 01:11:11 format.go:75: formatted tree [20250211004843-x98ixr7]
I 2025/02/11 01:20:53 conf.go:615: exiting kernel [force=false, setCurrentWorkspace=true, execInstallPkg=0]
I 2025/02/11 01:20:53 database.go:1318: closed database
I 2025/02/11 01:20:53 conf.go:1036: cleared workspace temp
I 2025/02/11 01:20:53 sync.go:798: sync websocket closed
I 2025/02/11 10:27:02 working.go:148:
___ ___ ___ ___
/ /\ ___ ___ //\ / /\ //
/ /:/_ / /\ //| \ :\ / /::\ \ :
/ /:/ /\ / /:/ | |:| \ :\ / /:/:\ \ :
/ /:/ /::\ /
/::\ | |:| ___ \ :\ / /://::\ __:
//:/ /:/:\ _/:_ ||:| /
/\ __:\ /
/:/ /:/:\ /_/::::::::
\ :/:/
/:/ \ :/\ //::::\ \ :\ / /:/ \ :/:// \ :~~/
\ ::/ /:/ _::/ ~:\ \ :\ /:/ \ ::/ \ :\ ~~~
_
/ /:/ //:/ \ :\ \ :/:/ \ :\ \ :
/
/:/ _/ _/ \ ::/ \ :\ \ :
_/ _/ _/ _/
I 2025/02/11 10:27:02 runtime.go:87: kernel is booting:
* ver [3.1.20]
* arch [amd64]
* os [Microsoft Windows 11 Pro]
* pid [14528]
* runtime mode [prod]
* working directory [C:\Program Files\SiYuan\resources]
* read only [false]
* container [std]
* database [ver=20220501]
* workspace directory [D:\SiYaun]
I 2025/02/11 10:27:02 conf.go:129: loaded conf [D:\SiYaun\conf\conf.json]
I 2025/02/11 10:27:02 runtime.go:139: use network proxy [system]
I 2025/02/11 10:27:02 serve.go:209: kernel [pid=14528] http server [127.0.0.1:1674] is booting
I 2025/02/11 10:27:02 working.go:513: database [D:\SiYaun\temp\siyuan.db] size [9.7 MB]
I 2025/02/11 10:27:02 working.go:513: database [D:\SiYaun\temp\blocktree.db] size [790.53 kB]
I 2025/02/11 10:27:02 working.go:513: database [D:\SiYaun\temp\history.db] size [90.12 kB]
I 2025/02/11 10:27:02 working.go:513: database [D:\SiYaun\temp\asset_content.db] size [24.58 kB]
I 2025/02/11 10:27:02 conf.go:853: tree/block count [1/491]
I 2025/02/11 10:27:02 working.go:194: kernel booted
I 2025/02/11 10:27:02 box.go:77: auto stat [trees=1, blocks=491, dataSize=4.68 MB, assetsSize=93.39 kB]
I 2025/02/11 10:27:02 disk.go:33: disk usage [total=326.33 GB, used=217.33 GB, free=109.01 GB]
I 2025/02/11 10:27:03 font.go:58: loaded system fonts [116] in [595ms]
I 2025/02/11 10:27:03 fixedport.go:35: fixed port service [127.0.0.1:6806] is running
I 2025/02/11 10:27:04 pandoc.go:146: built-in pandoc [ver=3.5, bin=D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 10:27:04 conf.go:1115: pandoc initialized, set pandoc bin to [D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 10:27:33 updater.go:183: downloading install package [https://release.b3log.org/siyuan/siyuan-3.1.21-win.exe]
I 2025/02/11 10:27:50 updater.go:201: downloaded install package [https://release.b3log.org/siyuan/siyuan-3.1.21-win.exe] to [D:\SiYaun\temp\install\siyuan-3.1.21-win.exe]
I 2025/02/11 10:29:26 working.go:150:
___ ___ ___ ___
/ /\ ___ ___ //\ / /\ //
/ /:/_ / /\ //| \ :\ / /::\ \ :
/ /:/ /\ / /:/ | |:| \ :\ / /:/:\ \ :
/ /:/ /::\ /
/::\ | |:| ___ \ :\ / /://::\ __:
//:/ /:/:\ _/:_ ||:| /
/\ __:\ /
/:/ /:/:\ /_/::::::::
\ :/:/
/:/ \ :/\ //::::\ \ :\ / /:/ \ :/:// \ :~~/
\ ::/ /:/ _::/ ~:\ \ :\ /:/ \ ::/ \ :\ ~~~
_
/ /:/ //:/ \ :\ \ :/:/ \ :\ \ :
/
/:/ _/ _/ \ ::/ \ :\ \ :
_/ _/ _/ _/
I 2025/02/11 10:29:26 runtime.go:87: kernel is booting:
* ver [3.1.21]
* arch [amd64]
* os [Microsoft Windows 11 Pro]
* pid [17012]
* runtime mode [prod]
* working directory [C:\Program Files\SiYuan\resources]
* read only [false]
* container [std]
* database [ver=20220501]
* workspace directory [D:\SiYaun]
I 2025/02/11 10:29:26 conf.go:129: loaded conf [D:\SiYaun\conf\conf.json]
I 2025/02/11 10:29:26 conf.go:288: upgraded from version [3.1.20] to [3.1.21]
I 2025/02/11 10:29:26 conf.go:520: user has disabled [Google Analytics]
I 2025/02/11 10:29:26 runtime.go:139: use network proxy [system]
I 2025/02/11 10:29:26 serve.go:209: kernel [pid=17012] http server [127.0.0.1:1822] is booting
I 2025/02/11 10:29:26 pandoc.go:146: built-in pandoc [ver=3.5, bin=D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 10:29:26 conf.go:1127: pandoc initialized, set pandoc bin to [D:\SiYaun\temp\pandoc\bin\pandoc.exe]
I 2025/02/11 10:29:26 working.go:515: database [D:\SiYaun\temp\siyuan.db] size [9.7 MB]
I 2025/02/11 10:29:26 working.go:515: database [D:\SiYaun\temp\blocktree.db] size [790.53 kB]
I 2025/02/11 10:29:26 working.go:515: database [D:\SiYaun\temp\history.db] size [90.12 kB]
I 2025/02/11 10:29:26 working.go:515: database [D:\SiYaun\temp\asset_content.db] size [24.58 kB]
I 2025/02/11 10:29:26 conf.go:865: tree/block count [1/491]
I 2025/02/11 10:29:26 working.go:196: kernel booted
I 2025/02/11 10:29:26 box.go:77: auto stat [trees=1, blocks=491, dataSize=4.68 MB, assetsSize=93.39 kB]
I 2025/02/11 10:29:26 disk.go:33: disk usage [total=326.33 GB, used=217.49 GB, free=108.85 GB]
I 2025/02/11 10:29:26 font.go:58: loaded system fonts [116] in [86ms]
I 2025/02/11 10:29:27 fixedport.go:35: fixed port service [127.0.0.1:6806] is running
I 2025/02/11 11:55:50 format.go:32: formatting tree [20250211004843-x98ixr7]...
I 2025/02/11 11:55:50 format.go:75: formatted tree [20250211004843-x98ixr7]

More information

No response

Activity

added a commit that references this issue on Feb 18, 2025
added this to the 3.1.23 milestone on Feb 18, 2025
changed the title [-]Right to left Persian language render bug[/-] [+]Improved RTL rendering[/+] on Feb 18, 2025
changed the title [-]Improved RTL rendering[/-] [+]Improve RTL rendering[/+] on Feb 18, 2025
Nishef

Nishef commented on Feb 19, 2025

@Nishef
Author

Hi there,

I've tested the https://github.com/siyuan-note/siyuan/releases/tag/v3.1.23-dev1 version and the issue persist. Only when I choose the RTL rendering from the setting it works fine but the issue is I don't want the english contents render as RTL, I want my selected text change the direction to my desire.

88250

88250 commented on Feb 20, 2025

@88250
Member

@Nishef Sorry, this cannot be done, RTL is a global setting.

added a commit that references this issue on Feb 20, 2025
Vanessa219

Vanessa219 commented on Feb 20, 2025

@Vanessa219
Member

List items and list block RTL will be added later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @88250@Vanessa219@Nishef

      Issue actions

        Improve RTL rendering · Issue #14044 · siyuan-note/siyuan