大多数情况下,Markdown文件与源代码一样处理:它们在版本控制系统中,参与拉取请求和/或审核,并且格式良好。就像在源代码中一样,我经常看到在特定长度处插入换行符 - 就像代码格式化程序所做的那样。
许多编辑器根据当前窗口大小(即自动换行)动态执行此操作。此外,Markdown主要用于生成HTML页面、PDF文档或其他格式。手动插入的换行符经常导致这些情况下的混乱文本呈现。
将Markdown包裹在特定的行长度上是好还是坏?这个话题似乎是有争议的,甚至当前的CommonMark规范(v0.29)也有点摇摆不定:
正文中,如果一行文字没有在代码块或HTML标签内,并且没有被两个或更多空格或反斜杠{backslash}所跟随,则会将该行解析为软换行(softbreak)。(在HTML中,软换行可以被渲染为换行符或空格。在浏览器中,结果是相同的。在此示例中,将使用换行符。)[…]
符合规范的解析器可以将软换行在HTML中呈现为换行符或空格。
渲染器还可以提供一个选项,将软换行呈现为硬换行。
然而,John Gruber 在2004年曾经说过:
“一行或多行文本”的规则意味着Markdown支持“硬换行”文本段落。这与大多数其他文本到HTML格式化程序(包括Movable Type的“Convert Line Breaks”选项)有很大不同,后者会将段落中的每个换行符转换为
<br /> 标签。
当您确实想要使用Markdown插入<br />
换行符时,您需要在一行的末尾加上两个或更多空格,然后按回车键。
是的,这需要稍微费点功夫才能创建一个 <br /> ,但简单的“每个换行都是<br />
”规则对于Markdown无法奏效。 Markdown的电子邮件样式的块引用和多段落列表项目在使用硬换行格式化时效果最佳,并且看起来更好。
pandoc --self-contained --from markdown_github
)。不过可能有一个标志可以解决这个问题。 - beatngu13--wrap=auto|none|preserve
。但是使用默认设置,我不再获得上述Gist的不同输出:pandoc --self-contained --from gfm --to html5 --output test.html https://gist.githubusercontent.com/beatngu13/754ceec042709e23d7945d3a953c2461/raw/e0c1e7465d68ba4f407a68eb3dabdeb237e255a4/markdown-and-line-wrapping.md
。 - beatngu13