summaryrefslogtreecommitdiffstats
path: root/docs/content/en/functions/relurl.md
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-05-04 09:44:59 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-05-04 09:44:59 +0200
commit914cc85e22af2e6c28f24a5fc70de94e4b9f1b1b (patch)
treee7b5fcc856003415c613312c80ba2f301eeae03c /docs/content/en/functions/relurl.md
parenta6816db77574ba3d48a6414c97a53a691c34e705 (diff)
parent83bef6955e014d40c0f00db9cebe09113154e999 (diff)
Diffstat (limited to 'docs/content/en/functions/relurl.md')
-rw-r--r--docs/content/en/functions/relurl.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/content/en/functions/relurl.md b/docs/content/en/functions/relurl.md
new file mode 100644
index 000000000..aa1536544
--- /dev/null
+++ b/docs/content/en/functions/relurl.md
@@ -0,0 +1,51 @@
+---
+title: relURL
+description: Given a string, prepends the relative URL according to a page's position in the project directory structure.
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [urls]
+signature: ["relURL INPUT"]
+workson: []
+hugoversion:
+relatedfuncs: [absURL]
+deprecated: false
+aliases: []
+---
+
+Both `absURL` and `relURL` consider the configured value of `baseURL` in your site's [`config` file][configuration]. Given a `baseURL` set to `https://example.com/hugo/`:
+
+```
+{{ "mystyle.css" | absURL }} → "https://example.com/hugo/mystyle.css"
+{{ "mystyle.css" | relURL }} → "/hugo/mystyle.css"
+{{ "http://gohugo.io/" | relURL }} → "http://gohugo.io/"
+{{ "http://gohugo.io/" | absURL }} → "http://gohugo.io/"
+```
+
+The last two examples may look strange but can be very useful. For example, the following shows how to use `absURL` in [JSON-LD structured data for SEO][jsonld] where some of your images for a piece of content may or may not be hosted locally:
+
+{{< code file="layouts/partials/schemaorg-metadata.html" download="schemaorg-metadata.html" >}}
+<script type="application/ld+json">
+{
+ "@context" : "http://schema.org",
+ "@type" : "BlogPosting",
+ "image" : {{ apply .Params.images "absURL" "." }}
+}
+</script>
+{{< /code >}}
+
+The above uses the [apply function][] and also exposes how the Go template parser JSON-encodes objects inside `<script>` tags. See [the safeJS template function][safejs] for examples of how to tell Hugo not to escape strings inside of such tags.
+
+{{% note "Ending Slash" %}}
+`absURL` and `relURL` are smart about missing slashes, but they will *not* add a closing slash to a URL if it is not present.
+{{% /note %}}
+
+[apply function]: /functions/apply/
+[configuration]: /getting-started/configuration/
+[jsonld]: https://developers.google.com/search/docs/guides/intro-structured-data
+[safejs]: /functions/safejs