tpl/urls: Add JoinPath template function

See https://pkg.go.dev/net/url#JoinPath

Closes #9694
This commit is contained in:
Joe Mooring
2023-04-14 13:27:16 -07:00
committed by Bjørn Erik Pedersen
parent 03cb38e6c6
commit 5b3e165bad
4 changed files with 102 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
---
title: urls.JoinPath
description: Joins the provided elements into a URL string and cleans the result of any ./ or ../ elements.
categories: [functions]
menu:
docs:
parent: functions
keywords: [urls,path,join]
signature: ["urls.JoinPath ELEMENT..."]
---
```go-html-template
{{ urls.JoinPath "" }} → "/"
{{ urls.JoinPath "a" }} → "a"
{{ urls.JoinPath "a" "b" }} → "a/b"
{{ urls.JoinPath "/a" "b" }} → "/a/b"
{{ urls.JoinPath "https://example.org" "b" }} → "https://example.org/b"
{{ urls.JoinPath (slice "a" "b") }} → "a/b"
```
Unlike the [`path.Join`] function, `urls.JoinPath` retains consecutive leading slashes.
[`path.Join`]: /functions/path.join/