Jekyll использует ссылки в формате Markdown, но как я могу ссылаться на внутренний контент?
[[link]]
Jekyll использует ссылки в формате Markdown, но как я могу ссылаться на внутренний контент?
[[link]]
Теперь вы можете публиковать внутренние ссылки, используя следующее:
[Some Link]({% post_url 2010-07-21-name-of-post %})
Об этом также говорится в документации Jekyll.
Теперь можно ссылаться на страницы, отличные от постов, используя тег 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 %})
Для страниц они решили не добавлять тег 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 %}
В Jekyll существует несколько способов создания ссылок, некоторые из которых уже устарели.
Рекомендуемый способ ссылки на внутренние файлы:
[Link]({{ site.baseurl }}{% link path/to/file.md %})
Обратите внимание, что это приведет к ошибке, если файл перемещается или удаляется.
Чтобы создать ссылку на страницу без ошибок (вместо этого неработающие ссылки):
[Link]({{ '/path/to/page/' | relative_url }})
Обратите внимание, что здесь вам нужно знать постоянную ссылку страницы и передать его через relative_url
фильтр, чтобы убедиться, что он предваряется с базовым URL сайта.
Постоянная ссылка на страницу зависит от настройки permalink
в вашем конфигурационном файле и ключа permalink
в permalink
файла.
Если вы хотите использовать относительные пути (и хотите, чтобы ссылки работали в режиме разметки GitHub), вам следует использовать jekyll-relative-links
. Это позволяет вам писать ссылки, такие как:
[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
Если внутреннее содержимое находится на той же странице, то на него можно ссылаться с помощью функции 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)
Представьте, что это каталог вашего проекта:
Чтобы связать "index.md" с файлом в папке "blog" с именем "20190920-post1.md", выполните следующие действия:
Добавьте следующее:
[любой текст] (./относительный путь)
Например:
- [Sept 20th 2019 - Kikucare Journey](./blog/20190920-post1.md)
Выход: