Improve url function examples

This commit is contained in:
Joe Mooring 2024-06-15 11:22:59 -07:00 committed by Joe Mooring
parent 89e6997f14
commit 18b8c79f33
4 changed files with 35 additions and 43 deletions

View File

@ -20,48 +20,44 @@ Use this function with both monolingual and multilingual configurations. The URL
- The `baseURL` in site configuration - The `baseURL` in site configuration
- The language prefix, if any - The language prefix, if any
In examples that follow, the project is multilingual with content in both Español (`es`) and English (`en`). The default language is Español. The returned values are from the English site. In examples that follow, the project is multilingual with content in both English (`en`) and Spanish (`es`). The returned values are from the English site.
### Input does not begin with a slash ### Input does not begin with a slash
If the input does not begin with a slash, the resulting URL will be correct regardless of the `baseURL`. 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.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`
```go-html-template ```go-html-template
{{ absLangURL "" }} https://example.org/en/ {{ absLangURL "" }} → https://example.org/en/
{{ absLangURL "articles" }} https://example.org/en/articles {{ absLangURL "articles" }} → https://example.org/en/articles
{{ absLangURL "style.css" }} https://example.org/en/style.css {{ absLangURL "style.css" }} → https://example.org/en/style.css
``` ```
With `baseURL = https://example.org/docs/` With `baseURL = https://example.org/docs/`
```go-html-template ```go-html-template
{{ absLangURL "" }} https://example.org/docs/en/ {{ absLangURL "" }} → https://example.org/docs/en/
{{ absLangURL "articles" }} https://example.org/docs/en/articles {{ absLangURL "articles" }} → https://example.org/docs/en/articles
{{ absLangURL "style.css" }} https://example.org/docs/en/style.css {{ absLangURL "style.css" }} → https://example.org/docs/en/style.css
``` ```
### Input begins with a slash ### Input begins with a slash
If the input begins with a slash, the resulting URL will be incorrect when the `baseURL` includes a subdirectory. With a leading slash, the function returns a URL relative to the protocol+host section of the `baseURL`. 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.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`
```go-html-template ```go-html-template
{{ absLangURL "/" }} → https://example.org/en/ {{ absLangURL "/" }} → https://example.org/en/
{{ absLangURL "/articles" }} → https://example.org/en/articles {{ absLangURL "/articles" }} → https://example.org/en/articles
{{ absLangURL "/style.css" }} → https://example.org/en/style.css {{ absLangURL "/style.css" }} → https://example.org/en/style.css
``` ```
With `baseURL = https://example.org/docs/` With `baseURL = https://example.org/docs/`
```go-html-template ```go-html-template
{{ absLangURL "/" }} → https://example.org/en/ {{ absLangURL "/" }} → https://example.org/en/
{{ absLangURL "/articles" }} → https://example.org/en/articles {{ absLangURL "/articles" }} → https://example.org/en/articles
{{ absLangURL "/style.css" }} → https://example.org/en/style.css {{ absLangURL "/style.css" }} → https://example.org/en/style.css
``` ```
{{% note %}}
The last three examples are not desirable in most situations. As a best practice, never include a leading slash when using this function.
{{% /note %}}

View File

@ -14,53 +14,49 @@ action:
aliases: [/functions/absurl] aliases: [/functions/absurl]
--- ---
With multilingual configurations, use the [`absLangURL`] function instead. The URL returned by this function depends on: With multilingual configurations, use the [`urls.AbsLangURL`] function instead. The URL returned by this function depends on:
- Whether the input begins with a slash - Whether the input begins with a slash
- The `baseURL` in site configuration - The `baseURL` in site configuration
### Input does not begin with a slash ### Input does not begin with a slash
If the input does not begin with a slash, the resulting URL will be correct regardless of the `baseURL`. 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.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`
```go-html-template ```go-html-template
{{ absURL "" }} https://example.org/ {{ absURL "" }} → https://example.org/
{{ absURL "articles" }} https://example.org/articles {{ absURL "articles" }} → https://example.org/articles
{{ absURL "style.css" }} https://example.org/style.css {{ absURL "style.css" }} → https://example.org/style.css
``` ```
With `baseURL = https://example.org/docs/` With `baseURL = https://example.org/docs/`
```go-html-template ```go-html-template
{{ absURL "" }} https://example.org/docs/ {{ absURL "" }} → https://example.org/docs/
{{ absURL "articles" }} https://example.org/docs/articles {{ absURL "articles" }} → https://example.org/docs/articles
{{ absURL "style.css" }} https://example.org/docs/style.css {{ absURL "style.css" }} → https://example.org/docs/style.css
``` ```
#### Input begins with a slash #### Input begins with a slash
If the input begins with a slash, the resulting URL will be incorrect when the `baseURL` includes a subdirectory. With a leading slash, the function returns a URL relative to the protocol+host section of the `baseURL`. 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.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`
```go-html-template ```go-html-template
{{ absURL "/" }} → https://example.org/ {{ absURL "/" }} → https://example.org/
{{ absURL "/articles" }} → https://example.org/articles {{ absURL "/articles" }} → https://example.org/articles
{{ absURL "/style.css" }} → https://example.org/style.css {{ absURL "/style.css" }} → https://example.org/style.css
``` ```
With `baseURL = https://example.org/docs/` With `baseURL = https://example.org/docs/`
```go-html-template ```go-html-template
{{ absURL "/" }} → https://example.org/ {{ absURL "/" }} → https://example.org/
{{ absURL "/articles" }} → https://example.org/articles {{ absURL "/articles" }} → https://example.org/articles
{{ absURL "/style.css" }} → https://example.org/style.css {{ absURL "/style.css" }} → https://example.org/style.css
``` ```
{{% note %}} [`urls.AbsLangURL`]: /functions/urls/abslangurl/
The last three examples are not desirable in most situations. As a best practice, never include a leading slash when using this function.
{{% /note %}}
[`absLangURL`]: /functions/urls/abslangurl/

View File

@ -46,7 +46,7 @@ With `baseURL = https://example.org/docs/`
#### Input begins with a slash #### Input begins with a slash
If the input begins with a slash, the resulting URL will be relative to the protocol+host portion of the `baseURL`. If the input begins with a slash, the resulting URL will be relative to the protocol+host of the `baseURL` in your site configuration.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`

View File

@ -14,7 +14,7 @@ action:
aliases: [/functions/relurl] aliases: [/functions/relurl]
--- ---
With multilingual configurations, use the [`relLangURL`] function instead. The URL returned by this function depends on: With multilingual configurations, use the [`urls.RelLangURL`] function instead. The URL returned by this function depends on:
- Whether the input begins with a slash - Whether the input begins with a slash
- The `baseURL` in your site configuration - The `baseURL` in your site configuration
@ -43,7 +43,7 @@ With `baseURL = https://example.org/docs/`
#### Input begins with a slash #### Input begins with a slash
If the input begins with a slash, the resulting URL will be relative to the protocol+host portion of the `baseURL`. If the input begins with a slash, the resulting URL will be relative to the protocol+host of the `baseURL` in your site configuration.
With `baseURL = https://example.org/` With `baseURL = https://example.org/`
@ -61,4 +61,4 @@ With `baseURL = https://example.org/docs/`
{{ relURL "/style.css" }} → /style.css {{ relURL "/style.css" }} → /style.css
``` ```
[`relLangURL`]: /functions/urls/rellangurl/ [`urls.RelLangURL`]: /functions/urls/rellangurl/