|
| 1 | +--- |
| 2 | +title: カスタムHugoショートコード |
| 3 | +content_type: concept |
| 4 | +--- |
| 5 | + |
| 6 | +<!-- overview --> |
| 7 | +このページではKubernetesのマークダウンドキュメント内で使用できるHugoショートコードについて説明します。 |
| 8 | + |
| 9 | +ショートコードについての詳細は[Hugoのドキュメント](https://gohugo.io/content-management/shortcodes)を読んでください。 |
| 10 | + |
| 11 | +<!-- body --> |
| 12 | + |
| 13 | +## 機能の状態 |
| 14 | + |
| 15 | +このサイトのマークダウンページ(`.md`ファイル)内では、説明されている機能のバージョンや状態を表示するためにショートコードを使用することができます。 |
| 16 | + |
| 17 | +### 機能の状態のデモ |
| 18 | + |
| 19 | +最新のKubernetesバージョンで機能をstableとして表示するためのデモスニペットを次に示します。 |
| 20 | + |
| 21 | +``` |
| 22 | +{{</* feature-state state="stable" */>}} |
| 23 | +``` |
| 24 | + |
| 25 | +これは次の様に表示されます: |
| 26 | + |
| 27 | +{{< feature-state state="stable" >}} |
| 28 | + |
| 29 | +`state`の値として妥当な値は次のいずれかです: |
| 30 | + |
| 31 | +* alpha |
| 32 | +* beta |
| 33 | +* deprecated |
| 34 | +* stable |
| 35 | + |
| 36 | +### 機能の状態コード |
| 37 | + |
| 38 | +表示されるKubernetesのバージョンのデフォルトはそのページのデフォルトまたはサイトのデフォルトです。 |
| 39 | +`for_k8s_version`パラメータを渡すことにより、機能の状態バージョンを変更することができます。 |
| 40 | +例えば: |
| 41 | + |
| 42 | +``` |
| 43 | +{{</* feature-state for_k8s_version="v1.10" state="beta" */>}} |
| 44 | +``` |
| 45 | + |
| 46 | +これは次の様に表示されます: |
| 47 | + |
| 48 | +{{< feature-state for_k8s_version="v1.10" state="beta" >}} |
| 49 | + |
| 50 | +## 用語集 |
| 51 | + |
| 52 | +用語集に関連するショートコードとして、`glossary_tooltip`と`glossary_definition`の二つがあります。 |
| 53 | + |
| 54 | +コンテンツを自動的に更新し、[用語集](/ja/docs/reference/glossary/)へのリンクを付与する挿入を使用して、用語を参照することができます。 |
| 55 | +用語がマウスオーバーされると、用語集の内容がツールチップとして表示されます。 |
| 56 | +また、用語はリンクとして表示されます。 |
| 57 | + |
| 58 | +ツールチップの挿入と同様に、用語集の定義も再利用することができます。 |
| 59 | + |
| 60 | + |
| 61 | +用語集の用語データは[glossaryディレクトリ](https://github.com/kubernetes/website/tree/main/content/en/docs/reference/glossary)に、それぞれの用語のファイルとして保存されています。 |
| 62 | + |
| 63 | +### 用語集のデモ |
| 64 | + |
| 65 | +例えば、マークダウン内でツールチップ付きの{{< glossary_tooltip text="cluster" term_id="cluster" >}}を表示するには、次の挿入を使用します: |
| 66 | + |
| 67 | +``` |
| 68 | +{{</* glossary_tooltip text="cluster" term_id="cluster" */>}} |
| 69 | +``` |
| 70 | + |
| 71 | +用語集の定義はこのようにします: |
| 72 | + |
| 73 | +``` |
| 74 | +{{</* glossary_definition prepend="A cluster is" term_id="cluster" length="short" */>}} |
| 75 | +``` |
| 76 | + |
| 77 | +これは次の様に表示されます: |
| 78 | +{{< glossary_definition prepend="A cluster is" term_id="cluster" length="short" >}} |
| 79 | + |
| 80 | +完全な用語定義を挿入することもできます: |
| 81 | + |
| 82 | +``` |
| 83 | +{{</* glossary_definition term_id="cluster" length="all" */>}} |
| 84 | +``` |
| 85 | + |
| 86 | +これは次の様に表示されます: |
| 87 | +{{< glossary_definition term_id="cluster" length="all" >}} |
| 88 | + |
| 89 | +## APIリファレンスへのリンク |
| 90 | + |
| 91 | +`api-reference`ショートコードを使用することで、Kubernetes APIリファレンスへのリンクを作成することができます。 |
| 92 | +例えば、{{< api-reference page="workload-resources/pod-v1" >}}への参照方法は次の通りです: |
| 93 | + |
| 94 | +``` |
| 95 | +{{</* api-reference page="workload-resources/pod-v1" */>}} |
| 96 | +``` |
| 97 | + |
| 98 | +`page`パラメーターの値はAPIリファレンスページのURLの末尾です。 |
| 99 | + |
| 100 | +`anchor`パラメーターを指定することでページ内の特定の場所へリンクすることもできます。 |
| 101 | +例えば、{{< api-reference page="workload-resources/pod-v1" anchor="PodSpec" >}}や{{< api-reference page="workload-resources/pod-v1" anchor="environment-variables" >}}へのリンクは次の様に書きます: |
| 102 | + |
| 103 | +``` |
| 104 | +{{</* api-reference page="workload-resources/pod-v1" anchor="PodSpec" */>}} |
| 105 | +{{</* api-reference page="workload-resources/pod-v1" anchor="environment-variables" */>}} |
| 106 | +``` |
| 107 | + |
| 108 | +`text`パラメーターを指定することでリンクテキストを変更することもできます。 |
| 109 | +例えば、{{< api-reference page="workload-resources/pod-v1" anchor="environment-variables" text="Environment Variables">}}へのリンクは次の様に書きます: |
| 110 | + |
| 111 | +``` |
| 112 | +{{</* api-reference page="workload-resources/pod-v1" anchor="environment-variables" text="Environment Variable" */>}} |
| 113 | +``` |
| 114 | + |
| 115 | +## テーブルキャプション |
| 116 | + |
| 117 | +テーブルキャプションを追加することで、表をスクリーンリーダーにとってよりアクセスしやすいものにする事ができます。 |
| 118 | +表へ[キャプション](https://www.w3schools.com/tags/tag_caption.asp)を追加するには、表を`table`ショートコードで囲い、`caption`パラメーターにキャプションを指定します。 |
| 119 | + |
| 120 | +{{< note >}} |
| 121 | +テーブルキャプションはスクリーンリーダーからは読むことができますが、標準的なHTMLでは読むことができません。 |
| 122 | +{{< /note >}} |
| 123 | + |
| 124 | +例えば、次の様に書きます: |
| 125 | + |
| 126 | +```go-html-template |
| 127 | +{{</* table caption="Configuration parameters" >}} |
| 128 | +Parameter | Description | Default |
| 129 | +:---------|:------------|:------- |
| 130 | +`timeout` | The timeout for requests | `30s` |
| 131 | +`logLevel` | The log level for log output | `INFO` |
| 132 | +{{< /table */>}} |
| 133 | +``` |
| 134 | + |
| 135 | +これは次の様に表示されます: |
| 136 | + |
| 137 | +{{< table caption="Configuration parameters" >}} |
| 138 | +Parameter | Description | Default |
| 139 | +:---------|:------------|:------- |
| 140 | +`timeout` | The timeout for requests | `30s` |
| 141 | +`logLevel` | The log level for log output | `INFO` |
| 142 | +{{< /table >}} |
| 143 | + |
| 144 | +この表に対するHTMLを検査すると、次の要素が`<table>`要素のすぐ次にあるのを見ることができるでしょう: |
| 145 | + |
| 146 | +```html |
| 147 | +<caption style="display: none;">Configuration parameters</caption> |
| 148 | +``` |
| 149 | + |
| 150 | +## タブ |
| 151 | + |
| 152 | +このサイトのマークダウンページ(`.md`ファイル)内では、あるソリューションに対する複数のフレーバーを表示するためのタブセットを追加することができます。 |
| 153 | + |
| 154 | +`tabs`ショートコードはこれらのパラメーターを受けとります: |
| 155 | + |
| 156 | +* `name`: タブに表示される名前 |
| 157 | +* `codelang`: 内側の`tab`ショートコードにこれを指定した場合、Hugoはハイライトに使用するコード言語を知ることができます。 |
| 158 | +* `include`: タブ内で挿入するファイル。Hugo [leaf bundle](https://gohugo.io/content-management/page-bundles/#leaf-bundles)内にタブがある場合そのファイル(HugoがサポートしているどのMIMEタイプでも良い)はそのbundle自身によって探されます。 |
| 159 | + もしそうでない場合、そのコンテントページは現在のページから相対的に探されます。 |
| 160 | + `include`を使う場合、ショートコードの内部コンテンツはなく、自己終了構文を使用する必要があることに注意してください。 |
| 161 | + 例えば、`{{</* tab name="Content File #1" include="example1" /*/>}}`の様にします。 |
| 162 | + `codelang`を指定するか、ファイル名から言語が特定される必要があります。 |
| 163 | + 非コンテンツファイルはデフォルトでコードが強調表示されます。 |
| 164 | +* もし内部コンテンツがマークダウンの場合、タブの周りに`%`デリミターを使用する必要があります。 |
| 165 | + 例えば、`{{%/* tab name="Tab 1" %}}This is **markdown**{{% /tab */%}}`の様にします。 |
| 166 | +* タブセット内で、上記で説明したバリエーションを組み合わせることができます。 |
| 167 | + |
| 168 | +タブショートコードの例を次に示します。 |
| 169 | + |
| 170 | +{{< note >}} |
| 171 | +`tabs`定義内の**name**はコンテンツページ内でユニークである必要があります。 |
| 172 | +{{< /note >}} |
| 173 | + |
| 174 | +### タブのデモ: コードハイライト |
| 175 | + |
| 176 | +```go-text-template |
| 177 | +{{</* tabs name="tab_with_code" >}} |
| 178 | +{{{< tab name="Tab 1" codelang="bash" >}} |
| 179 | +echo "これはタブ1です。" |
| 180 | +{{< /tab >}} |
| 181 | +{{< tab name="Tab 2" codelang="go" >}} |
| 182 | +println "これはタブ2です。" |
| 183 | +{{< /tab >}}} |
| 184 | +{{< /tabs */>}} |
| 185 | +``` |
| 186 | + |
| 187 | +これは次の様に表示されます: |
| 188 | + |
| 189 | +{{< tabs name="tab_with_code" >}} |
| 190 | +{{< tab name="Tab 1" codelang="bash" >}} |
| 191 | +echo "これはタブ1です。" |
| 192 | +{{< /tab >}} |
| 193 | +{{< tab name="Tab 2" codelang="go" >}} |
| 194 | +println "これはタブ2です。" |
| 195 | +{{< /tab >}} |
| 196 | +{{< /tabs >}} |
| 197 | + |
| 198 | +### タブのデモ: インラインマークダウンとHTML |
| 199 | + |
| 200 | +```go-html-template |
| 201 | +{{</* tabs name="tab_with_md" >}} |
| 202 | +{{% tab name="Markdown" %}} |
| 203 | +これは**なにがしかのマークダウン**です。 |
| 204 | +{{< note >}} |
| 205 | +ショートコードを含むこともできます。 |
| 206 | +{{< /note >}} |
| 207 | +{{% /tab %}} |
| 208 | +{{< tab name="HTML" >}} |
| 209 | +<div> |
| 210 | + <h3>プレーンHTML</h3> |
| 211 | + <p>これはなにがしかの<i>プレーン</i>HTMLです。</p> |
| 212 | +</div> |
| 213 | +{{< /tab >}} |
| 214 | +{{< /tabs */>}} |
| 215 | +``` |
| 216 | + |
| 217 | +これは次の様に表示されます。 |
| 218 | + |
| 219 | +{{< tabs name="tab_with_md" >}} |
| 220 | +{{% tab name="Markdown" %}} |
| 221 | +これは**なにがしかのマークダウン**です。 |
| 222 | +{{< note >}} |
| 223 | +ショートコードを含むこともできます。 |
| 224 | +{{< /note >}} |
| 225 | + |
| 226 | +{{% /tab %}} |
| 227 | +{{< tab name="HTML" >}} |
| 228 | +<div> |
| 229 | + <h3>プレーンHTML</h3> |
| 230 | + <p>これはなにがしかの<i>プレーン</i>HTMLです。</p> |
| 231 | +</div> |
| 232 | +{{< /tab >}} |
| 233 | +{{< /tabs >}} |
| 234 | + |
| 235 | +### タブのデモ: ファイルの読み込み |
| 236 | + |
| 237 | +```go-text-template |
| 238 | +{{</* tabs name="tab_with_file_include" >}} |
| 239 | +{{< tab name="Content File #1" include="example1" />}} |
| 240 | +{{< tab name="Content File #2" include="example2" />}} |
| 241 | +{{< tab name="JSON File" include="podtemplate" />}} |
| 242 | +{{< /tabs */>}} |
| 243 | +``` |
| 244 | + |
| 245 | +これは次の様に表示されます: |
| 246 | + |
| 247 | +{{< tabs name="tab_with_file_include" >}} |
| 248 | +{{< tab name="Content File #1" include="example1" />}} |
| 249 | +{{< tab name="Content File #2" include="example2" />}} |
| 250 | +{{< tab name="JSON File" include="podtemplate.json" />}} |
| 251 | +{{< /tabs >}} |
| 252 | + |
| 253 | +## サードパーティーコンテンツマーカー |
| 254 | + |
| 255 | +Kubernetesの実行にはサードパーティーのソフトウェアが必要です。 |
| 256 | +例えば、名前解決を行うためにはクラスターに[DNSサーバー](/docs/tasks/administer-cluster/dns-custom-nameservers/#introduction)を追加する必要があります。 |
| 257 | + |
| 258 | +私たちがサードパーティーソフトウェアにリンクするときや言及するときは、[コンテンツガイド](/ja/docs/contribute/style/content-guide/)に従い、サードパーティーのものに印をつけます。 |
| 259 | + |
| 260 | +これらのショートコードを使用すると、それらを使用しているドキュメントページに免責事項が追加されます。 |
| 261 | + |
| 262 | +### リスト {#third-party-content-list} |
| 263 | + |
| 264 | +サードパーティーのリストには、 |
| 265 | +``` |
| 266 | +{{%/* thirdparty-content */%}} |
| 267 | +``` |
| 268 | + |
| 269 | +をすべてのアイテムを含むセクションのヘッダーのすぐ下に追加します。 |
| 270 | + |
| 271 | +### アイテム {#third-party-content-item} |
| 272 | + |
| 273 | +ほとんどのアイテムがプロジェクト内ソフトウェア(例えばKubernetes自体や[Descheduler](https://github.com/kubernetes-sigs/descheduler)コンポーネント)を参照している場合、違う形を使用することができます。 |
| 274 | + |
| 275 | + |
| 276 | +次のショートコードをアイテムの前か、特定のアイテムのヘッダーのすぐ下に追加します: |
| 277 | +``` |
| 278 | +{{%/* thirdparty-content single="true" */%}} |
| 279 | +``` |
| 280 | + |
| 281 | + |
| 282 | +## バージョン文字列 |
| 283 | + |
| 284 | +ドキュメント内でバージョン文字列を生成して挿入するために、いくつかのバージョンショートコードから選んで使用することができます。 |
| 285 | +それぞれのバージョンショートコードはサイトの設定ファイル(`config.toml`)から取得したバージョンパラメーターの値を使用してバージョン文字列を表示します。 |
| 286 | +最もよく使われる二つのバージョンパラメーターは`latest`と`version`です。 |
| 287 | + |
| 288 | +### `{{</* param "version" */>}}` |
| 289 | + |
| 290 | +`{{</* param "version" */>}}`ショートコードはサイトの`version`パラメーターに設定されたKubernetesドキュメントの現在のバージョンを生成します。 |
| 291 | +`param`ショートコードはサイトパラメーターの名前の一つを受けとり、この場合は`version`を渡しています。 |
| 292 | + |
| 293 | +{{< note >}} |
| 294 | +以前にリリースされたドキュメントでは`latest`と`version`の値は同じではありません。 |
| 295 | +新しいバージョンがリリースされると、`latest`はインクリメントされ、`version`は変更されません。 |
| 296 | +例えば、以前にリリースされたドキュメントは`version`を`v1.19`として表示し、`latest`を`v1.20`として表示します。 |
| 297 | +{{< /note >}} |
| 298 | + |
| 299 | +これは次の様に表示されます: |
| 300 | + |
| 301 | +{{< param "version" >}} |
| 302 | + |
| 303 | +### `{{</* latest-version */>}}` |
| 304 | + |
| 305 | +`{{</* latest-version */>}}`ショートコードはサイトの`latest`パラメーターの値を返します。 |
| 306 | +サイトの`latest`パラメーターは新しいドキュメントのバージョンがリリースされた時に更新されます。 |
| 307 | +このパラメーターは必ずしも`version`の値と一致しません。 |
| 308 | + |
| 309 | +これは次の様に表示されます: |
| 310 | + |
| 311 | +{{< latest-version >}} |
| 312 | + |
| 313 | +### `{{</* latest-semver */>}}` |
| 314 | + |
| 315 | +`{{</* latest-semver */>}}`ショートコードは`latest`から"v"接頭辞を取り除いた値を生成します。 |
| 316 | + |
| 317 | +これは次の様に表示されます。 |
| 318 | + |
| 319 | +{{< latest-semver >}} |
| 320 | + |
| 321 | +### `{{</* version-check */>}}` |
| 322 | + |
| 323 | +`{{</* version-check */>}}`ショートコードはページに`min-kubernetes-server-version`パラメーターがあるかどうか確認し、`version`と比較するために使用します。 |
| 324 | + |
| 325 | +これは次の様に表示されます: |
| 326 | + |
| 327 | +{{< version-check >}} |
| 328 | + |
| 329 | +### `{{</* latest-release-notes */>}}` |
| 330 | + |
| 331 | +`{{</* latest-release-notes */>}}`ショートコードは`latest`からバージョン文字列を生成し、"v"接頭辞を取り除きます。 |
| 332 | +このショートコードはバージョン文字列に対応したリリースノートCHANGELOGページのURLを表示します。 |
| 333 | + |
| 334 | +これは次の様に表示されます: |
| 335 | + |
| 336 | +{{< latest-release-notes >}} |
| 337 | + |
| 338 | +## {{% heading "whatsnext" %}} |
| 339 | + |
| 340 | +* [Hugo](https://gohugo.io/)について学ぶ。 |
| 341 | +* [新しいトピックの書き方](/docs/contribute/style/write-new-topic/)について学ぶ。 |
| 342 | +* [ページコンテンツタイプ](/docs/contribute/style/page-content-types/)について学ぶ。 |
| 343 | +* [Pull Requestの作り方](/docs/contribute/new-content/open-a-pr/)について学ぶ。 |
| 344 | +* [発展的コントリビュート](/docs/contribute/advanced/)について学ぶ。 |
| 345 | + |
0 commit comments