欢迎光临散文网 会员登陆 & 注册

修正Excalidraw 中文中有空格时wrap异常问题

2023-10-23 13:08 作者:一鸣惊人_001  | 我要投稿

背景

Excalidraw中可以给文字加个容器以限制文字的长度,到容器边缘处进行wrap 换行。

对于英文表现正常,但对于含有空格中文经常在空格处不合理地进行wrap,很影响观感(下图左图)。

对比

这里“使”和“用”之间加了个空格,就会在空格处进行wrap。正常使用过程中空格更多,这种现象更严重。

修正前后wrap效果对比

原因&修正

Excalidraw分词时没有考虑中文情况,其针对英文单词,在空格处进行拆分,可是对于中文,就相当于一句话作为一个词。

parseToken函数

如上面对比的例子,会分词为“Obsidian是一个使”、“ 用Markdown语法的闭源笔记软件。……
当一行放不下多个词时,会进行换行,因此就出现了上面例子中左图的效果。

  • 更应该的分词方法应该是每个汉字作为一个词,因此可以这样修正,比如一个朴素的方法

    然后需要再修改下使用此函数进行换行的地方的逻辑。

  • 也可以用一种简单的,不过对于英文换行有点瑕疵的方法。直接`return words`,这样整行都作为一个整体,会计算在哪一个字符处进行换行。不过对于英文单词的wrap来说就会有瑕疵。




修正Excalidraw 中文中有空格时wrap异常问题的评论 (共 条)

分享到微博请遵守国家法律