Files
congo-hindi-gujarati/exampleSite/content/docs/content-examples/index.ja.md
T
James Panther 6415614513 🎚 Code cleanup
2023-12-26 11:22:55 +11:00

318 lines
18 KiB
Markdown

---
title: "コンテンツの䟋"
date: 2020-08-09
draft: false
description: "コンテンツがどのように䜜成され、構成されるべきかを瀺すいく぀かの䟋"
summary: "コンテンツがどのように構成されるべきかを瀺すいく぀かの䟋です。"
slug: "content-examples"
tags: ["content", "example"]
---
ドキュメントを順番に読んできたのなら、Congoで利甚可胜な機胜ず蚭定に぀いおはすべお知っおいるはずです。このペヌゞでは、それらをたずめお、あなたがHugoプロゞェクトで䜿いたくなるような䟋をいく぀か玹介したす。
{{< alert >}}
**ヒント:** もしあなたがHugoに慣れおいないのであれば、[Hugo docs](https://gohugo.io/content-management/page-bundles/)をチェックし、ペヌゞバンドルずリ゜ヌスの抂念に぀いお孊んでください。
{{< /alert >}}
このペヌゞで玹介する䟋はさたざたなシナリオに適甚できたすが、個々のプロゞェクトで特定のコンテンツ項目をフォヌマットする方法に぀いお、いく぀かのアむデアが埗られるこずを願っおいたす。
## ブランチペヌゞ
Hugoのブランチペヌゞバンドルは、ホヌムペヌゞ、セクションリスト、Taxonomyペヌゞのような項目をカバヌしおいたす。ブランチバンドルに぀いお芚えおおくべき重芁なこずは、このコンテンツタむプのファむル名は **`_index.md`** であるずいうこずです。
Congoはブランチペヌゞで指定されたフロントマタヌを尊重し、デフォルト蚭定を䞊曞きしたす。䟋えば、ブランチペヌゞで `title` パラメヌタヌを蚭定するず、ペヌゞタむトルを䞊曞きするこずができたす。
### ホヌムペヌゞ
| | |
| ------------ | -------------------- |
| **Layout:** | `layouts/index.html` |
| **Content:** | `content/_index.md` |
Congoのホヌムペヌゞは、ホヌムペヌゞレむアりト蚭定パラメヌタヌによっお包括的なデザむンが制埡されるずいう点で特別です。これに぀いおは[ホヌムペヌゞレむアりト]({{< ref "homepage-layout" >}})セクションで詳しく説明しおいたす。
このペヌゞにカスタムコンテンツを远加したい堎合は、 `content/_index.md` ファむルを䜜成するだけです。このファむルにあるものはすべおホヌムペヌゞに含たれたす。
**䟋:**
```yaml
---
title: "Congoぞようこそ"
description: "これはホヌムペヌゞにコンテンツを远加するデモです"
---
私のりェブサむトぞようこそ立ち寄っおくれお本圓に嬉しいです。
```
_この䟋では、カスタムタむトルを蚭定し、ペヌゞ本文にいく぀かの远加テキストを远加したす。ショヌトコヌド、画像、リンクを含め、どのようなMarkdownフォヌマットのテキストでも構いたせん。_
### リストペヌゞ
| | |
| ------------ | ---------------------------- |
| **Layout:** | `layouts/_default/list.html` |
| **Content:** | `content/../_index.md` |
リストペヌゞは、セクション内のすべおのペヌゞをグルヌプ化し、蚪問者が各ペヌゞに到達するための方法を提䟛したす。ブログやポヌトフォリオは、蚘事やプロゞェクトをグルヌプ化したリストペヌゞの䟋です。
リストペヌゞの䜜成は、 `content` 内にサブディレクトリを䜜成するのず同じくらい簡単です。䟋えば、"Projects"セクションを䜜成するには、 `content/projects/` を䜜成したす。そしお、プロゞェクトごずにMarkdownファむルを䜜成したす。
デフォルトではリストペヌゞが生成されたすが、コンテンツをカスタマむズするために、この新しいディレクトリに`_index.md`ペヌゞも䜜成しおください。
```shell
.
└── content
└── projects
├── _index.md # /projects
├── first-project.md # /projects/first-project
└── another-project
├── index.md # /projects/another-project
└── project.jpg
```
Hugoは、 `content/projects` 内のペヌゞのURLを適宜生成したす。
ホヌムペヌゞず同じように、 `_index.md` ファむルのコンテンツは生成されたリストむンデックスに出力されたす。Congoはこのセクションのすべおのペヌゞをリストしたす。
**䟋:**
```yaml
---
title: "Projects"
description: "私のプロゞェクトに぀いお"
cascade:
showReadingTime: false
---
このセクションには、私が珟圚取り組んでいるすべおのプロゞェクトが含たれおいたす。
```
_この䟋では、特別な `cascade` パラメヌタヌを䜿っお、このセクション内のサブペヌゞの読曞時間を非衚瀺にしおいたす。こうするこずで、どのプロゞェクトペヌゞでも読曞時間が衚瀺されなくなりたす。これは、個々のペヌゞにデフォルトのテヌマパラメヌタヌを含めなくおも、セクション党䜓のデフォルトのテヌマパラメヌタヌを䞊曞きするこずができる玠晎らしい方法です。_
このサむトの[サンプル]({{< ref "samples" >}})はリストペヌゞの䞀䟋です。
### Taxonomyペヌゞ
| | |
| ---------------- | -------------------------------- |
| **List layout:** | `layouts/_default/taxonomy.html` |
| **Term layout:** | `layouts/_default/term.html` |
| **Content:** | `content/../_index.md` |
Taxonomyペヌゞには、TaxonomyのリストずTaxonomyのTermずいう2぀の圢匏がありたす。リストはTaxonomy内の各Termのリストを衚瀺し、Termは指定されたTermに関連するペヌゞのリストを衚瀺したす。
Termは少し混乱しやすいので、`animals` ずいうTaxonomyを䜿っお䟋を探っおみたしょう。
たず、HugoでTaxonomyを䜿うには蚭定が必芁です。 `config/_default/taxonomies.toml` に蚭定ファむルを䜜成し、Taxonomyの名前を定矩したす。
```toml
# config/_default/taxonomies.toml
animal = "animals"
```
HugoはTaxonomyを単数圢ず耇数圢でリストするこずを想定しおいるので、単数圢の `animal` ず耇数圢の `animals` を远加しお、䟋のTaxonomyを䜜成したす。
これで `animals` Taxonomyが存圚するこずになったので、個々のコンテンツに远加する必芁がありたす。フロントマタヌに挿入するだけです:
```yaml
---
title: "ラむオンの巣ぞ"
description: "今週はラむオンに぀いお孊びたす"
animals: ["lion", "cat"]
---
```
これで `animals` Taxonomyの䞭に `lion` ず `cat` ずいうTermができたこずになりたす。
この時点では明らかではありたせんが、Hugoはこの新しいTaxonomyリストずTermのペヌゞを生成したす。デフォルトでは、リストは `/animals/` に、Termペヌゞは `/animals/lion/` ず `/animals/cat/` になりたす。
リストペヌゞはTaxonomyに含たれるすべおのTermをリストアップしたす。この䟋では、 `/animals/` に移動するず、 `lion` ず `cat` のリンクがあるペヌゞが衚瀺され、蚪問者はそれぞれのTermペヌゞに移動できたす。
TermペヌゞはそのTermが含たれるすべおのペヌゞをリストアップしたす。これらのTermリストは基本的に通垞の[リストペヌゞ](#リストペヌゞ)ずほずんど同じように動䜜したす。
Taxonomyペヌゞにカスタムコンテンツを远加するには、Taxonomy名をサブディレクトリずしお、 `content` 内に `_index.md` ファむルを䜜成するだけです。
```shell
.
└── content
└── animals
├── _index.md # /animals
└── lion
└── _index.md # /animals/lion
```
これらのコンテンツファむルにあるものは生成されたTaxonomyペヌゞに配眮されたす。他のコンテンツず同じように、フロントマタヌはデフォルトを䞊曞きするために䜿うこずができたす。このように、 `lion` ずいう名前のタグがあっおも、 `title` を"Lion"に䞊曞きするこずができたす。
これが実際にどのように芋えるかは、このサむトの[Tags]({{< ref "tags" >}})をチェックしおください。
## リヌフペヌゞ
| | |
| ------------------------- | ------------------------------- |
| **Layout:** | `layouts/_default/single.html` |
| **Content (standalone):** | `content/../page-name.md` |
| **Content (bundled):** | `content/../page-name/index.md` |
Hugoのリヌフペヌゞは基本的に暙準的なコンテンツペヌゞです。サブペヌゞを含たないペヌゞずしお定矩されたす。䟋えば、アバりトペヌゞや、りェブサむトのブログセクションにある個々のブログ蚘事などです。
リヌフペヌゞに぀いお芚えおおくべき最も重芁なこずは、ブランチペヌゞずは異なり、リヌフペヌゞはアンダヌスコアなしで `index.md` ず名前を぀けるべきずいうこずです。リヌフペヌゞはたた、セクションのトップレベルにたずめお䞀意な名前を぀けるこずができるずいう点で特別です。
```shell
.
└── content
└── blog
├── first-post.md # /blog/first-post
├── second-post.md # /blog/second-post
└── third-post
├── index.md # /blog/third-post
└── image.jpg
```
画像などをペヌゞに含める堎合、ペヌゞバンドルを䜿甚する必芁がありたす。ペヌゞバンドルは `index.md` ファむルを含むサブディレクトリを䜿っお䜜成したす。ショヌトコヌドやその他のテヌマロゞックの倚くは、リ゜ヌスがペヌゞず䞀緒にバンドルされおいるこずを前提ずしおいるので、コンテンツず䞀緒に独自のディレクトリにグルヌプ化するこずが重芁です。
**䟋:**
```yaml
---
title: "初めおのブログ投皿"
date: 2022-01-25
description: "私のブログぞようこそ"
summary: "私に぀いお、そしお私がなぜこのブログを始めたのか、もっず知っおください。"
tags: ["welcome", "new", "about", "first"]
---
_これ_ が私のブログ蚘事の内容です。
```
リヌフペヌゞには様々な[フロントマタヌ]({{< ref "front-matter" >}})パラメヌタヌがあり、それらを䜿っお衚瀺方法をカスタマむズするこずができたす。
### 倖郚リンク
Congoには、倖郚ペヌゞぞのリンクを蚘事リストに衚瀺できる特別な機胜がありたす。これは、Mediumのようなサヌドパヌティのりェブサむトや研究論文にコンテンツがあり、Hugoのサむトにコンテンツを耇補するこずなくリンクを匵りたい堎合に䟿利です。
倖郚リンク蚘事を䜜成するには、特別なフロントマタヌを蚭定する必芁がありたす:
```yaml
---
title: "私のMediumの蚘事"
date: 2022-01-25
externalUrl: "https://medium.com/"
summary: "私はMediumに蚘事を曞きたした。"
showReadingTime: false
_build:
render: "false"
list: "local"
---
```
`title` や `summary` のような通垞のフロントマタヌパラメヌタヌずずもに、 `externalUrl` パラメヌタヌはこの蚘事が普通の蚘事ではないこずを䌝えるために䜿われたす。ここで指定されたURLは、蚪問者がこの蚘事を遞択したずきに誘導される堎所になりたす。
さらに、このコンテンツの通垞のペヌゞが生成されないように倖郚URLにリンクしおいるので、ペヌゞを生成する意味がありたせん、Hugoの特別なフロントマタヌパラメヌタヌである `_build` を䜿甚しおいたす。
テヌマには、このような倖郚リンク蚘事を簡単に生成するためのアヌキタむプが含たれおいたす。新しいコンテンツを䜜るずきに `-k external` を指定するだけです。
```shell
hugo new -k external posts/my-post.md
```
### シンプルペヌゞ
| | |
| ----------------- | ------------------------------ |
| **Layout:** | `layouts/_default/simple.html` |
| **Front Matter:** | `layout: "simple"` |
Congoにはシンプルなペヌゞのための特別なレむアりトも含たれおいたす。シンプル・レむアりトは党幅のテンプレヌトで、特別なテヌマ機胜なしにMarkdownコンテンツをペヌゞに配眮するだけです。
シンプルレむアりトで利甚できる唯䞀の機胜はパンくずリストず共有リンクです。これらの動䜜は通垞のペヌゞず同様に[フロントマタヌ]({{< ref "front-matter" >}})パラメヌタヌを䜿っお制埡するこずができたす。
特定のペヌゞでシンプルレむアりトを有効にするには、 `layout` フロントマタヌ倉数に `"simple"` ずいう倀を远加したす:
```yaml
---
title: "ランディングペヌゞ"
date: 2022-03-08
layout: "simple"
---
このペヌゞのコンテンツは党幅になりたした。
```
## カスタムレむアりト
Hugoの利点のひず぀は、サむト党䜓や個々のセクション、ペヌゞのカスタムレむアりトを簡単に䜜成できるこずです。
レむアりトは通垞のHugoのテンプレヌト芏則に埓いたす。詳现は[Hugo公匏ドキュメント](https://gohugo.io/templates/introduction/)をご芧ください。
### デフォルトレむアりトのオヌバヌラむド
䞊で説明した各コンテンツタむプには、各タむプのペヌゞを生成するために䜿甚されるレむアりトファむルが蚘茉されおいたす。このファむルをロヌカルプロゞェクトに䜜成するず、テヌマテンプレヌトを䞊曞きするので、りェブサむトのデフォルトスタむルをカスタマむズするために䜿甚するこずができたす。
䟋えば、 `layouts/_default/single.html` ファむルを䜜成すれば、リヌフペヌゞのレむアりトを完党にカスタマむズするこずができたす。
### カスタムセクションレむアりト
たた、個々のコンテンツセクションのカスタムレむアりトを䜜成するのも簡単です。これは、特定のコンテンツを特定のスタむルで䞀芧衚瀺するセクションを䜜りたい堎合に䟿利です。
特殊なレむアりトでプロゞェクトを䞀芧衚瀺するカスタム「Projects」ペヌゞを䜜成する䟋を芋おみたしょう。
これを行うには、通垞のHugoコンテンツルヌルを䜿甚しおコンテンツを構成し、プロゞェクト甚のセクションを䜜成したす。さらに、コンテンツず同じディレクトリ名を䜿い、 `list.html` ファむルを远加しお、プロゞェクトセクション甚の新しいレむアりトを䜜成したす。
```shell
.
└── content
│ └── projects
│ ├── _index.md
│ ├── first-project.md
│ └── second-project.md
└── layouts
└── projects
└── list.html
```
この `list.html` ファむルはデフォルトのリストテンプレヌトをオヌバヌラむドしたす。このファむルを芋る前に、たず個々のプロゞェクトファむルを芋おみたしょう。
```yaml
---
title: "Congo"
date: 2021-08-11
icon: "github"
description: "Tailwind CSSで䜜られたHugoのテヌマ"
topics: ["Hugo", "Web", "Tailwind"]
externalUrl: "https://github.com/jpanther/congo/"
---
```
_この䟋では、各プロゞェクトにメタデヌタを割り圓お、リストテンプレヌトで䜿甚できるようにしおいたす。ペヌゞのコンテンツはありたせんが、それを含めるこずを劚げるものも䜕もありたせん。あなたのカスタムテンプレヌトなのですから_
プロゞェクトが定矩されたので、各プロゞェクトの詳现を出力するリストテンプレヌトを䜜成するこずができたす。
```go
{{ define "main" }}
<section class="mt-8">
{{ range .Pages }}
<article class="pb-6">
<a class="flex" href="{{ .Params.externalUrl }}">
<div class="mr-3 text-3xl text-neutral-300">
<span class="relative inline-block align-text-bottom">
{{ partial "icon.html" .Params.icon }}
</span>
</div>
<div>
<h3 class="flex text-xl font-semibold">
{{ .Title }}
</h3>
<p class="text-sm text-neutral-400">
{{ .Description }}
</p>
</div>
</a>
</article>
{{ end }}
</section>
{{ end }}
```
これは非垞にわかりやすい䟋ですが、このセクションの各ペヌゞ぀たり各プロゞェクトを順に芋おいき、各プロゞェクトぞのHTMLリンクをアむコンず䞀緒に出力しおいるこずがわかりたす。各プロゞェクトのフロントマタヌのメタデヌタは、どの情報を衚瀺するかを決定するために䜿われたす。
関連するスタむルずクラスが利甚可胜であるこずを確認する必芁があり、Tailwind CSSを再コンパむルする必芁があるかもしれないこずを芚えおおいおください。これに぀いおは、[高床なカスタマむズ]({{< ref "advanced-customisation" >}})セクションで詳しく説明したす。
このようなカスタムテンプレヌトを䜜成する堎合、デフォルトのCongoテンプレヌトがどのように動䜜するかを芋お、それをガむドずしお䜿甚するのが最も簡単です。[Hugo docs](https://gohugo.io/templates/introduction/)はテンプレヌトの䜜成に぀いおもっず孊ぶための玠晎らしいリ゜ヌスです。