在Hugo/Markdown中链接页面

23

我是HUGO (http://gohugo.io/)静态网站生成器的新手。我正在本地运行Hugo服务器,可通过localhost:1313访问。我试图在两个不同部分中链接页面,我的“feature.md”文件需要链接到“grid_modules.md”,反之亦然。以下是Hugo生成的站点中两个文件的目录结构。

~/mysite/content/about/feature.md

~/mysite/content/modules/grid_modules.md

最佳的链接方法是什么?我尝试的如下所示:

feature.md中:

"[grid_modules] (../modules/grid_modules)"

如果我尝试访问此链接,我会在“localhost:1313/about/modules/grid_modules”处收到错误提示,我知道这是错误的位置。

我在链接中缺少了什么?为什么我没有得到"localhost:1313/modules/grid_modules"


您还可以查看文档(https://gohugo.io/content-management/cross-references/),其中提供了许多示例,演示如何在不仅限于Markdown的各种语言环境下实现交叉引用。 - geneowak
4个回答

22

本答案基于bep提供的answer。那个答案是正确的,但不是很清晰(因为我读了很多次并尝试了不同的方法才找到解决方案)。

如先前所述:

页面的URL取决于您的URL配置(通过https://gohugo.io/extras/permalinks/或直接在单个页面上设置为URL)。

您可以在您的markdown中使用refrelref标记,以便链接解析到正确的URL。

对于您的示例,这将看起来像以下之一(具体取决于您想要绝对URL还是相对URL):

[grid_modules] ( {{< relref "modules/grid_modules" >}})
[grid_modules] ( {{< ref "modules/grid_modules" >}})

看起来这个不支持引用格式? 即 [my_link][id][id]: {{< relref "otherpage.md" >}} "my title text" - BlueCacti

8

8
我遇到了同样的问题,并找到了以下更简单的解决方案。当在content/页面下使用[text](/url/path)表单指定url时,/url/path的根目录实际上是content/(或者在渲染的站点中是public/)。因此,要从“~/mysite/content/about/feature.md”中链接到“~/mysite/content/modules/grid_modules.md”,你只需在“feature.md”中写入即可。
[grid_modules](/modules/grid_modules)

2
这很简单,但是如果您更改目标页面的URL,则不会收到链接已损坏的警报。而使用ref或relref将触发警报。 - Jeremie

2

如果你想在Markdown中浏览不同的文章,你可以使用以下方法:

[关于]({{< ref "/page/about" >}})

请注意:

  1. 使用双引号("")来引用相对路径。
  2. 在相对路径前面添加斜杠/
  3. 相对路径始于根目录。对于一些Hugo模板,它可能是/content/posts/xxx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接