168

Jekyll 使用 Markdown 格式的链接,但我如何链接到内部内容?

[[link]] 
4

6 回答 6

276

您现在可以使用以下方式发布内部链接:

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

Jekyll 文档中也提到了这一点。

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

于 2012-02-08T14:47:38.097 回答
66

现在可以使用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 文档

于 2016-12-18T21:42:23.433 回答
26

对于页面,他们决定不添加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 %}
于 2014-12-23T16:26:58.787 回答
24

如果内部内容在同一页面上,则可以使用该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)
于 2018-01-31T10:29:48.027 回答
9

Jekyll 中有多种链接方式,其中一些现在已经过时了。

带有链接标签

链接到内部文件的推荐方法是

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

请注意,如果文件移动或被删除,这将导致错误。

带有固定链接

要链接到一个页面而不会导致错误(而不是断开的链接):

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

请注意,这里您需要知道页面的永久链接并将其通过relative_url过滤器以确保它以站点的基本 url 为前缀。

页面的永久链接取决于permalink配置文件中的设置和文件permalink前面的键。

使用 jekyll 相对链接

如果你想使用相对路径(并且希望链接在 GitHub 的 markdown 视图中工作),你应该使用jekyll-relative-links. 这使您可以编写如下链接:

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

[Link to file in parent folder](../file.md)
于 2017-11-03T14:58:26.560 回答
2

想象这是您的项目目录:

项目目录

要将“index.md”链接到文件夹“blog”中名为“20190920-post1.md”的文件,请执行以下操作:

  1. 打开文件“index.md”。
  2. 添加以下内容:

    [任何文本](./相对路径)

例如:

- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)

输出:

在此处输入图像描述

于 2019-09-20T11:03:20.903 回答