Update introduction.md

This commit is contained in:
Bjørn Erik Pedersen authored and GitHub committed 2021-12-10 13:27:31 +01:00
1 parent fa8758122d
commit a39a532d50
1 file changed
+33 -20
+33 -20
View File
@@ -16,22 +16,36 @@ draft: false
aliases: [/assets/] aliases: [/assets/]
--- ---
### Asset directory ## Get Resource with resources.Get
Asset files must be stored in the asset directory. This is `/assets` by default, but can be configured via the configuration file's `assetDir` key. In order to process an asset with Hugo Pipes, it must be retrieved as a `Resource` using `resources.Get`. The first argument can be either a local the path to file relative to the `asset` directory/directories or a remote URL.
### From file or URL to resource
In order to process an asset with Hugo Pipes, it must be retrieved as a resource using `resources.Get`. The first argument can be the filepath of the file relative to the asset directory or the URL of the file.
```go-html-template ```go-html-template
{{ $style := resources.Get "sass/main.scss" }} {{ $local := resources.Get "sass/main.scss" }}
{{ $remoteStyle := resources.Get "https://www.example.com/styles.scss" }} {{ $remote := resources.Get "https://www.example.com/styles.scss" }}
``` ```
#### Request options `resources.Get` will always return `nil` if the resource could not be found.
When using an URL, the `resources.Get` function takes an optional options map as the last argument, e.g.: ### Error Handling
{{ new-in "0.90.1" }}
The return value from `resources.Get` includes an `.Err` method that will be set if the call failed. If you want to just log any error as a `WARNING` you can use a construct similar to the one below.
```htmlbars
{{ with resources.Get "https://gohugo.io/images/gohugoio-card-1.png" }}
{{ with .Err }}
{{ warnf "%s" . }}
{{ else }}
<img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}
{{ end }}
```
### Remote Options
When fetching a remote `Resource`, `resources.Get` takes an optional options map as the last argument, e.g.:
``` ```
{{ $resource := resources.Get "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }} {{ $resource := resources.Get "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }}
@@ -55,21 +69,20 @@ You can also change the request method and set the request body:
)}} )}}
``` ```
#### Cache of remote resources ### Caching of Remote Resources
Each downloaded URL will be cached in the default folder `$TMPDIR/hugo_cache/`. The variable `$TMPDIR` will be resolved to your system-dependent temporary directory. Remote resources fetched with `resources.Get` will be cached on disk. See [Configure File Caches](/getting-started/configuration/#configure-file-caches) for details.
With the command-line flag `--cacheDir`, you can specify any folder on your system as a caching directory. ## Asset directory
You can also set `cacheDir` or `caches.getresource` in the [main configuration file][config]. Asset files must be stored in the asset directory. This is `/assets` by default, but can be configured via the configuration file's `assetDir` key.
If you don't like caching at all, you can fully disable caching with the command line flag `--ignoreCache`.
### Asset publishing ### Asset Publishing
Assets will only be published (to `/public`) if `.Permalink` or `.RelPermalink` is used. Assets will only be published (to `/public`) if `.Permalink` or `.RelPermalink` is used. You can use `.Content` to inline the asset.
### Go Pipes ## Go Pipes
For improved readability, the Hugo Pipes examples of this documentation will be written using [Go Pipes](/templates/introduction/#pipes): For improved readability, the Hugo Pipes examples of this documentation will be written using [Go Pipes](/templates/introduction/#pipes):
```go-html-template ```go-html-template
@@ -77,7 +90,7 @@ For improved readability, the Hugo Pipes examples of this documentation will be
<link rel="stylesheet" href="{{ $style.Permalink }}"> <link rel="stylesheet" href="{{ $style.Permalink }}">
``` ```
### Method aliases ## Method aliases
Each Hugo Pipes `resources` transformation method uses a __camelCased__ alias (`toCSS` for `resources.ToCSS`). Each Hugo Pipes `resources` transformation method uses a __camelCased__ alias (`toCSS` for `resources.ToCSS`).
Non-transformation methods deprived of such aliases are `resources.Get`, `resources.FromString`, `resources.ExecuteAsTemplate` and `resources.Concat`. Non-transformation methods deprived of such aliases are `resources.Get`, `resources.FromString`, `resources.ExecuteAsTemplate` and `resources.Concat`.
@@ -88,7 +101,7 @@ The example above can therefore also be written as follows:
<link rel="stylesheet" href="{{ $style.Permalink }}"> <link rel="stylesheet" href="{{ $style.Permalink }}">
``` ```
### Caching ## Caching
Hugo Pipes invocations are cached based on the entire _pipe chain_. Hugo Pipes invocations are cached based on the entire _pipe chain_.