HUGO
Menu
GitHub 87548 stars Mastodon

Hugo Ref 短代碼

使用 ref 短代碼插入給定頁面引用的永久鏈接。

要覆蓋 Hugo 內置的 ref 短代碼,請將 源代碼 復制到 layouts/_shortcodes 目錄中同名文件中。

使用 Markdown 時,此短代碼已過時。相反,要正確解析 Markdown 鏈接目標,請使用 嵌入式鏈接渲染鉤子 或創建你自己的。

在默認配置中,Hugo 自動為多語言單主機站點使用嵌入式鏈接渲染鉤子,特別是當 共享頁面資源復制 功能被禁用時。這是此類站點的默認行為。如果你的項目、模塊或主題定義了自定義鏈接渲染鉤子,則會使用這些鉤子。

你還可以配置 Hugo always 使用嵌入式鏈接渲染鉤子、僅作為 fallback 使用,或 never 使用。詳見 配置說明

用法

ref 短代碼接受單個位置參數(路徑)或一個或多個命名參數,如下所列。

參數

path
(string) 目標頁面的路徑。沒有前導斜槓 (/) 的路徑首先相對於當前頁面解析,然後相對於站點其余部分解析。
lang
(string) 目標頁面的語言。默認為當前語言。可選。
outputFormat
(string) 目標頁面的輸出格式。默認為當前輸出格式。可選。

示例

ref 短代碼通常為 Markdown 鏈接提供目標。

調用此短代碼時始終使用 Markdown 標記法

以下示例顯示站點英文版本頁面上的渲染輸出:

[鏈接 A]({{% ref "/books/book-1" %}})

[鏈接 B]({{% ref path="/books/book-1" %}})

[鏈接 C]({{% ref path="/books/book-1" lang="de" %}})

[鏈接 D]({{% ref path="/books/book-1" lang="de" outputFormat="json" %}})

渲染後:

<a href="https://example.org/en/books/book-1/">鏈接 A</a>

<a href="https://example.org/en/books/book-1/">鏈接 B</a>

<a href="https://example.org/de/books/book-1/">鏈接 C</a>

<a href="https://example.org/de/books/book-1/index.json">鏈接 D</a>

錯誤處理

默認情況下,如果 Hugo 無法解析路徑,它將拋出錯誤並使構建失敗。您可以在站點配置中將其更改為警告,並指定在無法解析路徑時返回的 URL。

refLinksErrorLevel: warning
refLinksNotFoundURL: /some/other/url
refLinksErrorLevel = 'warning'
refLinksNotFoundURL = '/some/other/url'
{
   "refLinksErrorLevel": "warning",
   "refLinksNotFoundURL": "/some/other/url"
}

Last updated: January 1, 0001
Improve this page