Markdown zum Erstellen von Seiten und Inhaltsverzeichnissen?


357

Ich fing an, Markdown zu verwenden, um Notizen zu machen.

Ich benutze markiert , um meine Markdown-Notizen und ihre schönen anzuzeigen.

Aber wenn meine Notizen länger werden, fällt es mir schwer zu finden, was ich will.

Ich weiß, dass Markdown Tabellen erstellen kann, aber kann es ein Inhaltsverzeichnis erstellen, das zu Abschnitten springt oder Seitenabschnitte in Markdown definiert?

Alternativ gibt es Abschriftenleser / -editoren, die solche Dinge tun könnten. Suche wäre auch eine gute Funktion.

Kurz gesagt, ich möchte es zu meinem großartigen Notizwerkzeug machen und funktioniert ähnlich wie das Schreiben eines Buches usw.


2
Wenn Sie ein Tool von javascript / node.js verwenden möchten, versuchen Sie es mit markiertem toc
jonschlinkert

@jonschlinkert Das solltest du als Antwort einreichen! Derzeit schlagen die Antworten nur Tools vor, die entweder nicht kostenlos oder Python sind. Nicht wirklich eine große Auswahl.
Domi

8
Ich sollte vielleicht erwähnen, dass dies in LaTeX erreicht wird \tableofcontents. Wenn das Rad neu erfunden werden soll, ist es vorzuziehen, die guten Teile zu kopieren.
Eero Aaltonen


In ähnlicher Weise verfügt reStructuredText über eine integrierte Direktive für Inhaltsverzeichnisse, die in einfachster Form wie einfach aussieht .. contents::.
Saaj

Antworten:


37

MultiMarkdown Composer scheint ein Inhaltsverzeichnis zu erstellen, das Sie beim Bearbeiten unterstützt.

Möglicherweise gibt es auch die eine oder andere Bibliothek, die Inhaltsverzeichnisse generieren kann: siehe Python Markdown TOC Extension .


17
MultiMarkdown Composer ist nur MacOS
chmike

1
Working Python Markdown Inhaltsverzeichnis
John

2
Die App ist in der Region Großbritannien nicht verfügbar.
Kenorb

Die TOC-Erweiterung erzeugt HTML-Token, nicht Markdown. Es ist bemerkenswert, dass dies schwierig ist.
rjurney

394

Sie können es versuchen.

# Table of Contents
1. [Example](#example)
2. [Example2](#example2)
3. [Third Example](#third-example)
4. [Fourth Example](#fourth-examplehttpwwwfourthexamplecom)


## Example
## Example2
## Third Example
## [Fourth Example](http://www.fourthexample.com) 

10
Das dritte Beispiel oben funktioniert nicht. ## Example ## "Example2" ## Third Example<a name="third-example" /> ist der einzige Weg, wie ich es schaffen könnte, Räume zu schlucken. Sicherlich würde das 3. Tag als - #Third- gefolgt von einem Leerzeichen - dann das Wort Beispiel - in Ihrem obigen Ausschnitt interpretiert werden ? Bindestriche funktionieren überhaupt nicht. Danke
twobob

Das Beispiel soll als Beispiel für mehr als ein Wort dienen. Alle Wörter sind in keine Feststelltaste und keine Leerzeichen unterteilt.
Rick

6
Funktioniert gut in RStudio. Ich möchte nur hinzufügen, dass die deutschen Umlaute zB ü ohne Umlaut in den Anker geschrieben werden müssen, dh1. [Einführung](#einfuhrung)
Steinbock

4
Anker werden nicht automatisch für Überschriften in Bitbucket v4.5.2
Mike Rylander

1
Dieses vierte Beispiel habe ich gesucht. Vielen Dank!
Kenecaswell

219

Hier ist eine nützliche Methode. Sollte in jedem MarkDown-Editor anklickbare Referenzen erzeugen.

# 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

Produziert:

Inhaltsverzeichnis

  1. Einführung
  2. Ein Absatz
    1. Unterabsatz
  3. Ein weiterer Absatz

Dies ist die Einführung

Ein Einführungstext im Stil von Überschrift 2

Ein Absatz

Der erste Absatztext

Unterabsatz

Dies ist ein Unterabsatz, der im Stil von Überschrift 3 formatiert ist

Ein weiterer Absatz

Der Text des zweiten Absatzes


22
Ich möchte das Ankertag in der Zeile über der Überschrift platzieren, sodass beim Klicken auf den Link die Überschrift auf der Seite angezeigt wird.
mgarey

4
Dies war der einzig nützliche für mich. Bei langen Titeln ist dies ohne Ankertags nicht möglich.
Matt Fletcher

Das ist wirklich schön. Ich habe begonnen, ein Inhaltsverzeichnis in alle meine Jupyter-Notizbücher aufzunehmen, um schnell zwischen den Abschnitten zu navigieren.
Jackdbd

@mgarey Setzen Sie einfach den Anker zuerst:## <a name="foo" /> Foo
tobias_k

40

Für Benutzer von Visual Studio Code empfiehlt es sich, das Markdown TOC- Plugin zu verwenden.

Starten Sie zum Installieren den VS Code Quick Open ( Control/⌘+ P), fügen Sie den folgenden Befehl ein und drücken Sie die Eingabetaste.

ext install markdown-toc

Um das Inhaltsverzeichnis zu erstellen, öffnen Sie die Befehlspalette ( Control/⌘+ Shift+ P) und wählen Sie das Markdown TOC:Insert/Update optionoder verwenden Sie Control/⌘+ MT.


7
Hinweis: Ich habe gerade festgestellt, dass Sie mit Standard-VSCode Markdown-Links zu Headern erstellen können: [Section Foo](#foo-header-title)und dies funktioniert auch außerhalb des Vorschaumodus (dh im einfachen Markdown).
Kitsu.eb

4
Eine weitere Alternative für VSCode ist vscode-markdown mit mehreren Funktionen, einschließlich ToC
Ciprian Tomoiagă

26

Sie können dieses Ruby-Skript ausprobieren , um das Inhaltsverzeichnis aus einer Markdown-Datei zu generieren.

 #!/usr/bin/env ruby

require 'uri'

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 = URI::encode title.gsub(" ", "-").downcase
    puts "  " * (line.count("#")-1) + "* [#{title}](\##{href})"
  end
end

Großartig! Nur eine Notiz, möchten hinzufügen ifndef, includeund endifunter anderem Präprozessordirektiven, zu der verbotenen Wörter - Liste. Wenn Sie die Liste außerhalb des Bereichs der Schleife definieren, müssen Sie sie nicht bei jeder Iteration neu definieren. Außerdem werden Kommentare in jeder Sprache #erfasst, die Kommentarsyntax verwendet , einschließlich Ruby, was nicht gut ist. Ich bin bereit zu bearbeiten, wenn Sie möchten. Dies ist jedoch ein großartiger Start und hat für meine Zwecke gut funktioniert. Vielen Dank!
Jeff Klein

Dies funktioniert nur mit atx-Überschriften (dh solchen, die mit beginnen #), nicht mit Setext-Überschriften (unterstrichen).
Gozzilli

danke dafür, wenn du dies für redcarpet auf schienen verwendest, solltest du dich title.parameterizefür die href entscheiden, danke!
Alexis

25

Es gibt zwei Möglichkeiten, Ihr Inhaltsverzeichnis (Zusammenfassung) in Ihrem Markdown-Dokument zu erstellen .

1. Manuell

# My Table of content
- [Section 1](#id-section1)
- [Section 2](#id-section2)

<div id='id-section1'/>
## Section 1
<div id='id-section2'/>
## Section 2

2. Programmatisch

Sie können ein Skript zum Beispiel verwenden , die Zusammenfassung für Sie generieren, einen Blick auf mein Projekt auf Github nehmen - summarizeMD -

Ich habe auch ein anderes Skript / npm-Modul (zum Beispiel doctoc ) ausprobiert, aber niemand reproduziert ein Inhaltsverzeichnis mit funktionierenden Ankern.


`` <div id = ... `wird von MarkdownPad2 (Windows) nicht erkannt
chmike

Funktioniert nur im selben Ordner, funktioniert auch nicht für Setext-Überschriften.
Gozzilli

25
# 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}

Wenn Sie Markdown extra verwenden, vergessen Sie nicht, dass Sie Links, Headern, Codezäunen und Bildern spezielle Attribute hinzufügen können.
https://michelf.ca/projects/php-markdown/extra/#spe-attr


11

Anker-Tags, die von verschiedenen Markdown-Parsern generiert wurden, sind nicht gerade.

Wenn Sie mit den Markdown-Parsern GFM (GitHub Flavored Markdown) oder Redcarpet arbeiten, habe ich ein Vim-Plugin für das Inhaltsverzeichnis geschrieben.

Eigenschaften

  1. Generieren Sie ein Inhaltsverzeichnis für Markdown-Dateien.

    Unterstützte Markdown-Parser:

    • GFM (GitHub Flavored Markdown)
    • Roter Teppich
  2. Aktualisieren Sie das vorhandene Inhaltsverzeichnis.

  3. Vorhandenes Inhaltsverzeichnis beim Speichern automatisch aktualisieren.

Screenshots

vim-markdown-toc

Verwendungszweck

Inhaltsverzeichnis erstellen

Bewegen Sie den Cursor auf die Zeile, an die Sie das Inhaltsverzeichnis anhängen möchten, und geben Sie den folgenden Befehl ein. Der Befehl generiert Überschriften nach dem Cursor in das Inhaltsverzeichnis.

  1. :GenTocGFM

    Generieren Sie ein Inhaltsverzeichnis im GFM-Linkstil.

    Dieser Befehl eignet sich für Markdown-Dateien in GitHub-Repositorys wie README.md und Markdown-Dateien für GitBook.

  2. :GenTocRedcarpet

    Generieren Sie ein Inhaltsverzeichnis im Redcarpet-Linkstil.

    Dieser Befehl ist für Jekyll geeignet oder verwendet Redcarpet als Markdown-Parser.

    Sie können hier die Unterschiede zwischen GFM- und Redcarpet-toc-Links anzeigen.

Aktualisieren Sie das vorhandene Inhaltsverzeichnis manuell

Im Allgemeinen müssen Sie dies nicht tun. Das vorhandene Inhaltsverzeichnis wird beim Speichern standardmäßig automatisch aktualisiert. Wenn Sie es manuell tun möchten, verwenden Sie einfach den :UpdateTocBefehl.

Downloads und Dokumente

https://github.com/mzlogin/vim-markdown-toc





7

Sie können es mit diesem Bash-Einzeiler generieren. Angenommen, Ihre Markdown-Datei wird aufgerufen 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

Das ist toll. Es lohnt sich, es als richtiges Skript mit dem Dateinamen als Argument und möglicherweise mit der Behandlung von Unterabschnitten neu zu schreiben.
MasterScrat

6

Ich habe gerade eine Erweiterung für codiert python-markdown, die ihren Parser zum Abrufen von Überschriften verwendet und ein Inhaltsverzeichnis als Markdown-formatierte ungeordnete Liste mit lokalen Links ausgibt. Die Datei ist

... und es sollte markdown/extensions/in der Markdown-Installation im Verzeichnis abgelegt werden . Dann müssen Sie nur noch <a>Ankertags mit einem id="..."Attribut als Referenz eingeben - also für einen Eingabetext wie diesen:

$ 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...

... kann die Erweiterung folgendermaßen aufgerufen werden:

$ python -m markdown -x md_toc test.md 
* Hello
    * [SECTION ONE](#sect one)
        * [SECTION TWO](#sect two)
            * SECTION THREE
        * [SECTION FOUR](#four)

... und dann können Sie dieses Token wieder in Ihr Markdown-Dokument einfügen (oder eine Verknüpfung in Ihrem Texteditor haben, die das Skript für das aktuell geöffnete Dokument aufruft und dann das resultierende Inhaltsverzeichnis in dasselbe Dokument einfügt).

Beachten Sie, dass ältere Versionen von python-markdownkein __main__.pyModul haben und der Befehlszeilenaufruf wie oben für diese Versionen nicht funktioniert.


6

Wie in anderen Antworten erwähnt, gibt es mehrere Möglichkeiten, ein Inhaltsverzeichnis automatisch zu erstellen. Die meisten sind Open Source-Software und können an Ihre Bedürfnisse angepasst werden.

Was mir jedoch gefehlt hat, ist eine visuell ansprechende Formatierung für ein Inhaltsverzeichnis unter Verwendung der begrenzten Optionen, die Markdown bietet. Wir haben uns Folgendes ausgedacht:

Code

## Content

**[1. Markdown](#heading--1)**

  * [1.1. Markdown formatting cheatsheet](#heading--1-1)
  * [1.2. Markdown formatting details](#heading--1-2)

**[2. BBCode formatting](#heading--2)**

  * [2.1. Basic text formatting](#heading--2-1)

      * [2.1.1. Not so basic text formatting](#heading--2-1-1)

  * [2.2. Lists, Images, Code](#heading--2-2)
  * [2.3. Special features](#heading--2-3)

----

In Ihrem Dokument platzieren Sie die Zieluntermarkierungen wie folgt:

<div id="heading--1-1"/>
### 1.1. Markdown formatting cheatsheet

Je nachdem, wo und wie Sie Markdown verwenden, sollte auch Folgendes funktionieren und einen besser aussehenden Markdown-Code bereitstellen:

### 1.1. Markdown formatting cheatsheet <a name="heading--1-1"/>

Beispiel für das Rendern

Inhalt

1. Abschlag

2. BBCode-Formatierung


Vorteile

  • Sie können beliebig viele Ebenen von Kapiteln und Unterkapiteln hinzufügen. Im Inhaltsverzeichnis werden diese als verschachtelte ungeordnete Listen auf tieferen Ebenen angezeigt.

  • Keine Verwendung von geordneten Listen. Diese würden einen Einzug erzeugen, die Nummer nicht verknüpfen und können nicht zum Erstellen einer Dezimalklassifizierungsnummerierung wie "1.1" verwendet werden.

  • Keine Verwendung von Listen für die erste Ebene. Hier ist die Verwendung einer ungeordneten Liste möglich, aber nicht erforderlich: Einrückung und Aufzählungszeichen fügen nur visuelle Unordnung und keine Funktion hinzu, sodass wir für die erste ToC-Ebene überhaupt keine Liste verwenden.

  • Visuelle Hervorhebung der Abschnitte der ersten Ebene im Inhaltsverzeichnis durch Fettdruck.

  • Kurze, aussagekräftige Teilmarkierungen, die in der URL-Leiste des Browsers "schön" aussehen, z. B. #heading--1-1keine Markierungen, die transformierte Teile der tatsächlichen Überschrift enthalten.

  • Der Code verwendet H2-Überschriften ( ## …) für Abschnitte, H3-Überschriften ( ### …) für Unterüberschriften usw. Dies erleichtert das Lesen des Quellcodes, da ## …beim Scrollen ein stärkerer visueller Hinweis angezeigt wird als in dem Fall, in dem Abschnitte mit H1-Überschriften beginnen würden ( # …). Es ist weiterhin logisch konsistent, da Sie die Überschrift H1 für den Dokumenttitel selbst verwenden.

  • Schließlich fügen wir eine schöne horizontale Regel hinzu, um das Inhaltsverzeichnis vom tatsächlichen Inhalt zu trennen.

Weitere Informationen zu dieser Technik und ihrer Verwendung in der Forum-Software Discourse finden Sie hier .


5

Ich habe ein Python-Skript geschrieben, das eine Markdown-Datei analysiert und ein Inhaltsverzeichnis als Markdown-Liste ausgibt: md-to-toc

Im Gegensatz zu anderen Skripten, die ich gefunden habe, unterstützt md-to-toc doppelte Titel korrekt. Es ist auch keine Internetverbindung erforderlich, sodass es für jede MD-Datei funktioniert, nicht nur für diejenigen, die in einem öffentlichen Repo erhältlich sind.


5

In Visual Studio Code (VSCode) können Sie die Erweiterung Markdown All in One verwenden .

Führen Sie nach der Installation die folgenden Schritte aus:

  1. Drücken Sie CTRL+ SHIFT+P
  2. Wählen Sie Markdown: Erstellen Sie Inhaltsverzeichnis


4

Typora generiert ein Inhaltsverzeichnis, indem [TOC]es Ihrem Dokument hinzugefügt wird .


Vielen Dank! Hier ist auch ein Link zur Readme-
Datei


4

Verwenden Sie einfach Ihren Texteditor mit einem Plugin.

Ihr Editor verfügt möglicherweise über ein Paket / Plugin , das dies für Sie erledigt. In Emacs können Sie beispielsweise den Markdown-toc-Inhaltsverzeichnisgenerator installieren . Rufen Sie dann beim Bearbeiten einfach wiederholt anM-x markdown-toc-generate-or-refresh-toc . Das ist eine Schlüsselbindung wert, wenn Sie es oft tun möchten. Es ist gut, ein einfaches Inhaltsverzeichnis zu erstellen, ohne Ihr Dokument mit HTML-Ankern zu verschmutzen.

Andere Editoren haben ähnliche Plugins, daher ist die beliebte Liste ungefähr so:


2

Basierend auf albertodebortoli Antwort erstellt die Funktion mit zusätzlichen Überprüfungen und Ersetzung von Satzzeichen.

# @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


2

Für mich wirkt die von @Tum vorgeschlagene Lösung wie ein Zauber für ein Inhaltsverzeichnis mit 2 Ebenen. Für die 3. Stufe hat es jedoch nicht funktioniert. Der Link wurde nicht wie in den ersten beiden Ebenen angezeigt, sondern 3.5.1. [bla bla bla](#blablabla) <br>stattdessen der Klartext .

Meine Lösung ist eine Ergänzung zur Lösung von @Tum (die sehr einfach ist) für Personen, die ein Inhaltsverzeichnis mit 3 oder mehr Ebenen benötigen.

Auf der zweiten Ebene führt eine einfache Registerkarte den Einzug korrekt für Sie aus. Es werden jedoch keine 2 Registerkarten unterstützt. Stattdessen müssen Sie eine Registerkarte verwenden und so viele &nbsp;wie nötig selbst hinzufügen , um die 3. Ebene korrekt auszurichten.

Hier ist ein Beispiel mit 4 Ebenen (höher die Ebenen, schrecklich wird es):

# Table of Contents
1. [Title](#title) <br>
    1.1. [sub-title](#sub_title) <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1.1. [sub-sub-title](#sub_sub_title)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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

Dies ergibt das folgende Ergebnis, bei dem jedes Element des Inhaltsverzeichnisses ein Link zu seinem entsprechenden Abschnitt ist. Beachten Sie auch die <br>, um eine neue Zeile hinzuzufügen, anstatt sich in derselben Zeile zu befinden.

Inhaltsverzeichnis

  1. Titel
    1.1. Untertitel
           1.1.1. Untertitel
                     1.1.1.1. Sub-Sub-Sub-Titel

Titel

Überschrift 1

Untertitel

Überschrift 2

Sub-Sub-Titel

Überschrift 3

Sub-Sub-Sub-Titel

Überschrift 4


1

Abhängig von Ihrem Workflow möchten Sie sich möglicherweise Strapdown ansehen

Dies ist eine Abzweigung des Originals ( http://strapdownjs.com ), die die Generierung des Inhaltsverzeichnisses hinzufügt.

Es gibt eine Apache-Konfigurationsdatei im Repo (möglicherweise noch nicht ordnungsgemäß aktualisiert), um den einfachen Markdown im laufenden Betrieb zu verpacken, wenn Sie nicht in HTML-Dateien schreiben möchten.


1

Ich bin mir nicht sicher, was die offizielle Dokumentation für den Abschlag ist. Querverweise können nur in Klammern [Heading]oder mit leeren Klammern geschrieben werden [Heading][].

Beide arbeiten mit Pandoc . Also habe ich ein schnelles Bash-Skript erstellt, das $ TOC in der MD-Datei durch das Inhaltsverzeichnis ersetzt. (Sie benötigen envsubst, das möglicherweise nicht Teil Ihrer Distribution ist.)

#!/bin/bash
filename=$1
__TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/   /g;s/\. \(.*\)$/. [\1][]/')
export __TOC__
envsubst '$__TOC__' < $filename

1

Wenn Sie Eclipse verwenden , können Sie die Verknüpfung Ctrl+ O(Gliederung) verwenden. Diese zeigt das Äquivalent des Inhaltsverzeichnisses an und ermöglicht die Suche in Abschnittsüberschriften (automatische Vervollständigung).

Sie können auch die Gliederungsansicht öffnen (Fenster -> Ansicht anzeigen -> Gliederung), sie hat jedoch keine automatische Vervollständigungssuche.


1

Verwenden Sie toc.py , ein winziges Python-Skript, das ein Inhaltsverzeichnis für Ihren Markdown generiert.

Verwendungszweck:

  • Fügen <toc>Sie in Ihrer Markdown-Datei hinzu, wo das Inhaltsverzeichnis platziert werden soll.
  • $python toc.py README.md(Verwenden Sie Ihren Markdown-Dateinamen anstelle von README.md. )

Prost!


Ihr Skript ist nett, aber es erstellt nicht vor jedem Titel einen Anker. Notwendig zumindest im Bitbucket.
Paul Rougieux

1

Ich habe https://github.com/ekalinin/github-markdown-toc verwendet , das ein Befehlszeilenprogramm bereitstellt, das das Inhaltsverzeichnis automatisch aus einem Markdown-Dokument generiert.

Keine Plugins oder Makros oder andere Abhängigkeiten. Fügen Sie nach der Installation des Dienstprogramms einfach die Ausgabe des Dienstprogramms an der Stelle im Dokument ein, an der Sie Ihr Inhaltsverzeichnis haben möchten. Sehr einfach zu bedienen.

$ cat README.md | ./gh-md-toc -


1

Es gibt ein Ruby-Skript namens mdtoc.rb , das automatisch ein GFM-Markdown-Inhaltsverzeichnis generieren kann. Es ist ähnlich, unterscheidet sich jedoch geringfügig von einigen anderen hier veröffentlichten Skripten.

Gegeben eine Eingabe Markdown-Datei wie:

# 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.

Es generiert dieses Inhaltsverzeichnis:

$ mdtoc.rb FILE.md 
#### Table of contents

1. [Et cum](#et-cum)
    * [His ut](#his-ut)
    * [Doctus voluptua](#doctus-voluptua)
2. [Id scripta](#id-scripta)

Sehen Sie mein Blog auch Beitrag zu diesem Thema.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.