Jekyll使用Markdown格式的链接,但我如何链接到内部内容?
[[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的值翻倍。可以用{% link _posts/2016-07-26-name-of-post.md %}
来链接到一个文章。 - oleksa对于页面,他们决定不添加一个 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 %}
{% link ... %}
标签建议使用,因为它有助于确保链接正确生成,并且如果链接损坏会给出错误提示。请参阅 https://jekyllrb.com/docs/liquid/tags/#link - Simon Eastauto_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)
如果您愿意,可以分配一个明确的ID:
### 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
设置和文件的front matter中的permalink
键。jekyll-relative-links
。这使您可以编写如下链接:[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
.md
文件的链接并没有将其转换为.html
,那么应该激活插件https://github.com/benbalter/jekyll-relative-links。 - kopporJekyll 3.9.x 中的工作:
在 HTML 中:
<a href="{{ '/blog/' | relative_url }}">链接到博客</a>
Jekyll不知道你想要包含哪篇文章,所以你需要包含完整的文件名。 你不需要包含文件的扩展名。
日期提醒
请注意文件名和输出在<p>
标签内的日期类别是不同的。这是因为文章在Front Matter中有一个不同的日期。当页面渲染为HTML时,它会查看Front Matter中的日期。
{% post_url 2023-09-28-test-page %}
<!-- outputs this -->
<p>/2023/01/02/test-page.html</p>
您需要用括号(
和)
将Liquid包裹起来,并使用[
]
来包含您的锚文本。
[A Test Page]({% post_url 2023-09-28-test-page %})
<!-- outputs this -->
<p><a href="/2023/01/02/test-page.html">A Test Page</a></p>
如果在链接后重命名您的文章文件,Jekyll将会报错。
Error: Could not find post "2023-09-28-test-page" in tag 'post_url'.
Make sure the post exists and the name is correct.
Error: Run jekyll build --trace for more information.
您可以使用花括号来包含您的属性。请注意冒号在开头。
[A Test Page]({% post_url 2023-09-28-test-page %}){:target="_blank"}
<!-- outputs this -->
<p><a href="/2023/01/02/test-23-page.html" target="_blank">A Test Page</a></p>
要包含更多属性,您可以像常规的HTML属性一样添加它们,后面跟一个空格。
[A Test Page]({% post_url 2023-09-28-test-page %}){:target="_blank" class="active"}
<!-- outputs this -->
<p><a href="/2023/01/02/test-23-page.html" target="_blank" class="active">A Test Page</a></p>
[帖子标题](/正确的永久链接)
?我只能通过过滤来实现,但这太冗长了。 - Ciro Santilli OurBigBook.com[pivot]({% post_url 2015-02-03-pivot.md %})
-- 使用了post_url
和文件扩展名。 - Amanda