--- title: Links and cross references description: Shortcodes for creating links to documents. categories: [content management] keywords: [cross references,references,anchors,urls] menu: docs: parent: content-management weight: 170 weight: 170 toc: true aliases: [/extras/crossreferences/] --- The `ref` and `relref` shortcodes display the absolute and relative permalinks to a document, respectively. ## Use of `ref` and `relref` The `ref` and `relref` shortcodes require a single argument: the path to a content document, with or without a file extension, with or without an anchor. Paths without a leading `/` are first resolved relative to the current page, then to the remainder of the site. ```text . └── content ├── about | ├── _index.md | └── credits.md ├── pages | ├── document1.md | └── document2.md // has anchor #anchor ├── products | └── index.md └── blog └── my-post.md ``` The pages can be referenced as follows: ```text {{* ref "document2" */>}} <-- From pages/document1.md, relative path {{* ref "document2#anchor" */>}} {{* ref "document2.md" */>}} {{* ref "document2.md#anchor" */>}} {{* ref "#anchor" */>}} <-- From pages/document2.md {{* ref "/blog/my-post" */>}} <-- From anywhere, absolute path {{* ref "/blog/my-post.md" */>}} {{* relref "document" */>}} {{* relref "document.md" */>}} {{* relref "#anchor" */>}} {{* relref "/blog/my-post.md" */>}} ``` index.md can be reference either by its path or by its containing folder without the ending `/`. \_index.md can be referenced only by its containing folder: ```text {{* ref "/about" */>}} <-- References /about/_index.md {{* ref "/about/_index" */>}} <-- Raises REF_NOT_FOUND error {{* ref "/about/credits.md" */>}} <-- References /about/credits.md {{* ref "/products" */>}} <-- References /products/index.md {{* ref "/products/index" */>}} <-- References /products/index.md ``` To generate a hyperlink using `ref` or `relref` in Markdown: ```text [About]({{* ref "/about" */>}} "About Us") ``` Hugo emits an error or warning if a document cannot be uniquely resolved. The error behavior is configurable; see below. ### Link to another language version Using `ref` or `relref` without specifying a language, will make the reference resolve to the language of the current content page. To link to another language version of a document, use this syntax: ```text {{* relref path="document.md" lang="ja" */>}} ``` ### Get another output format To link to another Output Format of a document, use this syntax: ```text {{* relref path="document.md" outputFormat="rss" */>}} ``` ### Heading IDs When using Markdown document types, Hugo generates element IDs for every heading on a page. For example: ```text ## Reference ``` produces this HTML: ```html