Files
hugo/content/functions/absurl.md
T
2017-02-26 19:27:05 -06:00

1.9 KiB

title, linktitle, description, godocref, date, publishdate, lastmod, categories, tags, signature, workson, hugoversion, relatedfuncs, deprecated, aliases
title linktitle description godocref date publishdate lastmod categories tags signature workson hugoversion relatedfuncs deprecated aliases
absurl absURL Given a string, prepends the full absolute URL according to position in file structure and the configured baseURL. 2017-02-01 2017-02-01 2017-02-01
functions
urls
relURL
false

Both absURL and relURL consider the configured value of baseURL in your site's config file. Given a baseURL set to http://yoursite.com/hugo/:

{{ "mystyle.css" | absURL }}  "http://yoursite.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 (SEO), 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 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 %}}