Markdown中文换行引入多余空格

Markdown语言中可以肆意的换行而不需要介意成文后的段落问题,不论书写上还是阅读上都能做到体验的提升,但由于原生英文环境下,每个单词间原本就是需要一个空格的存在,而CJK也就是中文日语韩语的文档里,方块字间是不需要空格的,此时的换行符引入的空格就会出现问题。

原本markdown里,插入一个单独的换行符并不会导致内容换行,如

1
2
line 1
line 2

会转化成

1
2
<p>line 1 
line 2 </p>

体现出来就是

1
line 1 line 2

而到了中文这里,就发生了变化

1
2
举头望明月
低头思故乡

则被转化成为了

1
2
<p>举头望明月
低头思故乡</p>

最后的显示结果为举头望明月 低头思故乡,即换行符被「显示为」空格。显然这个自动加入的空格对于英文内容是没有问题的,但在中文里,原本可以酣畅淋漓的书写体验则被硬生生打断,因为这是 HTML 的一个历史遗留问题,至少目前在网上搜索的结果来看,不论是HTML还是markdown的渲染引擎,它们短期内都不会解决该问题(因为英文是没问题呀—),所以只能由中文的作者们要么一句话写到底…不能断行的时候就铁定不能断行,要么就正好卡在标点符号处断行,这样不是说没有问题,只是多余的这个半角空格放在全角中文符号后虽说还是很碍眼,但也不至于在句中那么的扎眼了。

而真正想解决它,现在看来,只能在由markdown生成html后的 after-render 这个过程中入手了。

这个问题我通过重写npm里的一个包解决了,但时间有点久了,后面找时间把步骤再写一写吧

赞赏是最好的支持与鼓励!