web-dev-qa-db-fra.com

jekyll markdown liens internes

Jekyll utilise des liens au format Markdown, mais comment puis-je créer un lien vers du contenu interne?

[[link]] 
128
JuanPablo

Vous pouvez maintenant 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 le Documentation Jekyll .

https://github.com/mojombo/jekyll/pull/369

230
Brett Hardin

Il est maintenant possible de créer des liens vers des pages autres que des publications en utilisant la balise link. 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 lorsque vous utilisez la balise link. 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 Documentation Jekyll .

28
elfxiong

Pour les pages, ils ont décidé de ne pas ajouter de page_url tag car il faudrait de toute façon connaître le chemin de la page. Il suffit donc d’y accéder 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 programmation:

{% for page in site.pages %}
  {% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
  {% endif %}
{% endfor %}
26
bmaupin

Il existe plusieurs façons de créer des liens dans Jekyll, dont certaines sont maintenant obsolètes.

Avec balises de lien

La méthode recommandée pour créer des liens vers des fichiers internes est la suivante:

[Link]({{ site.baseurl }}{% link path/to/file.md %})

Notez que cela provoquera une erreur si le fichier est déplacé ou est supprimé.

Avec des permaliens

Pour créer un lien vers une page sans provoquer d'erreurs (liens rompus):

[Link]({{ '/path/to/page/' | relative_url }})

Notez que vous devez ici connaître le permalien de la page et le passer par le relative_url filtre pour s'assurer qu'il est préfixé avec l'URL de base du site.

Le permalien d’une page dépend du paramètre permalink de votre fichier de configuration et de la touche permalink de l’avant du fichier.

Avec jekyll-relative-links

Si vous voulez utiliser des chemins relatifs (et que les liens fonctionnent dans la vue markdown 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)
7
qwtel

Si le contenu interne se trouve sur la même page, il est possible de s'y connecter en utilisant le auto_ids fonctionnalité. Vous activez ceci dans _config.yml:

kramdown:
    auto_ids: true

Lorsque cette option est activée, chaque en-tête obtient un id ref basé sur le texte de l’en-tête. Par exemple

### My Funky Heading

va devenir

<h3 id="my-funky-heading">My Funky Heading</h3>

Vous pouvez créer un lien vers cela depuis le même document en procédant comme suit:

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)
4
starfry