Markdown反向排序清单?

时间:2015-05-07 16:00:19

标签: markdown r-markdown

有没有办法在普通Markdown中显示反向排序列表?

我读到了HTML"反向"选项(How to display a reverse-ordered list in HTML?http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ol_reversed)但如果存在则支持Markdown解决方案。

澄清一下,有没有办法写出类似的东西:

0. Coffee 
0. Tea 
0. Milk 

并将其呈现为

3咖啡

2茶

1牛奶

而不是常规的

1咖啡

2茶

3牛奶

2 个答案:

答案 0 :(得分:5)

我不知道一个简单的Markdown解决方案,但对于那些愿意考虑相当常见的降价扩展的人,你可以使用kramdown实现这一点。在Kramdown中,您可以向任何HTML块添加任何属性。所以,你需要做的就是:

0. first item
0. second item
0. another item
{: reversed="reversed"}

这会将reversed属性添加到您的<ol>块中,并生成所需的效果。

请参阅the kramdown documentation了解语法。

答案 1 :(得分:4)

documentation个州(部分):

  

请务必注意,用于标记列表的实际数字对Markdown产生的HTML输出没有影响。 ...... [为清晰和简洁而排除的例子] ......

     

关键是,如果您愿意,可以在订购的Markdown列表中使用序号,以便源中的数字与您发布的HTML中的数字相匹配。但如果你想变懒,你就不必这么做。

     

但是,如果使用延迟列表编号,则仍应使用数字1启动列表。在将来的某个时刻,Markdown可能支持以任意数字开始排序列表。

事实上,一些实现已经开始支持start属性(one example);然而,它很少见。即便如此,仅引用第一项的编号。给其余项目的数字仍然被忽略。

我不知道任何支持reverse属性的实现。此外,解析器将如何检测它?所有数字都需要由解析器检查吗?或者只是前两个?

由于HTML并没有真正提供手动定义每个列表项的数量的方法,因此Markdown解析器没有理由关心为每个单独的项分配哪些数字。因此大多数(全部?)都没有。

当然,Markdown支持raw HTML。正如语法规则所述:

  

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身。

因此,您可以在Markdown文档中以原始HTML手动定义列表:

A paragraph of Markdown text

<ol reversed>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

More Markdown text.

以这种方式解释了为什么这是正确的方法背后的哲学:

  

Markdown不是HTML的替代品,甚至不接近它。它的语法非常小,仅对应于HTML标签的一小部分。我们的想法不是创建一种语法,以便更容易插入HTML标记。在我看来,HTML标签已经很容易插入。