HUGO
News Docs Themes Community GitHub

urls.AbsLangURL

Returns an absolute URL with a language prefix, if any.

Syntax

urls.AbsLangURL INPUT

Returns

string

Alias

absLangURL

Use this function with both monolingual and multilingual configurations. The URL returned by this function depends on:

  • Whether the input begins with a slash (/)
  • The baseURL in your site configuration
  • The language prefix, if any

This is the site configuration for the examples that follow:

defaultContentLanguage: en
defaultContentLanguageInSubdir: true
languages:
  en:
    weight: 1
  es:
    weight: 2
defaultContentLanguage = 'en'
defaultContentLanguageInSubdir = true
[languages]
  [languages.en]
    weight = 1
  [languages.es]
    weight = 2
{
   "defaultContentLanguage": "en",
   "defaultContentLanguageInSubdir": true,
   "languages": {
      "en": {
         "weight": 1
      },
      "es": {
         "weight": 2
      }
   }
}

Input does not begin with a slash

If the input does not begin with a slash, the path in the resulting URL will be relative to the baseURL in your site configuration.

When rendering the en site with baseURL = https://example.org/

{{ absLangURL "" }}           → https://example.org/en/
{{ absLangURL "articles" }}   → https://example.org/en/articles
{{ absLangURL "style.css" }}  → https://example.org/en/style.css

When rendering the en site with baseURL = https://example.org/docs/

{{ absLangURL "" }}           → https://example.org/docs/en/
{{ absLangURL "articles" }}   → https://example.org/docs/en/articles
{{ absLangURL "style.css" }}  → https://example.org/docs/en/style.css

Input begins with a slash

If the input begins with a slash, the path in the resulting URL will be relative to the protocol+host of the baseURL in your site configuration.

When rendering the en site with baseURL = https://example.org/

{{ absLangURL "/" }}          → https://example.org/en/
{{ absLangURL "/articles" }}  → https://example.org/en/articles
{{ absLangURL "/style.css" }} → https://example.org/en/style.css

When rendering the en site with baseURL = https://example.org/docs/

{{ absLangURL "/" }}          → https://example.org/en/
{{ absLangURL "/articles" }}  → https://example.org/en/articles
{{ absLangURL "/style.css" }} → https://example.org/en/style.css

As illustrated by the previous example, using a leading slash is rarely desirable and can lead to unexpected outcomes. In nearly all cases, omit the leading slash.