Jekyll使用Markdown格式的链接,但我如何链接到内部内容?
[[link]]
答案 0 :(得分:225)
答案 1 :(得分:26)
对于网页they decided not to add a page_url
tag,因为您无论如何都必须知道网页的路径。所以你只需要手动链接到它:
[My page](/path/to/page.html)
如果你想以编程方式获得页面标题,你可以做一些大而丑的事情:
{% for page in site.pages %}
{% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
{% endif %}
{% endfor %}
答案 2 :(得分:24)
现在可以使用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 %})
答案 3 :(得分:7)
Jekyll有多种链接方式,其中一些现在已经过时了。
链接到内部文件的推荐方法是
[Link]({{ site.baseurl }}{% link path/to/file.md %})
请注意,如果文件移动或被删除,这将导致错误。
链接到页面而不会导致错误(改为链接断开):
[Link]({{ '/path/to/page/' | relative_url }})
请注意,您需要知道页面的永久链接并将其传递给relative_url
过滤器,以确保它以网站的基本网址为前缀。
页面的永久链接取决于配置文件中的permalink
设置和文件前面的permalink
键。
如果你想使用相对路径(并希望链接在GitHub的降价视图中工作),你应该使用jekyll-relative-links
。这使您可以编写如下链接:
[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
答案 4 :(得分:3)
如果内部内容位于同一页面上,则可以使用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)
如果您愿意,可以指定一个显式ID:
### My Funky Heading
{: #funky }
并链接到它
The funky text is [described below](#funky)
答案 5 :(得分:0)