如何通过Markdown使用两种不同类别的项目?

时间:2015-11-30 12:48:00

标签: latex markdown pandoc

使用enumitem,我定义了具有不同选项的第二个项目列表,例如不同的标签:

\usepackage{enumitem}
\newlist{dashize}{itemize}{1}
\setlist[dashize]{label=--}

现在我想使用来转换来源,但我希望商品化使用itemizedashize,具体取决于商品化符号用于降价,即

* this list
* should use
* the usual itemization

- while this one
- should use
- dashize

如何才能最好地实现这一目标? Filters似乎行为太迟了,因为他们对json采取行动 - 转换后的输入已经放弃了子弹类型的区别......

1 个答案:

答案 0 :(得分:1)

简短的回答是,你不能,至少不使用任何现有的Markdown解析器。

Markdown规则state

  

无序列表使用星号,加号和连字符 - 可互换 - 作为列表标记:

就是这样,除了一些例子(然后规则完全集中在有序列表上)。问题是," interchangably"是什么意思?查看提供的示例会给人一种印象,即每种类型的列表标记都会描述一个新列表。但是,实际上,参考实现实际上允许一个列表中的多个不同列表标记。例如,以下是单个列表:

*   Red
-   Green
+   Blue

重点是Markdown解析器不区分不同的标记。因此,"可互换的"字面意思是你可以以任何方式混合和匹配列表标记,它对解析器的行为没有影响。

实际上,解析列表的方式有很多subtleties,这会为用户带来问题。也就是说,大多数实现都遵循参考实现'这个特定问题的行为(参见Babelmark的例子)。由于解析器不关心使用哪个列表标记,因此解析器不会保留有关使用哪个列表标记的任何信息。我怀疑你会找到任何Markdown解析器来提供你想要的东西。

简单地说,列表标记在各方面都可以互换,并没有什么特别之处。它们仅仅作为对文档作者的偏好而存在,并且具有额外的好处,即如果您复制其他人的列表(将项目添加到您自己的列表中),则无需通过并更改所有列表标记以匹配