ページリソース
ページリソース (画像、他のページ、ドキュメントなど) は、ページ相対 URL と独自のメタデータを持ちます。
On this page
ページリソースは ページバンドル
からしかアクセスできません。
index.md
または _index.md
ファイルをルートに持つディレクトリからしかアクセスできません。ページリソースは、それがバンドルされているページでのみ利用可能です。
この例では、first-post
は音声、データ、ドキュメント、画像、動画を含む 10 のページリソースにアクセスするページバンドルです。
second-post
もページバンドルですが、ページリソースを持たず、first-post
に関連するページリソースに直接アクセスすることはできません。
content
└── post
├── first-post
│ ├── images
│ │ ├── a.jpg
│ │ ├── b.jpg
│ │ └── c.jpg
│ ├── index.md (root of page bundle)
│ ├── latest.html
│ ├── manual.json
│ ├── notice.md
│ ├── office.mp3
│ ├── pocket.mp4
│ ├── rating.pdf
│ └── safety.txt
└── second-post
└── index.md (root of page bundle)
プロパティ
- ResourceType
- リソースの メディアタイプ
のメインタイプです。 たとえば、MIME タイプ
image/jpeg
のファイルはResourceType
がimage
となります。Page
はResourceType
にpage
という値を持ちます。 - Name
- デフォルト値は、ファイル名 (所有ページからの相対パス) です。フロントマターで設定できます。
- Title
- デフォルト値は
.Name
と同じです。 フロントマターで設定できます。 - Permalink
- リソースへの絶対 URL です。
page
型のリソースは値を持ちません。 - RelPermalink
- リソースへの相対 URL です。
page
型のリソースは値を持ちません。 - Content
- リソース自体のコンテンツです。 ほとんどのリソースでは、これはファイルの内容を含む文字列を返します。 これを使用してインライン リソースを作成します。
{{ with .Resources.GetMatch "script.js" }}
<script>{{ .Content | safeJS }}</script>
{{ end }}
{{ with .Resources.GetMatch "style.css" }}
<style>{{ .Content | safeCSS }}</style>
{{ end }}
{{ with .Resources.GetMatch "img.png" }}
<img src="data:{{ .MediaType.Type }};base64,{{ .Content | base64Encode }}">
{{ end }}
- MediaType.Type
- リソースのメディアタイプ (以前は MIME タイプとして知られていた) です (たとえば、
image/jpeg
)。 - MediaType.MainType
- リソースの MIME タイプのメインタイプです (たとえば、
image
) - MediaType.SubType
- リソースのタイプのサブタイプです (たとえば、
jpeg
)。 これは、ファイルサフィックスに対応する場合とそうでない場合があります。 - MediaType.Suffixes
- リソースのメディアタイプに対応するファイルサフィックスのスライスです (たとえば、
[jpg jpeg jpe jif jfif]
)。
メソッド
- ByType
- 指定されたタイプのページリソースを返します。
{{ .Resources.ByType "image" }}
- Match
- 指定された glob パターン (例
) に一致する
Name
を持つすべてのページリソースを (スライスとして) 返します。 マッチングは大文字と小文字を区別しません。
{{ .Resources.Match "images/*" }}
- GetMatch
Match
と同じですが、最初にマッチしたものを返します。
パターンマッチング
// Match/GetMatch を使って、この 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" 🚫
ページリソースのメタデータ
ページリソースのメタデータは、対応するページのフロントマターから resources
という名前の配列/テーブル パラメータで管理されます。 ワイルドカード
を使って、値をバッチで割り当てることができます。
- name
Name
で返される値を設定します。
- title
Title
で返される値を設定します。- params
- カスタム キー/値のマップ。
リソース メタデータの例
上記の例から
sunset.jpg
は新しいName
を受け取り、.GetMatch "header"
で見つけることができるようになりました。documents/photo_specs.pdf
はphoto
アイコンを取得します。documents/checklist.pdf
、documents/guide.pdf
、documents/payment.docx
は、title
で設定されたTitle
を取得します。documents/photo_specs.pdf
以外のバンドル内のすべてのPDF
は、pdf
アイコンが表示されます。- すべての
PDF
ファイルに、新しいName
が付けられます。name
パラメータは特別なプレースホルダ:counter
を含んでいるので、Name
はpdf-file-1
、pdf-file-2
、pdf-file-3
のようになります。 - バンドル内のすべての docx は、
word
アイコンが表示されます。
name
と title
の :counter
プレースホルダー
:counter
は name
と title
パラメータの resources
で認識される特別なプレースホルダーです。
カウンターは、name
または title
で最初に使用されたときに 1 から始まります。
たとえば、バンドルに photo_specs.pdf
、other_specs.pdf
、guide.pdf
、checklist.pdf
というリソースがあり、フロントマターに resources
を指定した場合、以下のようになります。
Name
と Title
は、以下のようにリソースファイルに割り当てられます。
リソースファイル | 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" |