markdown如何调整行距_Markdown书写建议

这是专题的一部分,详见:Markdown知识贴

虽然目前编辑器对Markdown的支持存在很大差异,方言现象严重,但是对于Markdown的基础语法的支持都是相似的。而且针对Markdown基础语法产生的差异大部分是在区块相接、嵌套、软输入和Lazy输入时产生的,所以养成一个良好的书写习惯可以规避掉大部分兼容性问题。这里会提供一些Markdown书写的建议,遵循这些建议会让Markdown更加易读,更少的语法歧义,也就有更高的兼容性。

书写高兼容性的Markdown文档应该时遵循以下两个原则:

清晰原则。清晰是Markdown文档“易读性”的体现,如果一份Markdown文档人读起来都可能有语法歧义,那么对于机器来说也很容易产生兼容性问题。清晰原则具体表现为区块间有明确的区分、行内元素有明确的范围、避免使用歧义语法、避免使用Lazy输入等方面。

简单原则。Markdown本身只是轻量级的标记语言,使用过度复杂的功能、画蛇添足式的输入容易产生兼容性问题。简单原则具体表现为避免使用不被公认的偏僻功能、避免不必要的软输入、尽量少用嵌套、范围行内元素避免嵌套交叉等方面。一言以蔽之—— no zuo no Die。

范围元素的书写建议

这里所说的范围元素指采用行内元素中标识包裹的语法元素,包括强调、重强调、删除线、行内代码和下划线HTML标签。

范围元素不能超出所在的区块,最好不超出所在行,表格内的不能超出单元格。

虽然目前部分编辑器很智能,允许跨行甚至跨区块使用,但是并不提倡这么使用,容易导致意想不到的结果。既然都是行内元素,那么就最好让它在一行内结束。

不能跨区块好理解,为什么不提倡跨行呢?一般的跨行使用是没有问题的,但是如果跨行使用行内代码,有的编辑器会变成同一行。另外跨行扩大了范围,再添加范围元素时容易出现范围元素的嵌套或交叉。最重要的原因的是当我们实际书写时,很多时候我们是不能很好的区分应该到底使用多个文本行还是多个段落,当我们需要将文本行间添加空行转化为段落时,跨行的范围元素就会变成跨区块而失效,所以不推荐跨行使用范围元素。

范围元素尽量避免使用交叉,少用嵌套。

交叉不应该使用,因为太容易出现错误,而且目前很多编辑器(包括为知与Editor.md插件)支持不好,更重要的原因是交叉违Markdown的易读特性,不符合清晰原则,而且其实完全没有必要,我实在找不到使用交叉的原因。

尽量少用嵌套也是因为可以让文档更清晰更简单,但是实际书写时,使用嵌套的机会也是很多的。如果使用嵌套,特别多个范围元素作用于同一段文本时,需要注意让元素标识两侧对称。

如重强调与删除线同时使用。

推荐的对称写法是:**~~1234567890~~**。

而这种非对称写法**~~1234567890**~~虽然很多编辑器也能识别,但是不推荐使用(实际上Editor.md插件就不能识别后者)。

除了行内代码之外的范围元素,书写时标识内侧应该紧贴文字,避免紧贴空格或特殊符号。

部分编辑器和语法是不允许范围元素的标识紧贴空格或文字的,而且紧贴文字之后易读性更高,也更符合Markdown的理念。所以也建议如此使用。

紧贴文字,内侧避免紧贴符号:123&#

你可能感兴趣的:(markdown如何调整行距)