Markdown 是否在降价输出中保留单行结尾?

Markdown 是否在降价输出中保留单行结尾?,markdown,line-endings,Markdown,Line Endings,我在一个在线标记编辑器中编辑标记文件,从用Notepad++打开的文件中复制它们,然后将它们复制回Notepad++以在完成后保存。问题是:文本文件中的每一行尾都会在标记编辑器的合成输出中创建一个行尾。我理解,应该忽略标记中的单行结尾(除了代码块之类的特殊情况) 这是一个问题,因为我的组织要求文本文件(包括标记文件)的最大行长为80个字符。例如,当文件提交到Git时,我们有一些过滤器可以扫描这些内容,并将超长行标记为错误 如果markdown编写器不忽略行尾,我必须将文本的每一段都写成一行,这样

我在一个在线标记编辑器中编辑标记文件,从用Notepad++打开的文件中复制它们,然后将它们复制回Notepad++以在完成后保存。问题是:文本文件中的每一行尾都会在标记编辑器的合成输出中创建一个行尾。我理解,应该忽略标记中的单行结尾(除了代码块之类的特殊情况)

这是一个问题,因为我的组织要求文本文件(包括标记文件)的最大行长为80个字符。例如,当文件提交到Git时,我们有一些过滤器可以扫描这些内容,并将超长行标记为错误

如果markdown编写器不忽略行尾,我必须将文本的每一段都写成一行,这样就不可能遵守80个字符的长度限制

到现在为止,你可能已经沸腾了,因为我还没有说我正在使用哪个在线降价编辑器。我没有说,因为这似乎无关紧要。我试过三种完全不同的,它们都是这样做的。我最后用的是


我认为这可能是因为Notepad++将每一行尾存储为,而标记编辑器将其解释为两个行尾。我尝试将Notepad++设置为使用Linux line ends,但没有任何区别。

这完全取决于您使用的实现

保留行尾(或将软换行符视为硬换行符)是GitHub首次推广的一种附加功能。此后,这种风格的标记在基于web的标记编辑器中变得非常常见。本机文本编辑器有用于硬换行的工具,但这些工具通常不存在于web表单中。大多数用户会在web表单中键入长而连续的行。如果用户添加了一个软换行符,那么可以合理地假设用户打算在那里存在换行符。因此,在您的浏览器中,您会发现大多数实现在默认情况下都包含从软到硬的换行扩展

过去,GitHub的帮助页面中记录了GitHub风格的标记,并且清楚地记录了保留行尾的事实。然而,由于他们切换到扩展的Commonmark实现,这一点就不再那么清楚了。在他们的规范中,他们没有列出换行符的扩展,这表明他们遵循典型的Commonmark行为。然而,Commonmark规范在以下方面非常不明确:

一致性解析器可以将HTML中的软换行符呈现为 换行符或空格

渲染器还可以提供一个选项,以根据需要渲染软断线 强硬路线中断

因此,如果您使用的是基于Commonmark的实现,那么了解您使用的实现是非常相关的。有些可能使用不同的默认值,有些可能提供不同的更改默认值的方法

但是,如果您使用的实现基于daringfireball.com上的原始规则,那么您可能会确信硬线中断始终是硬线中断,而软线中断被忽略


但是,如果您使用的是来自每个阵营的实现,那么试图让这两个阵营协同工作可能会非常混乱和令人沮丧。

谢谢,这是非常清楚和有用的。但不是我希望听到的。听起来我会更幸运地使用本地编辑器/格式化程序。