我开始使用mardown记笔记。
我使用有标记 ,查看我的降价音符和美丽。
但正如我的笔记变得更长,我觉得很难找到我想要的东西。
我知道降价可以创建表,但是它能够创建表的内容,即跳转到的部分,或降价定义页面栏目?
另外,有没有降价的读者/编辑器,可以做这样的事情。 搜索将是很好的功能有太多。
总之,我希望把它我真棒笔记工具和功能很像写书等。
我开始使用mardown记笔记。
我使用有标记 ,查看我的降价音符和美丽。
但正如我的笔记变得更长,我觉得很难找到我想要的东西。
我知道降价可以创建表,但是它能够创建表的内容,即跳转到的部分,或降价定义页面栏目?
另外,有没有降价的读者/编辑器,可以做这样的事情。 搜索将是很好的功能有太多。
总之,我希望把它我真棒笔记工具和功能很像写书等。
MultiMarkdown作曲家似乎生成表的内容,以协助当编辑。
也可能有一个或其他图书馆,谁又能产生的TOC:看到Python的降价TOC扩展 。
你可以试试这个。
# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)
## Example
## Example2
## Third Example
下面是一个有用的方法。 如果产生任何削价编辑器可点击引用。
# Table of contents
1. [Introduction](#introduction)
2. [Some paragraph](#paragraph1)
1. [Sub paragraph](#subparagraph1)
3. [Another paragraph](#paragraph2)
## This is the introduction <a name="introduction"></a>
Some introduction text, formatted in heading 2 style
## Some paragraph <a name="paragraph1"></a>
The first paragraph text
### Sub paragraph <a name="subparagraph1"></a>
This is a sub paragraph, formatted in heading 3 style
## Another paragraph <a name="paragraph2"></a>
The second paragraph text
生产:
一些介绍文字,在标题2样式设置格式
第一段文字
这是一个子项,格式化标题3风格
第二个段落文本
你可以试试这个Ruby脚本生成从降价文件中的TOC。
#!/usr/bin/env ruby
fileName = ARGV[0]
fileName = "README.md" if !fileName
File.open(fileName, 'r') do |f|
inside_code_snippet = false
f.each_line do |line|
forbidden_words = ['Table of contents', 'define', 'pragma']
inside_code_snippet = !inside_code_snippet if line.start_with?('```')
next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ } || inside_code_snippet
title = line.gsub("#", "").strip
href = title.gsub(" ", "-").downcase
puts " " * (line.count("#")-1) + "* [#{title}](\##{href})"
end
end
对于Visual Studio代码的用户,一个好主意是使用降价TOC插件。
要安装它,启动VS代码快速打开( 按Ctrl + P),粘贴下面的命令,然后按回车。
ext install markdown-toc
并以产生TOC,打开命令调色板(CTRL + SHIFT + P)和选择Markdown TOC:Insert/Update option
或使用Ctrl + M 吨 。
# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)
## Example [](#){name=example}
## Example2 [](#){name=example2}
## [Third Example](#){name=third-example}
如果您使用额外的减价,不要忘了,你可以到链接,标题,代码栅栏和图像添加特殊属性。
https://michelf.ca/projects/php-markdown/extra/#spe-attr
这就是你降价文档中创建您的TOC(摘要)2路。
# My Table of content
- [Section 1](#id-section1)
- [Section 2](#id-section2)
<div id='id-section1'/>
## Section 1
<div id='id-section2'/>
## Section 2
您可以使用,例如,对于您汇总生成一个脚本,看看我在github上的项目- summarizeMD -
我也尝试过其他脚本/ NPM模块(例如doctoc ),但没有一个再现TOC与工作锚。
对于我们这些做的好处README.md
在文件的Atom (我是怎么发现这个线程):
apm install markdown-toc
https://atom.io/packages/markdown-toc
如果你想使用JavaScript / Node.js的工具,看看降价-TOC 。
我写了解析降价文件,输出的内容的表作为降价列表中的python脚本: MD-到TOC
不像其他的脚本,我发现,MD-到TOC正确支持重复的标题。 它也并不需要互联网连接,所以它适用于任何MD文件,而不仅仅是那些可以从公开回购。
我只是编码的扩展python-markdown
,它使用它的解析器来检索标题,并输出TOC与本地链接降价格式的无序列表。 该文件是
...它应该被放置在markdown/extensions/
目录中的降价安装。 然后,所有你需要做的,是一个类型的锚<a>
与标签id="..."
属性作为一个参考-所以像这样的文本输入:
$ cat test.md
Hello
=====
## <a id="sect one"></a>SECTION ONE ##
something here
### <a id='sect two'>eh</a>SECTION TWO ###
something else
#### SECTION THREE
nothing here
### <a id="four"></a>SECTION FOUR
also...
...扩展可以被称为是这样的:
$ python -m markdown -x md_toc test.md
* Hello
* [SECTION ONE](#sect one)
* [SECTION TWO](#sect two)
* SECTION THREE
* [SECTION FOUR](#four)
...然后你可以贴回这个TOC的降价文件中(或在文本编辑器,调用当前打开的文件的脚本,然后插入导致TOC在同一文件中的快捷方式)。
需要注意的是旧版本的python-markdown
没有__main__.py
模块,因此,如上述的命令行调用不会为这些版本。
通过不同的降价解析器产生的锚标签,甚至没有。
如果您正在使用降价工作解析器GFM(GitHub风格降价),或隆重的接待,我写了一个Vim插件来处理目录。
生成的降价文件的目录。
支持降价解析器:
更新内容现有的表。
对保存的内容自动更新现有的表。
生成目录
将光标移动到要附加的内容表中的行,然后在下面的西装键入命令你。 该命令将生成光标移动到内容表之后标题。
:GenTocGFM
生成的GFM链接样式目录。
这个命令是适用于GitHub的库降价文件,如README.md,以及用于GitBook降价文件。
:GenTocRedcarpet
生成的隆重的接待链接样式目录。
该命令适用于杰奇或其他任何地方使用隆重的接待作为其降价解析器。
您可以查看这里了解GFM和隆重的接待风格TOC链接之间的差异。
手动更新现有目录
一般来说,你不需要做这个,现有的目录由默认保存会自动更新。 如果你想要做手工,只需使用:UpdateToc
命令。
https://github.com/mzlogin/vim-markdown-toc
您可以使用此bash的一行代码生成它。 假设你的降价文件名为FILE.md
。
echo "## Contents" ; echo ;
cat FILE.md | grep '^## ' | grep -v Contents | sed 's/^## //' |
while read -r title ; do
link=$(echo $title | tr 'A-Z ' 'a-z-') ;
echo "- [$title](#$link)" ;
done
我刚开始做同样的事情(做笔记的降价)。 我用崇高的文本2与MarkdownPreview插件 。 内置的降价解析器支持[TOC]
Typora加入生成内容的表 [TOC]
到您的文档。
你也可以使用pandoc
的“瑞士军刀”转换“一个标记格式转换成另一种” 。 如果您对供应它能自动生成的输出文档中内容的表--toc
说法。
提示:如果你想在一个目录html
输出,您还需要提供-s
生成一个独立的文件。
例如外壳命令行:
./pandoc -s --toc input.md -o output.html
基于albertodebortoli答案创造了额外的检查和标点符号的替代功能。
# @fn def generate_table_of_contents markdown # {{{
# @brief Generates table of contents for given markdown text
#
# @param [String] markdown Markdown string e.g. File.read('README.md')
#
# @return [String] Table of content in markdown format.
#
def generate_table_of_contents markdown
table_of_contents = ""
i_section = 0
# to track markdown code sections, because e.g. ruby comments also start with #
inside_code_section = false
markdown.each_line do |line|
inside_code_section = !inside_code_section if line.start_with?('```')
forbidden_words = ['Table of contents', 'define', 'pragma']
next if !line.start_with?('#') || inside_code_section || forbidden_words.any? { |w| line =~ /#{w}/ }
title = line.gsub("#", "").strip
href = title.gsub(/(^[!.?:\(\)]+|[!.?:\(\)]+$)/, '').gsub(/[!.,?:; \(\)-]+/, "-").downcase
bullet = line.count("#") > 1 ? " *" : "#{i_section += 1}."
table_of_contents << " " * (line.count("#") - 1) + "#{bullet} [#{title}](\##{href})\n"
end
table_of_contents
end
MultiMarkdown 4.7具有{{TOC}}宏插入的内容的表。
对我来说,通过@Tum提出的解决方案就像一种内容与2级的表的魅力。 然而,对于3级没有奏效。 作为第2层,它显示的纯文本它没有显示链接3.5.1. [bla bla bla](#blablabla) <br>
3.5.1. [bla bla bla](#blablabla) <br>
来代替。
我的解决方案是除了@Tum的谁需要用3层以上的内容表人的解决方案(这是很简单的)。
在第二个层面,一个简单的标签会做正确的缩进你。 但它不支持2个选项卡。 相反,你必须使用一个标签,并添加尽可能多的
根据需要自己以正确对齐第3级。
下面是使用4个级别(级别越高,可怕变得)的示例:
# Table of Contents
1. [Title](#title) <br>
1.1. [sub-title](#sub_title) <br>
1.1.1. [sub-sub-title](#sub_sub_title)
1.1.1.1. [sub-sub-sub-title](#sub_sub_sub_title)
# Title <a name="title"></a>
Heading 1
## Sub-Title <a name="sub_title"></a>
Heading 2
### Sub-Sub-Title <a name="sub_sub_title"></a>
Heading 3
#### Sub-Sub-Sub-Title <a name="sub_sub_sub_title"></a>
Heading 4
这给出了以下结果,其中内容表中的每个元素是将其相应的部分的链接。 还要注意的<br>
,以补充而不是被放在同一行新行。
标题1
标题2
标题3
Sub-Sub-Sub-Title标题4
在Gitlab,降价支持此: [[_TOC_]]
根据您的工作流程,你可能想看看捷联
这是原来的(指叉http://strapdownjs.com ,增加的内容表的产生)。
有在回购的Apache的配置文件(可能无法正常更新还)包装上飞平原降价,如果你不喜欢在HTML文件编写。
我不知道,什么是降价的官方文档。 交叉引用可以只在括号被写入[Heading]
,或者与空方括号[Heading][]
这两个工程,并使用pandoc 。 所以,我创建了一个快速bash脚本,将在其TOC MD文件替换$ TOC。 (您需要envsubst,这也许不是你的发行版的一部分)
#!/bin/bash
filename=$1
__TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/ /g;s/\. \(.*\)$/. [\1][]/')
export __TOC__
envsubst '$__TOC__' < $filename
如果你碰巧使用Eclipse,你可以使用Ctrl + O(轮廓)的快捷方式,这将显示表的内容相媲美,并允许部分标题(自动完成)进行查询。
你也可以打开大纲视图(窗口 - >显示视图 - >大纲),但它没有自动完成搜索。
使用toc.py这是一个很小的Python脚本,你降价生成表的-内容。
用法:
<toc>
您想要的目录放置。 $python toc.py README.md
(用你的降价文件名,而不是README.md) 干杯!
有一个Ruby脚本调用gen_markdown_toc.rb ,可以自动生成的内容的GFM降价表,它是类似的,但我们在此发布一些其他的脚本略有不同。
给定一个输入降价文件,如:
# Lorem Ipsum
Lorem ipsum dolor sit amet, mei alienum adipiscing te, has no possit delicata. Te nominavi suavitate sed, quis alia cum no, has an malis dictas explicari. At mel nonumes eloquentiam, eos ea dicat nullam. Sed eirmod gubergren scripserit ne, mei timeam nonumes te. Qui ut tale sonet consul, vix integre oportere an. Duis ullum at ius.
## Et cum
Et cum affert dolorem habemus. Sale malis at mel. Te pri copiosae hendrerit. Cu nec agam iracundia necessitatibus, tibique corpora adipisci qui cu. Et vix causae consetetur deterruisset, ius ea inermis quaerendum.
### His ut
His ut feugait consectetuer, id mollis nominati has, in usu insolens tractatos. Nemore viderer torquatos qui ei, corpora adipiscing ex nec. Debet vivendum ne nec, ipsum zril choro ex sed. Doming probatus euripidis vim cu, habeo apeirian et nec. Ludus pertinacia an pro, in accusam menandri reformidans nam, sed in tantas semper impedit.
### Doctus voluptua
Doctus voluptua his eu, cu ius mazim invidunt incorrupte. Ad maiorum sensibus mea. Eius posse sonet no vim, te paulo postulant salutatus ius, augue persequeris eum cu. Pro omnesque salutandi evertitur ea, an mea fugit gloriatur. Pro ne menandri intellegam, in vis clita recusabo sensibus. Usu atqui scaevola an.
## Id scripta
Id scripta alterum pri, nam audiam labitur reprehendunt at. No alia putent est. Eos diam bonorum oportere ad. Sit ad admodum constituto, vide democritum id eum. Ex singulis laboramus vis, ius no minim libris deleniti, euismod sadipscing vix id.
它生成的内容,此表:
$ gen_markdown_toc.rb FILE.md
#### Table of contents
1. [Et cum](#et-cum)
* [His ut](#his-ut)
* [Doctus voluptua](#doctus-voluptua)
2. [Id scripta](#id-scripta)
另请参见我的博客帖子在这个题目。
我已经使用https://github.com/ekalinin/github-markdown-toc它提供了一个命令行实用程序,从一个减价文档自动生成的内容列表。
无插件,或宏或其他依赖。 安装实用程序后,您希望您的表的内容只是粘贴实用程序将文档中的位置的输出。 使用方法很简单。
$ cat README.md | ./gh-md-toc -
在Visual Studio代码(VSCode),您可以使用扩展于一体减价所有 。
一旦安装后,请按照下列步骤操作:
您可以在第一线使用[TOC],然后在底部,你需要做的唯一的事情是确保标题是在同一个更大的字体。 表的内容会自动出来。 (但是,这仅出现在一些降价的编辑,我没有尝试所有)
只需添加幻灯片的数量! 它与降价ioslides和revealjs演示文稿
## Table of Contents
1. [introduction](#3)
2. [section one](#5)
如果你的降价文件将被显示在bitbucket.org回购,你应该添加[TOC]
在该位置,您希望您表的内容。 然后,它会自动生成。 这里更多的信息:
https://confluence.atlassian.com/bitbucket/add-a-table-of-contents-to-a-wiki-221451163.html