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