it-swarm.com.de

Markieren, um Seiten und Inhaltsverzeichnis zu erstellen?

Ich fing an, Mardown zu benutzen, um mir Notizen zu machen.

Ich benutze markiert , um meine Markdown-Notizen und ihre Schönheit anzuzeigen.

Da meine Notizen jedoch länger werden, fällt es mir schwer, das zu finden, was ich will.

Ich weiß, dass Markdown Tabellen erstellen kann, aber ist es in der Lage, Inhaltsverzeichnisse zu erstellen, die zu Abschnitten springen oder Seitenabschnitte in Markdown definieren?

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

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

211
resting

MultiMarkdown Composer scheint ein Inhaltsverzeichnis für die Bearbeitung zu erstellen. 

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

19
mxro

Sie können es versuchen. 

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

## Example
## Example2
## Third Example
243
Rick

Hier ist eine nützliche Methode. Sollte in einem MarkDown-Editor anklickbare Verweise 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. Einige Absätze
    1. Unterabschnitt
  3. Noch ein Absatz

Dies ist die Einführung 

Etwas Einführungstext, formatiert in Überschrift 2

Etwas Absatz 

Der erste Absatztext

Unterabschnitt 

Dies ist ein Unterabschnitt, der im Format von Überschrift 3 formatiert ist

Noch ein Absatz 

Der zweite Absatztext

125
Tum

Für die Benutzer von Visual Studio Code ist die Verwendung des Markdown TOC Plugins eine gute Idee.

Um es zu installieren, starten Sie das VS Code Quick Open (Ctrl+P), fügen Sie den folgenden Befehl ein und drücken Sie die Eingabetaste.

ext install markdown-toc

Öffnen Sie zum Generieren des Inhaltsverzeichnisses die Befehlspalette (Ctrl+Shift+P) und wählen Sie den Markdown TOC:Insert/Update option oder verwenden Sie Ctrl+MT.

23
coderade

Sie könnten dieses Ruby-Skript versuchen, das Inhaltsverzeichnis aus einer Markdown-Datei zu generieren.

 #!/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
21
# 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 zusätzliche Markierungen verwenden, dürfen Sie nicht vergessen, dass Sie Links, Kopfzeilen, Code-Zäunen und Bildern spezielle Attribute hinzufügen können.
https://michelf.ca/projects/php-markdown/extra/#spe-attr

20
Greg Bosen

Es gibt zwei Möglichkeiten, Ihr TOC (Zusammenfassung) in Ihrem Abschriftendokument 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. Programmgesteuert

Sie können zum Beispiel ein Skript verwenden, das eine Zusammenfassung für Sie generiert. Schauen Sie sich mein Projekt auf github an - summaryizeMD -

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

16
Luca Davanzo

Zum Nutzen derjenigen, die README.md-Dateien in Atom erstellen (wie ich diesen Thread gefunden habe):

apm install markdown-toc

https://atom.io/packages/markdown-toc

8
msanford

Wenn Sie ein Javascript/node.js-Tool verwenden möchten, schauen Sie unter markdown-toc

7
jonschlinkert

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

Im Gegensatz zu anderen Skripts, die ich gefunden habe, unterstützt md-to-toc korrekt doppelte Titel. Es ist auch keine Internetverbindung erforderlich. Es kann also auf jede md-Datei angewendet werden, nicht nur auf diejenigen, die in einem öffentlichen Repo verfügbar sind. 

5

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

... und es sollte sich in der Markdown-Installation im Verzeichnis markdown/extensions/ befinden. Alles, was Sie tun müssen, ist Anchor <a>-Tags mit einem id="..."-Attribut als Referenz einzugeben - 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...

... die Erweiterung kann 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 diesen toc wieder in Ihr Markdown-Dokument einfügen (oder eine Verknüpfung in Ihrem Texteditor haben, die das Skript im aktuell geöffneten Dokument aufruft und das resultierende Inhaltsverzeichnis in dasselbe Dokument einfügt). 

Beachten Sie, dass ältere Versionen von python-markdown kein __main__.py-Modul haben, und der Befehlszeilenaufruf wie oben funktioniert daher nicht für diese Versionen. 

5
sdaau

Sie können es mit diesem bash-Einzeiler erzeugen. Angenommen, Ihre Markdown-Datei heißt 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
5
Asim Jalis

Ankertags, die von verschiedenen Markdown-Parsern generiert werden, sind nicht gleich.

Wenn Sie mit Markdown-Parsern GFM (GitHub Flavored Markdown) oder Redcarpet arbeiten, habe ich ein Vim-Plugin geschrieben, um das Inhaltsverzeichnis zu bearbeiten.

Eigenschaften

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

    Unterstützte Markdown-Parser:

    • GFM (GitHub Flavored Markdown)
    • Roter Teppich
  2. Vorhandenes Inhaltsverzeichnis aktualisieren.

  3. Vorhandenes Inhaltsverzeichnis beim Speichern automatisch aktualisieren.

Screenshots

vim-markdown-toc

Verwendungszweck

Inhaltsverzeichnis generieren

Bewegen Sie den Cursor in die Zeile, an die Sie das Inhaltsverzeichnis anfügen möchten, und geben Sie anschließend einen Befehl ein. Der Befehl generiert Überschriften nach dem Cursor in das Inhaltsverzeichnis.

  1. :GenTocGFM

    Generieren Sie ein Inhaltsverzeichnis im GFM-Verknüpfungsstil.

    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-Verknüpfungsstil.

    Dieser Befehl eignet sich für Jekyll oder woanders Redcarpet als Markdown-Parser verwenden.

    hier können Sie die Unterschiede zwischen toc-Links im GFM- und Redcarpet-Stil erkennen.

Vorhandenes Inhaltsverzeichnis manuell aktualisieren

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

Downloads und Dokumente

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

5
Zhuang Ma

Ich habe gerade angefangen, dasselbe zu tun (Notizen in Markdown machen). Ich verwende Sublime Text 2 mit dem Plugin MarkdownPreview . Der integrierte Markdown-Parser unterstützt [TOC].

3
Martin

Sie können auch pandoc verwenden, das "Schweizer Taschenmesser", um "ein Markup-Format in ein anderes" umzuwandeln . Es kann automatisch ein Inhaltsverzeichnis im Ausgabedokument generiert werden, wenn Sie das Argument --toc angeben.

Hinweis: Wenn Sie ein Inhaltsverzeichnis in html ausgeben möchten, müssen Sie auch -s angeben, der ein eigenständiges Dokument generiert.

Beispiel für eine Shell-Befehlszeile:

./pandoc -s --toc input.md -o output.html
3
M.Geiger

Typora generiert Inhaltsverzeichnis durch Hinzufügen von [TOC] zu Ihrem Dokument.

3
Paul Jurczak

MultiMarkdown 4.7 hat ein {{TOC}} -Makro, das ein Inhaltsverzeichnis einfügt.

2
Michael R

Basierend auf albertodebortoli Antwort erstellt die Funktion mit zusätzlichen Prü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
dmigous

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

Verwendungszweck:

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

Prost!

1
Dhruv Batheja

Abhängig von Ihrem Arbeitsablauf möchten Sie vielleicht nach strapdown suchen.

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

Es gibt eine Apache-Konfigurationsdatei im Repo (möglicherweise noch nicht richtig aktualisiert), die das Markieren von Markierungen im Handumdrehen einschließt, wenn Sie nicht in HTML-Dateien schreiben möchten.

1
dgn

Ich bin mir nicht sicher, was die offizielle Dokumentation für Markdown ist . Cross-Reference kann nur in Klammern [Heading] oder mit leeren Klammern [Heading][] geschrieben werden.

Beide arbeiten mit pandoc . Also habe ich ein schnelles Bash - Skript erstellt, das $ TOC in der md - Datei durch sein Inhaltsverzeichnis ersetzt. (Sie werden envsubst brauchen, das könnte nicht Teil Ihrer Distribution sein)

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

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. Markdown auswählen : Inhaltsverzeichnis erstellen
1
Marco Lackovic

Wenn Sie zufällig Eclipse verwenden, können Sie das verwenden Ctrl+O Kurzbefehl (Gliederung): 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), es wird jedoch keine automatische Vervollständigungssuche durchgeführt.

1

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

Bei einer eingegebenen 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:

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

Siehe auch mein Blog Post zu diesem Thema.

1
Alex Harvey

Sie können das [Inhaltsverzeichnis] ​​in der ersten Zeile und dann in der unteren Zeile verwenden. Das einzige, was Sie tun müssen, ist sicherzustellen, dass die Titel in derselben größeren Schrift sind. Das Inhaltsverzeichnis würde automatisch herauskommen. (Aber das kommt nur in einigen Markdown-Editoren vor, ich habe nicht alle probiert.) 

0
Cecilé

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

Keine Plugins, 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 möchten. Sehr einfach zu bedienen.

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

Auf Gitlab unterstützt markdown dies: [[_TOC_]]

0
Nicolas Thery

Wenn Ihre Markdown-Datei in einem Repo auf bitbucket.org angezeigt werden soll, sollten Sie [TOC] an der Stelle hinzufügen, an der Sie Ihr Inhaltsverzeichnis haben möchten. Es wird dann automatisch generiert. Mehr Infos hier:

https://confluence.atlassian.com/bitbucket/add-a-table-of-contents-to-a-wiki-221451163.html

0
Jannik

Für mich funktioniert 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. Es wurde der Link nicht wie für die ersten 2 Ebenen angezeigt, sondern es wurde stattdessen der Klartext 3.5.1. [bla bla bla](#blablabla) <br> angezeigt.

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

Auf der zweiten Ebene erledigt ein einfacher Tab den Einzug richtig für Sie. Es werden jedoch keine 2 Registerkarten unterstützt. Stattdessen müssen Sie eine Registerkarte verwenden und so viele &nbsp; hinzufügen, wie Sie benötigen, um die 3. Ebene korrekt auszurichten.

Hier ein Beispiel mit 4 Stufen (höher die Stufen, 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 eine Verknüpfung zu seinem entsprechenden Abschnitt darstellt. Beachten Sie auch den <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-Untertitel

Titel 

Überschrift 1

Untertitel 

Überschrift 2

Untertitel 

Überschrift 3

Überschrift 4

0
Gabriel L.

Fügen Sie einfach die Zahl der Folie hinzu! Es funktioniert mit Markdown-Ioslides und enthüllt die Präsentation

## Table of Contents

 1. [introduction](#3)
 2. [section one](#5)
0
Abdelali Amghar