Gibt es eine Markdown- Syntax für das Äquivalent von:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
quelle
Gibt es eine Markdown- Syntax für das Äquivalent von:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
Take me to [pookie](#pookie)
sollte die richtige Markdown-Syntax sein, um zum Ankerpunkt namens pookie zu springen.
Um einen Ankerpunkt dieses Namens einzufügen, verwenden Sie HTML:
<a name="pookie"></a>
Markdown scheint es nichts auszumachen, wo Sie den Ankerpunkt setzen. Ein nützlicher Ort, um es zu setzen, ist in einer Kopfzeile. Zum Beispiel:
### <a name="tith"></a>This is the Heading
funktioniert sehr gut. (Ich würde hier demonstrieren, aber der Renderer von SO entfernt den Anker.)
id=
Versusname=
In einer früheren Version dieses Beitrags wurde vorgeschlagen <a id='tith' />
, die selbstschließende Syntax für XHTML zu verwenden und stattdessen das id
Attribut zu verwenden name
.
Mit XHTML kann jedes Tag "leer" und "selbstgeschlossen" sein. Das heißt, es <tag />
ist <tag></tag>
eine Abkürzung für ein übereinstimmendes Paar von Tags mit einem leeren Körper. Die meisten Browser akzeptieren XHTML, einige jedoch nicht. Um browserübergreifende Probleme zu vermeiden, schließen Sie das Tag explizit mit <tag></tag>
, wie oben empfohlen.
Schließlich war das Attribut name=
in XHTML veraltet, also habe ich es ursprünglich verwendet id=
, was jeder erkennt. HTML5 erstellt jetzt jedoch eine globale Variable in JavaScript, wenn es verwendet wird id=
, und dies muss nicht unbedingt das sein, was Sie wollen. Daher ist die Verwendung name=
jetzt wahrscheinlich freundlicher.
(Vielen Dank an Slipp Douglas , der mir XHTML erklärt hat, und an Nagler , der auf den HTML5-Nebeneffekt hingewiesen hat. Weitere Informationen finden Sie in den Kommentaren und in der Antwort des Naglers. Es name=
scheint überall zu funktionieren, obwohl es in XHTML veraltet ist.)
<a>
ohne href haben, heißt das nicht, dass es sich selbst schließt. Sofern ich nicht völlig verrückt bin, rendern beide: test-xhtml11 und [ sln.6bitt.com/public/test-html5.html ( Test- html5) den Rest der Seite innerhalb des <a> -Tags. Prüfen Sie mit einem Webinspektor Ihrer Wahl.<a id="hi"/> rest of doc
, aber es wurde wie behandelt<a id="hi"> rest of doc</a>
. (Und die Elementanalyse der Seite zeigt dies auch.) Mein Fehler: Ich habe mir die angezeigten Elemente angesehen, nicht die Rohquelle. Denken Sie, dass die Antwort angesichts dieser Beobachtung geändert werden sollte?name
Attribut erstellt auch globale Variablen (siehe stackoverflow.com/questions/3434278/… ), sodass Sie dasid
Attribut genauso gut wie beabsichtigt als Ziel für Fragment- IDs verwenden können .Auf bitbucket.org würde die gewählte Lösung nicht funktionieren. Wenn Sie Header (mit ##) verwenden, können Sie sie stattdessen als Anker referenzieren, indem Sie ihnen den Präfix # markdown-header-my-header-name voranstellen, wobei # markdown-header- ein vom Renderer generiertes implizites Präfix ist Der Rest ist der Titel der unteren Groß- und Kleinschreibung, wobei Bindestriche Leerzeichen ersetzen.
Beispiel
erzeugt einen impliziten Anker wie diesen
Die gesamte URL vor jeder Ankerreferenz ist optional, d. H.
ist äquivalent zu
vorausgesetzt, sie befinden sich auf derselben Seite.
Quelle: https://bitbucket.org/tutorials/markdowndemo/overview (Bearbeiten Sie die Quelle dieser MD-Datei und sehen Sie sich an, wie Anker hergestellt werden).
quelle
## My paragraph title
wird der folgende Anker erstelltuser-content-my-paragraph-title
, sodass Sie ihn mit [Text] (# user-content-my -agraph-title) referenzieren können. Ich habe jedoch keine offizielle Dokumentation dafür gefunden.[linky](#header)
war ein ausreichender Anker und funktionierte auch bei Veröffentlichung in Gist.Verwenden Sie a
name
. Die Verwendung vonid
ist in HTML 5 nicht erforderlich und erstellt globale Variablen in Ihrem JavaScriptSiehe HTML 5-Spezifikation, 5.9.8 Navigieren zu einer Fragmentkennung - beide
id
undname
werden verwendet.Es ist wichtig zu wissen, dass die meisten Browser IDs immer noch in globale Variablen umwandeln . Hier ist ein kurzer Test . Durch
name
die Verwendung von a wird vermieden, dass globale Elemente und daraus resultierende Konflikte erstellt werden.Beispiel mit einem Namen:
Und der Zielanker:
quelle
name
undid
ist unterschiedlich.fineuploader
erstellen, können Sie dasfineuploader
Modul nicht verwenden . Wenn Sie vermeiden, unnötige globale Elemente zu erstellen, können Sie diese Konflikte vermeiden.Markdown-Anker unterstützt die Hash-Marke, sodass ein Link zu einem Anker auf der Seite einfach wäre
[Pookie](#pookie)
Das Generieren des Ankers wird in Gruber Markdown nicht unterstützt, sondern in anderen Implementierungen wie Markdown Extra .
In Markdown Extra wird die Anker-ID an eine Kopf- oder Unterüberschrift mit angehängt
{#pookie}
.Github Flavored Markdown auf Git-Repository-Seiten (jedoch nicht in Gists) generiert automatisch Anker mit mehreren Markup-Tags in allen Headern (h1, h2, h3 usw.), einschließlich:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(Dies ist für ein SVG-Link-Symbol, das beim Mouseover angezeigt wird.)Ausgenommen das Aria / SVG-Symbol, wenn man schreibt:
# Header Title
Github generiert:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Daher muss man nichts tun, um die Header-Links zu erstellen, und kann immer mit folgenden Links verknüpft werden:
[Header Title](#header-title)
quelle
In der ursprünglichen Markdown-Syntax gibt es keine sofort verfügbare Syntax, aber Markdown Extra bietet die Möglichkeit, Headern zumindest IDs zuzuweisen, mit denen Sie dann problemlos verknüpfen können. Beachten Sie auch, dass Sie sowohl in Markdown als auch in Markdown Extra reguläres HTML verwenden können und dass
name
dasid
Attribut in neueren HTML-Versionen durch das Attribut ersetzt wurde .quelle
Für alle, die nach einer Lösung für dieses Problem in GitBook suchen. So habe ich es gemacht (in GitBook). Sie müssen Ihren Header explizit wie folgt kennzeichnen:
Dann verlinke diesen Anker so
Eine Lösung und weitere Beispiele finden Sie hier: https://seadude.gitbooks.io/learn-gitbook/
quelle
Spät zur Party, aber ich denke, dieser Zusatz könnte für Leute nützlich sein, die mit ihm arbeiten
rmarkdown
. Esrmarkdown
gibt eine integrierte Unterstützung für Verweise auf Kopfzeilen in Ihrem Dokument.Beliebiger Header definiert durch
kann durch referenziert werden
Das Folgende ist eine minimale eigenständige
.rmd
Datei, die dieses Verhalten zeigt. Es kann an.pdf
und gestrickt werden.html
.quelle
Mit dem neuesten Markdown sollten Sie die folgende Syntax verwenden können:
[](){:name='anchorName'}
Dies sollte den folgenden HTML-Code erstellen:
<a name="anchorName"></a>
Wenn der Anker Text enthalten soll, fügen Sie einfach den Ankertext in eckige Klammern ein:
[Some Text](){:name='anchorName'}
quelle
Maruku
diese Syntax. Siehe das Babelmark.Für die meisten gängigen Abschriftengeneratoren. Sie haben einen einfachen selbst generierten Anker in jedem Header. Zum Beispiel bei Pandoc ist der generierte Anker ein Kebab-Fall-Slug Ihres Headers.
Je nachdem, welchen Markdown-Parser Sie verwenden, kann sich der Anker ändern (nehmen Sie das Beispiel der Antworten von symbolrush und La muerte Peluda, sie sind unterschiedlich!). In diesem Babelmark können Sie generierte Anker sehen, die von Ihrer Markdown-Implementierung abhängen .
quelle