开发工具 Markdown 发布标准了...

jiyinyiyong · 2014年09月04日 · 最后由 Kastrcn 回复于 2018年09月20日 · 5307 次阅读

官网是 http://standardmarkdown.com/ 手册在 http://jgm.github.io/stmd/spec.html 有个 Demo http://jgm.github.io/stmd/js/

然后 Jeff Atwood 专门发文章介绍了啊。http://blog.codinghorror.com/standard-flavored-markdown/ 大概就说 Markdown 方言太多太乱,于是做了个标准,别人都通不过,只好重新..之类的. 还用 discourse 论坛的 Markdown 做例子 http://talk.standardmarkdown.com/

忍不住要吐槽,行尾两个空格换行这个事情写在标准里边,真是没法忍. 当然不管怎么说标准话了都是好事情。


感觉剧情出现了逆转,我在那边论坛吐槽时候有人告诉我规范里是要求对 soft breaks 设置选项的:

http://jgm.github.io/stmd/spec.html#soft-line-breaks

A renderer may also provide an option to render soft line breaks as hard line breaks.

这么一来也算能接受了。

行尾两个空格实现的换行对应的是 <br />,我觉得非常合理。因为很显然你不能用单一字符来代表 <br />,而重复的多个字符还有比两个空格更简单,更少干扰的吗?

从写作的角度考虑,<br /> 用来换行是特殊情况,大部分时候我们需要的不是换行(属于同一段落的东西就一直写下去好了,具体的呈现——比如说一段文字每一行不应该超过 80 个字符——则应该由 CSS 来控制)。真正需要作者敲下回车的时候,往往是要分段的时候,也就是需要用 <p> 的时候。这一点 Markdown 已经实现了的,考虑到在纯文本编辑器里并没有段间距这么一种设置,所以就用两次回车来区分段落,解析的时候会自动转换为 <p> 标签。

顺便一提,我看过你写的很多东西,你自己的习惯是写一句断一行写一句断一行,所以 Markdown 的 处理方式显然是你不能忍的。可是你有没有想过这其实是你自己的问题?我们从小学习写作的时候都不是你这种写法,无论古今中外不外如是。

用了很久 markdown 和 org-mode 后:WYSIWYG 万岁!

#1 楼 @nightire 我书写的方式一个问题,但我不是毫无考虑来标新立异.. 先不讨论这个问题。

我第一次接触 Markdown 是在 Grudigger 网站上,某次改版,突然就出现了回车被强制转换,后来访问 Hacker News 一样,也被这个问题困扰很久.. 就跟命令行下面输入密码的事情一样,可以说成是为了什么考虑,可是带来的困惑比好处多。

尤其在中文的字符密集程度下面,大段不换行的文本对可读性的影响更大, 我想中文社区支持 Markdown 的这么多论坛,大部分采用 GFM, 不是没有考虑,在聊天的场景当中使用不直观的换行确实是要造成困惑的。

这份 Spec 里做得好了点,给了个比空格来说友好点的方案:

For a more visible alternative, a backslash before the newline may be used instead of two spaces:

baz
<p>foo<br />
baz</p>

支持一个回车 br,两个回车 p

PS:写诗词歌赋不是一句一行的么

很多编辑器、IDE 都有自动去除行尾空格功能,并且这个功能也被用的非常普遍,用这些工具来编辑按照这个 Spec 的 Markdown,最后的结果肯定是个排版的噩梦(“我这里明明要换行的,怎么连起来了?咦我刚输的空格哪去了?”)。最后的结果肯定是需要对 MD 格式做特殊处理,对一个人来说不麻烦,但对一大群人来说,这就是个比较严重的问题。

#4 楼 @ywjno 诗歌不要紧,但是写代码写注释确实是一句一行

#5 楼 @ugoa 这个用新的语法算是能解決了,想想从前 Vim 里边还去专门高亮结尾的空格,噩梦啊

发现那边论坛有人告诉我规范里写了必须提供控制 line breaks 换行的选项,这么一来好多了。

http://talk.standardmarkdown.com/t/on-line-breaks-which-i-think-is-inconvenient/280/3?u=jiyinyiyong

A renderer may also provide an option to render soft line breaks as hard line breaks.

#5 楼 @ugoa 这个应该不是问题的,像 Sublime 是有支持特定语法的配置的,你可以针对 Markdown 格式设置不自动去除行尾空格,可以看我的这篇博文: http://martin91.github.io/blog/2014/08/03/sublime-text-2ji-yu-yu-fa-de-pei-zhi-wen-jian/

#1 楼 @nightire 同意。我之前自己就修改过这个。单回车插入 <br>,双回车插入 <p>

我记得那个博客里有个说法是有 20 种 Markdown 实现,然后他们一测试,编译出来的 HTML 有十五种.. 然后现在他们搞的估计就是第 21 种跟第 16 种了..

#12 楼 @jiyinyiyong Jeff Atwood 最近两周才联络 John Gruber,没有回复的情况下自称 Standard,激怒了 John Gruber。

John Gruber 发布 Markdown 之后就不闻不问的,最新版还是“Markdown 1.0.1 (18 KB) — 17 Dec 2004”。然后任由方言发展,其实很多人搞不清楚哪个是标准,编辑器要支持什么特性没个准。

唉,希望这事能有个结论,把 Markdown 标准化。

#13 楼 @Rei 博客还提到个人叫 John MacFarlane, 两个 John 都是 Markdown 的作者吗? 居然因为这种事情生气,看来我是真心站在 John Gruber 对立阵营的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号