mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
74309fe569
084804447 Update shortcode-templates.md c01b02434 Correct misspelling of 'default' 52a831cca Added missing parenthesis 59e8e660a Fix spelling typos 29ad53c9c Yes, HTML is a valid content format c6b193c6f Update shortcode-templates.md 1f2846e6d Fix typo in output format README 5882f7a4c Fix typo a90a00bb0 Update multilingual.md 62bf0f184 Documentation for Open Graph & Twitter Cards f4d624da3 Document "images", "videos", etc. in front-matter 6a85b5df1 Document anchorize and Resources.Content 04c8a5b0e Fix minor typo in 0.49.2 release note dbe77e948 Release 0.49.2 ea6c9658e Merge branch 'temp492' 85c45b725 Merge branch 'release-0.49.2' 7ad1fba29 releaser: Prepare repository for 0.50-DEV b25bcc3f2 releaser: Add release notes to /docs for release of 0.49.2 78b751b91 releaser: Bump versions for release of 0.49.2 e3f09762c Release 0.49.1 bd5b94558 Merge branch 'temp491' 0007e0661 Merge branch 'release-0.49.1' 74d2f3a6f releaser: Prepare repository for 0.50-DEV bbee7e9d3 releaser: Add release notes to /docs for release of 0.49.1 ae40c89c7 releaser: Bump versions for release of 0.49.1 11079fb48 Add draft statement to FAQ 069b9472f Addin Hokus CMS to frontends list. 6e8850670 Add MediaType docs f3ca6209a Add `languageName` to configuration fd1cde5ea tpl: Add a delimiter parameter to lang.NumFmt c620ff78a Update doc to use proper variable 7317c339a add tools->hugo-elasticsearch description to docs d758ef94a hugolib: Introduce Page.NextPage and Page.PrevPage 9c93ac031 Update installing.md 7c0b5b7f5 Use ISO 639-1 code for examples 9a9e40ba8 Fix spelling 9a6216c18 Hugo 0.49 55aa91185 Merge branch 'temp49' e0a36421e releaser: Prepare repository for 0.50-DEV c07b3b385 releaser: Add release notes to /docs for release of 0.49 c1175a12a releaser: Bump versions for release of 0.49 2966f6254 docs: Document directory based archetypes 73dcd02ed Add showcase archetype folder 0a55ad11b docs: Regenerate CLI docs e09866c2d docs: Document group ef986358a Merge commit '807c551922707fc5ae0eb26e8f01638c0c63fdb3' 681f14fc9 tpl/collections: Allow first function to return an empty slice f6dcc93bc docs: Add docs for append aae528ca3 Merge commit '13e64d72763bf8d6d92d4cdfc15ed45ee9debfab' 02b62294c tpl/strings: Add strings.FirstUpper bf3e61ba3 hugolib: Do not FirstUpper taxonomy titles git-subtree-dir: docs git-subtree-split: 084804447402ab99b51bf49f0da809bee8c16339
165 lines
5.6 KiB
Markdown
165 lines
5.6 KiB
Markdown
---
|
|
title : "Page Resources"
|
|
description : "Page Resources -- images, other pages, documents etc. -- have page-relative URLs and their own metadata."
|
|
date: 2018-01-24
|
|
categories: ["content management"]
|
|
keywords: [bundle,content,resources]
|
|
weight: 4003
|
|
draft: false
|
|
toc: true
|
|
linktitle: "Page Resources"
|
|
menu:
|
|
docs:
|
|
parent: "content-management"
|
|
weight: 31
|
|
---
|
|
|
|
## Properties
|
|
|
|
ResourceType
|
|
: The main type of the resource. For example, a file of MIME type `image/jpg` has the ResourceType `image`.
|
|
|
|
Name
|
|
: Default value is the filename (relative to the owning page). Can be set in front matter.
|
|
|
|
Title
|
|
: Default blank. Can be set in front matter.
|
|
|
|
Permalink
|
|
: The absolute URL to the resource. Resources of type `page` will have no value.
|
|
|
|
RelPermalink
|
|
: The relative URL to the resource. Resources of type `page` will have no value.
|
|
|
|
Content
|
|
: The content of the resource itself. For most resources, this returns a string with the contents of the file. This can be used to inline some resources, such as `<script>{{ (.Resources.GetMatch "myscript.js").Content | safeJS }}</script>` or `<img src="{{ (.Resources.GetMatch "mylogo.png").Content | base64Encode }}">`.
|
|
|
|
MediaType
|
|
: The MIME type of the resource, such as `image/jpg`.
|
|
|
|
MediaType.MainType
|
|
: The main type of the resource's MIME type. For example, a file of MIME type `application/pdf` has for MainType `application`.
|
|
|
|
MediaType.SubType
|
|
: The subtype of the resource's MIME type. For example, a file of MIME type `application/pdf` has for SubType `pdf`. Note that this is not the same as the file extension - PowerPoint files have a subtype of `vnd.mspowerpoint`.
|
|
|
|
MediaType.Suffixes
|
|
: A slice of possible suffixes for the resource's MIME type.
|
|
|
|
## Methods
|
|
ByType
|
|
: Returns the page resources of the given type.
|
|
|
|
```go
|
|
{{ .Resources.ByType "image" }}
|
|
```
|
|
Match
|
|
: Returns all the page resources (as a slice) whose `Name` matches the given Glob pattern ([examples](https://github.com/gobwas/glob/blob/master/readme.md)). The matching is case-insensitive.
|
|
|
|
```go
|
|
{{ .Resources.Match "images/*" }}
|
|
```
|
|
|
|
GetMatch
|
|
: Same as `Match` but will return the first match.
|
|
|
|
### Pattern Matching
|
|
```go
|
|
// Using Match/GetMatch to find this images/sunset.jpg ?
|
|
.Resources.Match "images/sun*" ✅
|
|
.Resources.Match "**/Sunset.jpg" ✅
|
|
.Resources.Match "images/*.jpg" ✅
|
|
.Resources.Match "**.jpg" ✅
|
|
.Resources.Match "*" 🚫
|
|
.Resources.Match "sunset.jpg" 🚫
|
|
.Resources.Match "*sunset.jpg" 🚫
|
|
|
|
```
|
|
|
|
## Page Resources Metadata
|
|
|
|
Page Resources' metadata is managed from their page's front matter with an array/table parameter named `resources`. You can batch assign values using a [wildcards](http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm).
|
|
|
|
{{% note %}}
|
|
Resources of type `page` get `Title` etc. from their own front matter.
|
|
{{% /note %}}
|
|
|
|
name
|
|
: Sets the value returned in `Name`.
|
|
|
|
{{% warning %}}
|
|
The methods `Match` and `GetMatch` use `Name` to match the resources.
|
|
{{%/ warning %}}
|
|
|
|
title
|
|
: Sets the value returned in `Title`
|
|
|
|
params
|
|
: A map of custom key/values.
|
|
|
|
|
|
### Resources metadata example
|
|
|
|
{{< code-toggle copy="false">}}
|
|
title: Application
|
|
date : 2018-01-25
|
|
resources :
|
|
- src : "images/sunset.jpg"
|
|
name : "header"
|
|
- src : "documents/photo_specs.pdf"
|
|
title : "Photo Specifications"
|
|
params:
|
|
icon : "photo"
|
|
- src : "documents/guide.pdf"
|
|
title : "Instruction Guide"
|
|
- src : "documents/checklist.pdf"
|
|
title : "Document Checklist"
|
|
- src : "documents/payment.docx"
|
|
title : "Proof of Payment"
|
|
- src : "**.pdf"
|
|
name : "pdf-file-:counter"
|
|
params :
|
|
icon : "pdf"
|
|
- src : "**.docx"
|
|
params :
|
|
icon : "word"
|
|
{{</ code-toggle >}}
|
|
|
|
From the example above:
|
|
|
|
- `sunset.jpg` will receive a new `Name` and can now be found with `.GetMatch "header"`.
|
|
- `documents/photo_specs.pdf` will get the `photo` icon.
|
|
- `documents/checklist.pdf`, `documents/guide.pdf` and `documents/payment.docx` will get `Title` as set by `title`.
|
|
- Every `PDF` in the bundle except `documents/photo_specs.pdf` will get the `pdf` icon.
|
|
- All `PDF` files will get a new `Name`. The `name` parameter contains a special placeholder [`:counter`](#the-counter-placeholder-in-name-and-title), so the `Name` will be `pdf-file-1`, `pdf-file-2`, `pdf-file-3`.
|
|
- Every docx in the bundle will receive the `word` icon.
|
|
|
|
{{% warning %}}
|
|
The __order matters__ --- Only the **first set** values of the `title`, `name` and `params`-**keys** will be used. Consecutive parameters will be set only for the ones not already set. For example, in the above example, `.Params.icon` is already first set to `"photo"` in `src = "documents/photo_specs.pdf"`. So that would not get overridden to `"pdf"` by the later set `src = "**.pdf"` rule.
|
|
{{%/ warning %}}
|
|
|
|
### The `:counter` placeholder in `name` and `title`
|
|
|
|
The `:counter` is a special placeholder recognized in `name` and `title` parameters `resources`.
|
|
|
|
The counter starts at 1 the first time they are used in either `name` or `title`.
|
|
|
|
For example, if a bundle has the resources `photo_specs.pdf`, `other_specs.pdf`, `guide.pdf` and `checklist.pdf`, and the front matter has specified the `resources` as:
|
|
|
|
{{< code-toggle copy="false">}}
|
|
[[resources]]
|
|
src = "*specs.pdf"
|
|
title = "Specification #:counter"
|
|
[[resources]]
|
|
src = "**.pdf"
|
|
name = "pdf-file-:counter"
|
|
{{</ code-toggle >}}
|
|
|
|
the `Name` and `Title` will be assigned to the resource files as follows:
|
|
|
|
| Resource file | `Name` | `Title` |
|
|
|-------------------|-------------------|-----------------------|
|
|
| checklist.pdf | `"pdf-file-1.pdf` | `"checklist.pdf"` |
|
|
| guide.pdf | `"pdf-file-2.pdf` | `"guide.pdf"` |
|
|
| other\_specs.pdf | `"pdf-file-3.pdf` | `"Specification #1"` |
|
|
| photo\_specs.pdf | `"pdf-file-4.pdf` | `"Specification #2"` |
|