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

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

官网是 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 对立阵营的.

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