внутренние ссылки уценки Джекилла - PullRequest
125 голосов
/ 07 января 2011

Jekyll использует ссылки в формате Markdown, но как я могу ссылаться на внутренний контент?

[[link]] 

Ответы [ 5 ]

228 голосов
/ 08 февраля 2012

Теперь вы можете размещать внутренние ссылки, используя следующее:

[Some Link]({% post_url 2010-07-21-name-of-post %})

На это также ссылаются в документации Jekyll .

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

26 голосов
/ 19 декабря 2016

Теперь можно ссылаться на страницы, отличные от сообщений, используя тег link.link работает с записями, страницами, документами в коллекции и файлами.

{{ 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 %}

Не забудьте указать расширение файла при использовании тега 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 %})

См. Документация Jekyll .

26 голосов
/ 23 декабря 2014

Для страниц они решили не добавлять тег page_url , потому что вам все равно придется знать путь к странице.Так что вам просто нужно сделать ссылку на него вручную:

[My page](/path/to/page.html)

Или вы можете сделать что-то большое и безобразное, как это, если вы хотите программно получить заголовок страницы:

{% for page in site.pages %}
  {% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
  {% endif %}
{% endfor %}
7 голосов
/ 03 ноября 2017

Существует несколько способов создания ссылок в Jekyll, некоторые из которых уже устарели.

С тегами ссылок

Рекомендуемый способ ссылки на внутренние файлы:

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

Обратите внимание, что это приведет к ошибке, если файл будет перемещен или удален.

С постоянными ссылками

Чтобы перейти на страницу без ошибок (вместо этого неработающие ссылки):

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

Обратите внимание, что здесь вам нужно знать постоянную ссылку на страницу и пропустить ее через фильтр relative_url, чтобы убедиться, что перед ней стоит префикс базового URL сайта.

Постоянная ссылка на страницу зависит от настройки permalink в вашем файле конфигурации и клавиши permalink в начале файла.

С jekyll -lative-links

Если вы хотите использовать относительные пути (и хотите, чтобы ссылки работали в режиме уценки GitHub), вы должны использовать jekyll-relative-links.Это позволяет вам писать ссылки как:

[Link](./path/to/file.md)

[Link to file in parent folder](../file.md)
3 голосов
/ 31 января 2018

Если внутреннее содержимое находится на той же странице, то на него можно сделать ссылку, используя функцию auto_ids. Вы включаете это в _config.yml:

kramdown:
    auto_ids: true

Если этот параметр включен, каждый заголовок получает ссылку id на основе текста заголовка. Например

### My Funky Heading

станет

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

Вы можете сделать ссылку на это из одного и того же документа, выполнив что-то вроде этого:

The funky text is [described below](#my-funky-heading)

Вы можете назначить явный идентификатор, если предпочитаете:

### My Funky Heading
{: #funky }

и ссылка на него

The funky text is [described below](#funky)
...