修正Excalidraw 中文中有空格時(shí)wrap異常問題
背景
Excalidraw中可以給文字加個(gè)容器以限制文字的長度,到容器邊緣處進(jìn)行wrap 換行。
對于英文表現(xiàn)正常,但對于含有空格中文經(jīng)常在空格處不合理地進(jìn)行wrap,很影響觀感(下圖左圖)。
對比
這里“使”和“用”之間加了個(gè)空格,就會(huì)在空格處進(jìn)行wrap。正常使用過程中空格更多,這種現(xiàn)象更嚴(yán)重。

原因&修正
Excalidraw分詞時(shí)沒有考慮中文情況,其針對英文單詞,在空格處進(jìn)行拆分,可是對于中文,就相當(dāng)于一句話作為一個(gè)詞。

如上面對比的例子,會(huì)分詞為“Obsidian是一個(gè)使”、“?用Markdown語法的閉源筆記軟件?!?/span>”
當(dāng)一行放不下多個(gè)詞時(shí),會(huì)進(jìn)行換行,因此就出現(xiàn)了上面例子中左圖的效果。
更應(yīng)該的分詞方法應(yīng)該是每個(gè)漢字作為一個(gè)詞,因此可以這樣修正,比如一個(gè)樸素的方法
????然后需要再修改下使用此函數(shù)進(jìn)行換行的地方的邏輯。
也可以用一種簡單的,不過對于英文換行有點(diǎn)瑕疵的方法。直接`return words`,這樣整行都作為一個(gè)整體,會(huì)計(jì)算在哪一個(gè)字符處進(jìn)行換行。不過對于英文單詞的wrap來說就會(huì)有瑕疵。
標(biāo)簽: