关于Markdown的手动断行(hard-wrap)

2013-10-19 19:56:51 +08:00
 kdlijian
Markdown规定,一个换行(hard-wrap,在编辑器里按下Enter)不会引入<br>。举例来说:

这是第一行[Enter]
这是第二行[Enter]
这是第三行。

生成HTML会变成:(A)

这是第一行这是第二行这是第三行。

如果要想引入<br>就要在断行处按两次以上[Space]再按一个[Enter]:

这是第一行[Space][Space][Enter]
这是第二行[Space][Space][Enter]
这是第三行。

生成HTML会变成:(B)

这是第一行
这是第二行
这是第三行。

这我可以理解,也觉得可以接受。我也知道Github Flavored Markdown改进了这个做法,每一个换行(hard-wrap)都会引进一个<br>,举例:

这是第一行[Enter]
这是第二行[Enter]
这是第三行。

生成HTML会变成:(C)

这是第一行
这是第二行
这是第三行。

我觉得这是个进步。不过我的问题是:

1. 传到GitHub仓库的markdown文件查看时会被自动转为HTML,但我觉得转换引擎不像是GitHub Flavored Markdown, 因为我发现hard-wrap并没有引入<br>. 那么GitHub这里使用的引擎是rdiscount吗?GFM在哪里使用?

2. 我用Python的markdown或者Ruby的rdiscount以及Github默认引擎解析markdown文件,hard-wrap的确没有引入<br>, 可是也不简单连接,也就是说实际上得不到上边(A)的结果,而是在连接出多出一个半角空白符,如下:(D)

这是第一行 这是第二行 这是第三行。 /*注意这里中间的空白符*/

我用Linux下的Firefox和Chrome以及elinks查看都是这样。我的编辑器是VIM。不知你们是否有这个情况?
6034 次点击
所在节点    问与答
9 条回复
kdlijian
2013-10-19 20:04:39 +08:00
解决一个,GFM用于GitHub的message, issues and comments.
chloerei
2013-10-19 20:07:05 +08:00
简单和兼容的方法是要换行的时候手打 <br> 行了。
kdlijian
2013-10-19 20:13:08 +08:00
@chloerei 恩。我纠结的不是怎么换行,实际上段内我很少换行,一般一行一个段落。让我难受的是hard-wrap连接出为什么会凭空多出一个半角占位符?

p.s. 我还搜到了你对Markdown的吐槽:http://blog.chloerei.com/articles/4-why-I-dont-choose-markdown
chloerei
2013-10-19 20:20:20 +08:00
@kdlijian 我现在又用回 Markdown 了,小问题妥协一下,总体还是比其他方案好。

Markdown 的

line
line

用 redcarpet(Github 用那个)会处理成

<p>line
line</p>

多出的空格就是 HTML 代码两行之间的空白。
kdlijian
2013-10-19 20:24:21 +08:00
@chloerei 你清晰地解答了我的问题。我还真不知道“HTML代码两行之间的空白”,它能被去掉吗?

p.s. 你的新博客很赞。
chloerei
2013-10-19 20:31:39 +08:00
@kdlijian 如果换行就一定有吧,要去掉的话不换行就行啦
kfll
2013-10-19 22:34:25 +08:00
说点题外话... Markdown 里面除 <br> 外是有额外的 hard wrap 机制的:

如果一行有 >= 2 个的 trailing whitespace 的话,会视作 <br /> 的

可以看官方文档

http://daringfireball.net/projects/markdown/syntax#p
kfll
2013-10-19 23:03:33 +08:00
@kfll 请无视我..没仔细看帖子
imcj
2013-10-19 23:05:19 +08:00
习惯80个字符以后换行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/86134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX