Jekyll verwendet Markdown-formatierte Links, aber wie kann ich auf interne Inhalte verlinken?
[[link]]
Jekyll verwendet Markdown-formatierte Links, aber wie kann ich auf interne Inhalte verlinken?
[[link]]
Antworten:
Sie können jetzt interne Links verwenden, indem Sie Folgendes verwenden:
[Some Link]({% post_url 2010-07-21-name-of-post %})
Dies wird auch in der Jekyll-Dokumentation erwähnt .
[Title of post](/correct/permalink)
mit einem einzigen Befehl zu rendern ? Ich konnte es nur mit einer zu ausführlichen Filterung tun.
Es ist jetzt möglich, mithilfe des link
Tags auf andere Seiten als Beiträge zu verlinken . link
Funktioniert für Beiträge, Seiten, Dokumente in einer Sammlung und Dateien.
{{ site.baseurl }}{% link _collection/name-of-document.md %}
{{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %}
{{ site.baseurl }}{% link news/index.html %}
{{ site.baseurl }}{% link /assets/files/doc.pdf %}
Denken Sie daran, die Dateierweiterung anzugeben, wenn Sie das link
Tag verwenden. So erstellen Sie einen Link:
[Link to a document]({{ site.baseurl }}{% link _collection/name-of-document.md %})
[Link to a post]({{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({{ site.baseurl }}{% link news/index.html %})
[Link to a file]({{ site.baseurl }}{% link /assets/files/doc.pdf %})
Siehe Jekyll-Dokumentation .
{{ site.baseurl }}
da es den Basiswert in der generierten href verdoppelt. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
Für Seiten haben sie beschlossen, kein page_url
Tag hinzuzufügen, da Sie den Pfad der Seite sowieso kennen müssten. Sie müssen also nur manuell darauf verlinken:
[My page](/path/to/page.html)
Oder Sie können so etwas Großes und Hässliches tun, wenn Sie den Titel der Seite programmgesteuert abrufen möchten:
{% for page in site.pages %}
{% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
{% endif %}
{% endfor %}
Befindet sich der interne Inhalt auf derselben Seite, kann über die auto_ids
Funktion eine Verknüpfung hergestellt werden . Sie aktivieren dies in _config.yml
:
kramdown:
auto_ids: true
Wenn diese Option aktiviert ist, erhält jede Überschrift eine id
Referenz basierend auf dem Überschriftentext. Beispielsweise
### My Funky Heading
wird werden
<h3 id="my-funky-heading">My Funky Heading</h3>
Sie können aus demselben Dokument heraus darauf verlinken, indem Sie Folgendes tun:
The funky text is [described below](#my-funky-heading)
Sie können eine explizite ID zuweisen, wenn Sie Folgendes bevorzugen:
### My Funky Heading
{: #funky }
und verlinke darauf
The funky text is [described below](#funky)
In Jekyll gibt es mehrere Verknüpfungsmöglichkeiten, von denen einige mittlerweile veraltet sind.
Die empfohlene Methode zum Verknüpfen mit internen Dateien ist
[Link]({{ site.baseurl }}{% link path/to/file.md %})
Beachten Sie, dass dies einen Fehler verursacht, wenn die Datei verschoben oder gelöscht wird.
So verlinken Sie auf eine Seite, ohne Fehler zu verursachen (stattdessen defekte Links):
[Link]({{ '/path/to/page/' | relative_url }})
Beachten Sie, dass Sie hier den Permalink der Seite kennen und ihn durch den relative_url
Filter führen müssen, um sicherzustellen, dass der Basis-URL der Site ein Präfix vorangestellt ist.
Der Permalink einer Seite hängt von der permalink
Einstellung in Ihrer Konfigurationsdatei und dem permalink
Schlüssel im vorderen Bereich der Datei ab.
Wenn Sie relative Pfade verwenden möchten (und möchten, dass die Links in der Markdown-Ansicht von GitHub funktionieren), sollten Sie diese verwenden jekyll-relative-links
. Auf diese Weise können Sie Links schreiben wie:
[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
Stellen Sie sich vor, dies ist Ihr Projektverzeichnis:
Gehen Sie wie folgt vor, um "index.md" mit einer Datei im Ordner "blog" mit dem Namen "20190920-post1.md" zu verknüpfen:
Fügen Sie Folgendes hinzu:
[beliebiger Text] (./ relativer Pfad)
Beispielsweise:
- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)
Ausgabe: