示例:* 1932.
这些出奇地有效:* 1917-32.
- 1917-32.
我正在使用最新的 3.3.0.beta3-dev,没有任何插件。
使用的标记
* 1932. test smth
* 1933. again now then
是的,我看到了问题,但这似乎不是有效的 Markdown 标记。我用另一个 Markdown 编辑器测试了上面的内容,看到了类似的问题:
你可以通过省略数字后面的点来避免这个问题。例如:
或者通过排除开头的 *:
1932. testing
1933. second-line test
但这只对连续的年份有效
2008. first
2014. second
2015. third
也许使用 HTML 而不是 Markdown 也可以作为一种替代方法:
<ul>
<li> 1997. first</li>
<li> 2000. second</li>
<li> 2015. third</li>
</ul>
这也是 Markdown 的一个限制。测试了 Github 和其他几个 Markdown 编辑器,它们都默认使用顺序列表。
使用 CSS 删除此边距可将其标准化。
li>ul, li>ol, .cooked li>ul, .cooked li>ol, .d-editor-preview li>ul, .d-editor-preview li>ol {
margin: 0; /* Remove this */
}
12983298. one
2. test
是的,我以前见过这个,我们在 CSS 中做了一些花哨的操作,这在异常情况下会在视觉上破坏它。
我想原因可能是它可能被滥用,也许 @awesomerobot 还记得。
嗯,又一个测试:
- 12983298. 一个
- 2. 测试
* 12983298. 一个
* 2. 测试
显然,一个数字后跟一个句点,即使它不是行上的第一个标记,也会被视为数字列表。
这是因为在 markdown 中,当数字后面跟一个 . 时,它会被假定为一个有序列表。
所以,使用像 * 1932. 这样的格式会生成 HTML:
<ul>
<li>
<ol start="1932">
<li><!-- item content --></li>
</ol>
</li>
<li>
<ol start="1933">
<li><!-- item content --></li>
</ol>
</li>
</ul>
技术上是有效的,但很奇怪且并非预期。
这是因为当你引入一个 - 时,它不再是一个顺序数字,所以它不是一个有序列表,并且 . 会被忽略。
为了避免这种情况,最好使用:
* 1932 (如果数字不连续,则为无序列表)
或
1932. (如果数字是连续的,则为有序列表)
如果 . 是必需的,并且它不是一个有序列表,你可以用 \ 来转义 .,像这样:
* 1932\.
这是一个单独的问题,并且使用默认的浏览器 CSS 也会出现这种情况:
HTML 列表中的项目标记是一个伪元素,它在考虑列表的 padding/margin 之前被放置,因此它总是出现在内容的“框”之外。即使移除列表的 margin/padding,标记也会溢出。
例如,当从列表中移除 margin/padding 并为父容器设置 overflow: hidden 时,你看不到列表标记:
所以,由于应用于列表左侧的 padding 是一个静态值,并且列表标记的放置方式落在了 padding 范围内,所以在某个时候数字会溢出。
我们的 CSS 使列表在水平方向上比默认的更紧凑,并且我们同时有左边距和 padding… 但结果基本相同:
有一些 CSS… list-style-position: inside 可以覆盖标记的定位,这会将标记放在内容框内。但这会意味着你将不再获得漂亮的数字对齐:
list-style-position: outside; (默认):

list-style-position: inside; (列表标记占据内容空间)

所以,为了正确支持任何长度的有序列表并避免影响内容对齐,我们需要做一些事情,比如……使用 JS 来检测标记中的数字位数(从列表中的第一个数字开始,然后计算所有列表项以确定长度)并应用足够的 padding 来容纳最大的数字。
感谢您的报告。我们已提供了一个我们认为会有帮助的变通方法。目前,我们无法修复所有边缘情况,因此暂时关闭此报告。