LincZero / obsidian-any-block

A Obsidian Plugin. You can flexibility to create a 'Block' by some means. It also provides some useful features, like `list to table`.
GNU Affero General Public License v3.0
125 stars 7 forks source link

[BUG] 分隔符`|`后边没空白符时无法识别为列分隔符 #19

Open Linzeal opened 1 year ago

Linzeal commented 1 year ago

如下面例子中行2、行3的|后边没空白符,都会渲染为单行单列的表格,而不是期待的单行两列的表格。

测试环境:

[2lt]

image

LincZero commented 1 year ago

一方面是故意的,与其说是分割符是 |,不如说是类似编程中 functionA(arg1, arg2) 这种在逗号后面加个空格的规范,只不过我将这个规范给强制生效了。

另一方面,原生表格主要依赖 \| 来在cell中显示 | 字符,但这个逻辑我没做。

LincZero commented 1 year ago

先不讨论,等 replace 处理器出来后(可自定义分割符)、以及加上 \| 的判断逻辑后,再来看这个issue

Linzeal commented 1 year ago

之所以我会标这个ISSUE是[BUG],而不是【建议】,就如你说的那样,编程中有 functionA(arg1, arg2) 这种在逗号后面加个空格的规范,不单单逗号,包括小括号、花括号,这些规范都只是编写建议而已,为的只是方便人类阅读,而不是强制要求前后必须有或必须无空格符。对编译器来说,这些逗号、括号前后加不加空格都应当正确,这是容错机制。

因此,从容错角度考虑,不应强制分隔符前后的空格符一定要有,或一定要没有。用户千千万,有的不喜欢加空格,有的喜加空格,有的喜欢加一个空格,有的喜欢加几个空格以对齐内容,更多的用户是文科生,对代码一点不懂,对空格符一无所知没有相关概念,AB渲染没有实现预期的效果,他们完全不知道问题在哪。

这就如之前我强烈建议选择器与后面列表之间是否有空白行的讨论一样,没有空白行要能正确转化渲染,有空白行也要能正确转化渲染,都是为了增强容错机制。