# Using goldmark renderHooks.link with multilingual

**URL:** <https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696>\
**Category:** support\
**Created:** [February 7, 2026, 5:13pm UTC](https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696 "2026-02-07T17:13:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![patdavid](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/patdavid/32/9203_2.png) [@patdavid](https://discourse.gohugo.io/u/patdavid)\
**Post date:** [February 7, 2026, 5:13pm UTC](https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696/1 "2026-02-07T17:13:30Z")

</div>

Hi all!

As I understand [`useEmbedded = auto`](https://gohugo.io/render-hooks/links/#embedded) with `[markup.goldmark.renderHooks.link]`:

> The embedded link render hook resolves internal Markdown destinations by looking for a matching page, falling back to a matching [page resource](https://gohugo.io/quick-reference/glossary/#page-resource), then falling back to a matching [global resource](https://gohugo.io/quick-reference/glossary/#global-resource). Remote destinations are passed through, and the render hook will not throw an error or warning if unable to resolve a destination.

For a multilingual site we have been using markdown links like `[a link]({{< relref "/page" >}}`.

This works well if I have a translation of that page, such that links will stay in the correct lang.

```auto
content
├── getting_started
│ ├── index.fr.md
│ └── index.md
├── apage
│ ├── index.fr.md
│ └── index.md

```

**apage/index.fr.md**

```auto
[a link]({{< relref "/getting_started" >}})

```

will link to the page `SITE/fr/getting_started`.  
while  
**apage/index.md**

```auto
[a link]({{< relref "/getting_started" >}})

```

will link to the page `SITE/getting_started`.

I was under the impression that using the renderHooks.link with `useEmbedded = auto` would allow me to use simpler markdown links and still have things work similar to `relref`.

But:  
**apage/index.fr.md**

```auto
[a link](/getting_started>)

```

will link to the page `SITE/getting_started`. (as opposed to `SITE/fr/getting_started`).

Was I mistaken or is there a configuration perhaps that I’m missing somewhere?

Relevant lang section of `hugo.toml`:

```toml
...
[languages]
  [languages.en]
    languageCode = 'en-US'
    languageName = 'English'
    timeZone = 'America/New_York'
    title = 'RawPedia'
    weight = 1
    [languages.en.pagination]
      path = 'page'
  [languages.fr]
    languageCode = 'fr'
    languageName = 'Français'
    timeZone = 'America/New_York'
    title = 'RawPedia'
    weight = 1
    [languages.fr.pagination]
      path = 'page'
...

```

---

<div class="post-metadata">

**Author:** ![jmooring](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/jmooring/32/4214_2.png) [@jmooring](https://discourse.gohugo.io/u/jmooring)\
**Post date:** [February 7, 2026, 6:33pm UTC](https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696/2 "2026-02-07T18:33:31Z")

</div>

I am unable to reproduce any unexpected behavior, but maybe this test site is missing something:

```plaintext
git clone --single-branch -b hugo-forum-topic-56696 https://github.com/jmooring/hugo-testing hugo-forum-topic-56696
cd hugo-forum-topic-56696
hugo server

```

Notice that the site configuration doesn’t contain any render hook settings; it doesn’t need to. The embedded link and image render hooks are automatically enabled for multilingual single-host projects provided that [`duplicateResourceFiles`](https://gohugo.io/configuration/markup/#duplicateresourcefiles) is `false` (the default).

* * *

Also note: if you continue to use the `relref` shortcode, be sure to call it using the Markdown notation. See [examples](https://gohugo.io/shortcodes/relref/#examples).

---

<div class="post-metadata">

**Author:** ![patdavid](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/patdavid/32/9203_2.png) [@patdavid](https://discourse.gohugo.io/u/patdavid)\
**Post date:** [February 8, 2026, 3:38am UTC](https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696/3 "2026-02-08T03:38:17Z")

</div>

Well, thanks (yet _again_) for the help. 🙂 Your example worked perfectly.

I set `useEmbedded = always` and it helped me discover some poorly formatted markdown links that might have been causing the issue.

[edit]: after further hunting, my theme had defined a custom render-link.html which is why it was working with `always` but failing with `auto`. Duh. 🤪

---

<div class="post-metadata">

**Author:** ![system](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/system/32/1_2.png) [@system](https://discourse.gohugo.io/u/system)\
**Post date:** [February 10, 2026, 3:39am UTC](https://discourse.gohugo.io/t/using-goldmark-renderhooks-link-with-multilingual/56696/4 "2026-02-10T03:39:02Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
