Ich schreibe ein großes Markdown-Dokument und möchte am Anfang eine Art Inhaltsverzeichnis platzieren, das Links zu verschiedenen Stellen im Dokument enthält. Wie kann ich das machen?
Ich habe es versucht
[a link](# MyTitle)
Wo MyTitle
ist ein Titel im Dokument und das hat nicht funktioniert.
markdown
multimarkdown
Empfängerausschluss
quelle
quelle
Antworten:
Wenn Sie in Pandoc die Option zum Erstellen
--toc
von HTML verwenden, wird ein Inhaltsverzeichnis mit Links zu den Abschnitten und zurück zum Inhaltsverzeichnis aus den Abschnittsüberschriften erstellt. Ähnlich verhält es sich mit den anderen Formaten, die Pandoc schreibt, wie LaTeX, rtf, rst usw. Also mit dem Befehldieses bisschen Abschlag:
wird dies als der Körper des HTML ergeben:
quelle
git clone
in das unterste oder äußerste tmbundle-Verzeichnis verschoben werden,~/Library/Application\ Support/TextMate/Bundles
um die Integration zu vereinfachen.-1
zur ersten Wiederholung der ID,-2
zur zweiten usw. hinzuGithub analysiert automatisch Ankertags aus Ihren Headern. Sie können also Folgendes tun:
Im obigen Fall hat der
Foo
Header ein Ankertag mit dem Namen generiertfoo
Hinweis : Nur eine
#
für alle Überschriftengrößen, kein Leerzeichen zwischen#
und Ankername. Die Namen der Ankertags müssen in Kleinbuchstaben geschrieben und bei mehreren Wörtern durch Bindestriche getrennt sein .Aktualisieren
Funktioniert auch sofort mit
pandoc
.quelle
[just](#like-this-one)
.## Foo
, versuchen Sie [dies ist mein Link zu Foo] (# foo) ... das heißt: einzelner Hash, kein Leerzeichen zwischen Hash und Kleinbuchstaben-Kebab-Fallname- of-headerBeim Experimentieren habe ich eine Lösung gefunden, bei der es
<div…/>
jedoch naheliegend ist, einen eigenen Ankerpunkt auf der Seite zu platzieren, wo immer Sie möchten.vor und
nach der Zeile, zu der Sie 'verlinken' möchten. Dann ein Markdown-Link wie:
Überall im Dokument gelangen Sie dorthin.
Die
<div…/>
Lösung fügt eine "Dummy" -Division ein, nur um dieid
Eigenschaft hinzuzufügen , und dies kann möglicherweise die Seitenstruktur stören, aber die<a name="abcde"/>
Lösung sollte ziemlich harmlos sein.(PS: Es kann in Ordnung sein, den Anker wie folgt in die Zeile zu setzen, mit der Sie verknüpfen möchten:
Dies hängt jedoch davon ab, wie Markdown damit umgeht. Ich stelle zum Beispiel fest, dass der Stack Overflow-Antwortformatierer damit zufrieden ist!)
quelle
## headers
.<div/>
Zeilen betroffen sind , wenn ich einem Text voran gehe . Stattdessen muss ich den Text, den ich verlinke, in eine vollständigediv
Tag-Klausel einschließen und das Verhalten mit echtem HTML von Grund auf neu spezifizieren. Boo.<a name="head1"/>
mit<a id="head1"/>
.Dies ist möglicherweise ein veralteter Thread, aber um innere Dokumentverknüpfungen in Markdown in Github zu erstellen, verwenden Sie ...
(HINWEIS: Kleinbuchstaben #title)
Da eine gute Frage gestellt wurde, habe ich meine Antwort bearbeitet.
Eine innere Verbindung kann zu jeder Titelgröße mit gemacht werden -
#
,##
,###
,####
habe ich ein kurzes Beispiel unten ... https://github.com/aogilvie/markdownLinkTestquelle
(#dependencies-title)
teilt Github mit, dass dies ein innerer Link ist. Der folgende Text kann eine beliebige Titelgröße haben. Hier ist ein Beispiel Test, den ich gemacht habe ... https://github.com/aogilvie/markdownLinkTestJa, Markdown macht das, aber Sie müssen den Namensanker angeben
<a name='xyx'>
.ein vollständiges Beispiel,
Dadurch wird die Verknüpfung erstellt
[tasks](#tasks)
Später im Dokument erstellen Sie den benannten Anker (wie auch immer er heißt).
Beachten Sie, dass Sie es auch um den Header wickeln können.
quelle
Im Pandoc-Handbuch wird erläutert, wie Sie anhand Ihrer Kennung eine Verknüpfung zu Ihren Headern herstellen. Ich habe die Unterstützung durch andere Parser nicht überprüft, aber es wurde berichtet, dass es auf Github nicht funktioniert .
Die Kennung kann manuell angegeben werden:
oder Sie können die automatisch generierte Kennung verwenden (in diesem Fall
#my-heading-text
). Beides wird im Pandoc-Handbuch ausführlich erläutert .HINWEIS : Dies funktioniert nur bei der Konvertierung in HTML , LaTex , ConTeXt , Textile oder AsciiDoc .
quelle
Einige zusätzliche Dinge, die Sie beachten sollten, wenn Sie jemals Lust auf Symbole in Überschriften haben, zu denen Sie navigieren möchten ...
... Dinge wie
#
,;
,&
und:
Zeichenkette in der Position anstelle von entkam der Regel ignoriert / gestreift, und man kann auch verwenden Zitat Stil Links zu dem schnellen Einsatz zu erleichtern.Bonuspunkte?
Nur für den Fall, dass sich jemand gefragt hat, wie Bilder und andere Links in einer Überschrift in eine
id
...Vorsichtsmaßnahmen
Das MarkDown-Rendering unterscheidet sich von Ort zu Ort, sodass Dinge wie ...
... auf GitHub wird ein Element mit
id
wie ...... wo als Vanille- Hygiene
id
...... bedeutet, dass das Schreiben oder Kompilieren von MarkDown-Dateien aus Vorlagen entweder eine gezielte Art des Slugifeing erfordert oder das Hinzufügen von Konfigurationen und Skriptlogik für die verschiedenen cleveren Methoden, mit denen der Text der Überschrift bereinigt werden soll.
quelle
Universelle Lösungen
Diese Frage scheint je nach Abschriftenimplementierung eine andere Antwort zu haben.
In der offiziellen Markdown-Dokumentation wird zu diesem Thema nichts gesagt.
In solchen Fällen und wenn Sie eine tragbare Lösung wünschen, können Sie HTML verwenden.
Definieren Sie vor einem Header oder in derselben Headerzeile eine ID mithilfe eines HTML-Tags.
Beispiel:
<a id="Chapter1"></a>
Sie sehen dies in Ihrem Code, jedoch nicht im gerenderten Dokument.
Vollständiges Beispiel:
Ein vollständiges Beispiel (online und bearbeitbar) finden Sie hier .
Um dieses Beispiel zu testen, müssen Sie zwischen der Inhaltsliste und dem ersten Kapitel zusätzlichen Platz einfügen oder die Fensterhöhe verringern.
Verwenden Sie auch keine Leerzeichen im Namen der IDs.
quelle
## Chapter 1
braucht eine offene Linie darüber. (2). Der Link funktioniert nicht ...<span id="Chapter1"><span>
In der Markdown-Spezifikation gibt es keine solche Richtlinie. Es tut uns leid.
quelle
Gitlab verwendet GitLab Flavored Markdown (GFM)
Hier "erhalten alle von Markdown gerenderten Header automatisch IDs"
Man kann die Maus benutzen, um:
Kopieren und speichern Sie den Link mit der rechten Maustaste
Zum Beispiel in der Datei README.md habe ich einen Header:
## series expansion formula of the Boettcher function
welches einen Link gibt:
Das Präfix kann entfernt werden, so dass der Link hier einfach ist
was hier bedeutet:
Jetzt kann es verwendet werden als:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
Man kann es auch manuell machen: Ersetzen Sie Leerzeichen durch Bindestriche.
Live Beispiel ist hier
quelle
Mit kramdown scheint dies gut zu funktionieren:
Ich sehe, dass es erwähnt wurde
funktioniert effizient, aber ersteres ist möglicherweise eine gute Alternative für Elemente neben Überschriften oder Überschriften mit mehreren Wörtern.
quelle
Da MultiMarkdown als Option in Kommentaren erwähnt wurde.
In MultiMarkdown ist die Syntax für einen internen Link einfach.
Geben Sie für jede Überschrift im Dokument einfach den Überschriftennamen in diesem Format
[heading][]
an, um einen internen Link zu erstellen.Lesen Sie hier mehr: MultiMarkdown-5 Querverweise .
quelle
Noch ein paar
<a name="">
Drehungen:quelle
Zusätzlich zu den obigen Antworten
Beim Festlegen der Option
number_sections: true
im YAML-Header:RMarkdown nummeriert Ihre Abschnitte automatisch.
Um auf diese automatisch nummerierten Abschnitte zu verweisen, fügen Sie einfach Folgendes in Ihre R Markdown-Datei ein:
[My Section]
Wo
My Section
ist der Name des Abschnitts?Dies scheint unabhängig von der Abschnittsebene zu funktionieren:
# My section
## My section
### My section
quelle