通用Markdown语法

之前我提过Markdown语法自由度相当高,每一个实现都有些区别。之后我在网上进行了搜索,发现有一个所谓的官方标准,并且小众也转载了其中文翻译

原以为就这么结束了,但在一段时间的使用过程中,包括本论坛,发现这份所谓的标准在现实中并不适用。关于这个问题,最终在Yu Writer的文档里的一个链接找到了答案(PS:scavin在主站贴的Yu Writer文档里的功能说明,实际是失准的,之后会出专文)。

根据链接给出网站的介绍,了解到,原来前文提到的官方标准实际只是最初创作Markdown语言的作者写的一份语法介绍,并不是真正的规格文档。即没有给出详细的语法标准,也没有指定语法错误,或给出检测错误的测试工具(即怎么写都是对的)。之后大家只能参考作者用Perl语言的实现,在其他环境和语言下给出自己的实现。但是原先的实现也很粗糙,并且在推出没多久以后就不再维护了,之后的情况几乎和AHK一样,在原作者放弃的情况下就失控了。

一晃10多年过去了,一群Markdown的粉丝站出来说我们要定义一份 明确的,并且能 较好兼容 现有各种实现的Markdown语法标准。他们为这个语法标准取了一个名字叫CommonMark。目前经过了几年的发展,已经接近了最终版本。目前最新的0.28版语法定义已经完整,并且经过了1年多的实际应用与反馈调整,可以说已经相当完善和实用了。

他们的目标是在今年内完成最终版本。大家可以点击这个链接去阅读学习最新的语法规范(目前没有中文,也许等1.0最终版出来会翻译一下)。同时他们还给出了一个60秒快速上手教程,实际就是一张语法速查表(Cheatsheet)。同时还有一个10分钟交互教程

最后希望这篇文章能帮到想要学习Markdown的各位。也能为一些已经用了一段时间Markdown,但有一些困惑的人一个释疑和提升。

2赞

加空格,不加空格,闭合不闭合之类的规则确实非常的乱。

不过这里面也有各种解释器作者的锅,许多细节考虑的不到位,也是很难受的,比如说这个论坛现在使用的解释器,可以算是有很多 Bug。

然后也因为这种语法太简单了,很多人有自己需求的时候,就会直接在上面进行扩展。大神做了扩展之后,他的应用影响力又比较大,然后可能需求的人也比较多,于是渐渐的又生成了另外的标准。

所以我觉得还是应该把它当作一种新生的尚不完善的东西去对待吧,看着他成长,我们都觉得她很美好,所以也希望他的未来很美好。

我觉得 Markdown 的编辑器们走偏了,或者说它们只是在挂羊头卖狗肉。
实际上标记语言一大堆,天天见的网页(html)就是其中之一,
Markdown 作为后起之辈得以大火,并不是因为比前辈更强大,而是更 简易
它本就是一种轻量级标记语言,目标是用轻便的方式满足简单的文本排版需求。
可各路编辑器非要用它来绘图制表 ……

纯粹的Markdown 即使没有即时预览或者相应编辑软件,一样的易写易读,
不懂 Markdown 的人直接看原文也能根据上下文理解各标记的大体意义。
我认为这种 基于原文而不是解释器的简易标记 才是 Markdown 的核心。
然而现在大多编辑器实现的是一种 无法脱离 编辑器/查看器高级Markdown

有更高的需求,何不使用更高级的标记语言,非要扯着 Markdown 的旗子不放……

CommonMark要实现的就是一个通用的 最小实现,当然大神在这个基础上扩展也是没问题的,但是基本的语法是明确,且兼容的。而且这个语言也都13年以上的历史了,算不上新了。甚至按互联网标准来说,都是老人了。

虽然比较认同这种说法,但是还是忍不住辩驳一句:标记语言的直观也是相对的,最简单的加粗语法,如果设计文字较多,或者在同一段内标记次数过度,其实并不直观。

如果可以简单的语法加入基础标个支持我还是很欢迎的,就算是写代码说明文档吧,偶尔十分想用一个简单的小表格来表达意思的时候也是有的。

但是简单,这个简单怎么定义就很困难了,说实话,也是因为用的少,现在我也不知道怎么在 MD 里写表格。

尴尬的情况产生于某个场景下,MD 可以满足 98% 的需求,但是另外 2% 的需求有比较的刚性。

还没成熟,还是个孩子。现在连最基础语法都没法彻底的统一,我在这个论坛写东西有些语法也要反复尝试才行的。

写表格就是画一个表格,还是挺直观的

tab1 | tab2 | tab3
----  |----  |----
我 |是 |谁 

看来这个论坛是不支持的,而且已经支持的也有一些bug,凑活着用吧

语法是挺直观的,实际用起来就蛋疼了
因为表格内容不总是长短一致的
手动对齐得按一大堆空格,如果是边录入边对齐的话,时不时就得回头调整前面的表格
不对齐的话,原文惨不忍睹,回头修改表格时还得数竖线


顺手逼死不用严格等宽字体的强迫症:joy:
| 1122334455 |
| 一二三四五 |
| aabbccddee |

处女座千万别用不支持等宽字体的Markdown编辑器

某些编辑器可以设置一两个 Tab 就可以对齐,也有插件进行对齐……

但是我懒,懒到网页里的表格我也使用 DW 写

其实编辑器应该带图形化表格插入工具,通过热键的形式实现WYSIWYG的表格输入体验。那么整个过程不会被打断,手依旧在键盘上,而且表格输入效率也大大增加了,最好还能有某些栏位的数字统计功能。

mk用过一段时间,发现有2个大问题,注定了mk语法无法大范围普及.

一个是语法规范标准不一.
另一个是渲染实现的效果不一.

通俗点说,就是写法不一样,显示的不一样.

对啊,所以重点就是CommonMark给出了解决方案