Jekyll utilise des liens au format Markdown, mais comment puis-je créer un lien vers du contenu interne?
[[link]]
Jekyll utilise des liens au format Markdown, mais comment puis-je créer un lien vers du contenu interne?
[[link]]
Réponses:
Vous pouvez désormais publier des liens internes en utilisant les éléments suivants:
[Some Link]({% post_url 2010-07-21-name-of-post %})
Ceci est également référencé dans la documentation Jekyll .
[Title of post](/correct/permalink)
avec une seule commande? Je ne pourrais le faire qu'avec un filtrage trop détaillé.
Il est désormais possible de créer un lien vers des pages autres que des articles en utilisant la link
balise. link
fonctionne pour les articles, les pages, les documents d'une collection et les fichiers.
{{ 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 %}
N'oubliez pas d'inclure l'extension de fichier lors de l'utilisation de la link
balise. Pour l'utiliser pour créer un lien:
[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 %})
Voir la documentation Jekyll .
{{ site.baseurl }}
découvrir qu'il n'est pas nécessaire d'utiliser car il double la valeur baseurl dans le href généré. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
Pour les pages, ils ont décidé de ne pas ajouter de page_url
balise car il fallait de toute façon connaître le chemin de la page. Il vous suffit donc de le lier manuellement:
[My page](/path/to/page.html)
Ou vous pouvez faire quelque chose de grand et de laid comme celui-ci si vous voulez obtenir le titre de la page par programme:
{% for page in site.pages %}
{% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
{% endif %}
{% endfor %}
Si le contenu interne est sur la même page, il est possible de créer un lien vers celui-ci à l'aide de la auto_ids
fonctionnalité. Vous activez ceci dans _config.yml
:
kramdown:
auto_ids: true
Lorsque cette option est activée, chaque titre obtient une id
référence basée sur le texte du titre. Par exemple
### My Funky Heading
va devenir
<h3 id="my-funky-heading">My Funky Heading</h3>
Vous pouvez créer un lien vers celui-ci à partir du même document en faisant quelque chose comme ceci:
The funky text is [described below](#my-funky-heading)
Vous pouvez attribuer un identifiant explicite si vous préférez:
### My Funky Heading
{: #funky }
et un lien vers celui-ci
The funky text is [described below](#funky)
Il existe plusieurs façons de créer des liens dans Jekyll, dont certaines sont désormais obsolètes.
La méthode recommandée pour créer un lien vers des fichiers internes est
[Link]({{ site.baseurl }}{% link path/to/file.md %})
Notez que cela provoquera une erreur si le fichier se déplace ou est supprimé.
Pour créer un lien vers une page sans provoquer d'erreurs (liens rompus à la place):
[Link]({{ '/path/to/page/' | relative_url }})
Notez qu'ici vous devez connaître le permalien de la page et le passer à travers le relative_url
filtre pour vous assurer qu'il est préfixé avec l'url de base du site.
Le lien permanent d'une page dépend du permalink
paramètre dans votre fichier de configuration et de la permalink
clé dans l'avant-plan du fichier.
Si vous souhaitez utiliser des chemins relatifs (et que les liens fonctionnent dans la vue de démarquage de GitHub), vous devez utiliser jekyll-relative-links
. Cela vous permet d'écrire des liens comme:
[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
Imaginez qu'il s'agit du répertoire de votre projet:
Pour lier «index.md» à un fichier dans le dossier «blog» appelé «20190920-post1.md», procédez comme suit:
Ajoutez ce qui suit:
[n'importe quel texte] (./ chemin relatif)
Par exemple:
- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)
Production: