Markdown / Rdiscount中的编号标题是否可行?

时间:2013-11-15 11:09:24

标签: markdown rdiscount

我正在尝试使用类似以下内容的section / subsection标题生成html:

  
      
  1. 我的顶级主题
      1.1我的第一个副主题
      1.2另一个副主题
      1.2.1子 - 副主题
  2.   
  3. 另一个顶级主题
  4.   

是否有任何Markdown能够生成这些编号的章节标题?

提前致谢。

5 个答案:

答案 0 :(得分:46)

是的,请尝试Pandoc。这对我有用:

pandoc --number-sections < test.md > out.html

Source

用于生成原始帖子中提及的编号大纲的Markdown如下所示:

# My top-level topic

## My first subtopic

## Another subtopic

### A sub-subtopic

## Another top-level topic

如果您想要更深入缩进子部分,您可以使用内联CSS实现此目的。例如,将其置于上述Markdown源的顶部会缩进标题:

<style type="text/css">
  h2 { margin-left: 10px; }
  h3 { margin-left: 20px; }
</style>

但是你说你的标题下有段落的文字......我不知道如何将它缩进到与上述标题相同的水平。

更新2015-10-18 Markdeep已编号(任何其他许多奇特的功能)。检查一下!

答案 1 :(得分:11)

如果您的降价工具支持CSS自定义主题,请将以下代码段添加到CSS中以启用标题号:

body {
    counter-reset: h1
}

h1 {
    counter-reset: h2
}

h2 {
    counter-reset: h3
}

h3 {
    counter-reset: h4
}

h1:before {
    counter-increment: h1;
    content: counter(h1) ". "
}

h2:before {
    counter-increment: h2;
    content: counter(h1) "." counter(h2) ". "
}

h3:before {
    counter-increment: h3;
    content: counter(h1) "." counter(h2) "." counter(h3) ". "
}

h4:before {
    counter-increment: h4;
    content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) ". "
}

我使用Typora,在此方法中支持auto numbering for headings

答案 2 :(得分:3)

如果您要编辑markdown文件本身,而不仅要编辑生成的HTML文件, 尝试使用enumerate-markdown和python 3

pip install enumerate-markdown
markdown-enum filename.md filename.md

示例-输入

# header 1
text
## header 2
text
# header 3
text

输出

# 1.  header 1
text
## 1.1  header 2
text
# 2.  header 3
text

如果以后再编辑文件并再次运行脚本,则它将更新旧的枚举。

答案 3 :(得分:1)

正如@adam-monsen所指出的那样,pandoc --number-sections&#39;诀窍。您也可以add numbersections: true to th YAML-Header简化文件的编号标题。

答案 4 :(得分:0)

Markdown旨在快速,轻便且易于使用,非常适合该法案。对于更复杂的格式,最好考虑使用markdown以外的选项。不是警察。通常,例如例如,使用Microsoft语言和工具,我想做“ xyz”,然后意识到在这个世界上,从设计上讲,您已经从“ xyz”转向了实现目标的首选/支持方式。

对于特定示例,请考虑vscode。人们询问工具栏/自定义。 Vscode不是以工具栏为中心的。这是设计使然。设计意图是使用命令面板Ctrl + Shift + P。不必经常自定义工具栏,从而节省了时间,并且可以快速访问所有命令,而不仅仅是工具栏上的一部分命令。