ショートコードの使用
Hugoのショートコードは、特定の構文を持つ特別なプレースホルダーであり、タブ、画像、アイコン、他のページへのリンク、特別なコンテンツレイアウトなど、動的なコンテンツエクスペリエンスを作成するためにコンテンツに追加できます。
このページでは、利用可能なショートコードと、コンテンツでの使用方法について説明します。
画像の追加
画像ファイルは、使用するmarkdownファイルと同じディレクトリに配置します。ローカライゼーションを容易にし、アクセシビリティを向上させるために、推奨される画像形式はSVGです。次の例は、画像を追加するために必要な必須フィールドを持つショートコードを示しています。
link
フィールドとcaption
フィールドは必須ですが、このショートコードはオプションのフィールドもサポートしています。例えば、以下のようなものです。
title
フィールドを含めない場合、Hugoはcaption
で設定されたテキストを使用します。alt
フィールドを含めない場合、Hugoはtitle
のテキストを使用します。また、title
が定義されていない場合は、caption
のテキストを使用します。
width
フィールドは、周囲のテキストに対する画像のサイズを設定し、デフォルトは100%です。
ratio
フィールドは、画像の幅に対する高さを設定します。Hugoは、フォルダ内の画像ファイルについてこの値を自動的に計算します。ただし、外部画像については手動で計算する必要があります。ratio
の値を([画像高さ] / [画像幅]) * 100
に設定します。
アイコンの追加
次のコンテンツを使用して、一般的なアイコンをコンテンツに埋め込むことができます。
アイコンはテキスト内にレンダリングされます。例えば, , , そして.
他のページへのリンクの追加
Istioドキュメントでは、ターゲットに応じて3種類のリンクをサポートしています。各タイプは、ターゲットを表現するために異なる構文を使用します。
外部リンク。これらは、IstioドキュメントまたはIstio GitHubリポジトリの外部にあるページへのリンクです。URLを含めるには、標準のMarkdown構文を使用します。インターネット上のファイルを参照する場合は、HTTPSプロトコルを使用します。例えば
相対リンク。これらのリンクは、現在のファイルと同じレベルまたは階層の下位にあるページをターゲットにします。相対リンクのパスはピリオド
.
で始めます。例えば絶対リンク。これらのリンクは、現在のページの階層外にあるが、Istio Webサイト内にあるページをターゲットにします。絶対リンクのパスはスラッシュ
/
で始めます。例えば
タイプに関係なく、リンクはコンテンツを含むindex.md
ファイルではなく、それを含むフォルダを指します。
GitHub上のコンテンツへのリンクの追加
GitHub上のコンテンツまたはファイルを参照する方法はいくつかあります。
{{< github_file >}}は、yamlファイルなど、GitHub内の個々のファイルを参照する方法です。このショートコードは、
https://raw.githubusercontent.com/istio/istio*
へのリンクを生成します。例えば{{< github_tree >}}は、GitHub内のディレクトリツリーを参照する方法です。このショートコードは、
https://github.com/istio/istio/tree*
へのリンクを生成します。例えば{{< github_blob >}}は、GitHubソース内のファイルを参照する方法です。このショートコードは、
https://github.com/istio/istio/blob*
へのリンクを生成します。例えば
上記のショートコードは、ドキュメントが現在ターゲットにしているブランチに基づいて、GitHubの適切なブランチへのリンクを生成します。現在どのブランチがターゲットになっているかを確認するには、{{< source_branch_name >}}
ショートコードを使用して、現在ターゲットにされているブランチの名前を取得できます。
バージョン情報
Webサイトから現在のバージョンを取得して、コンテンツに現在のIstioバージョンを表示するには、次のショートコードを使用します。
{{< istio_version >}}
、これは1.24としてレンダリングされます{{< istio_full_version >}}
、これは1.24.0としてレンダリングされます
用語集の用語
ページで特殊なIstio用語を紹介する場合、貢献に関する補足的な承認基準では、その用語を用語集に含め、{{< gloss >}}
ショートコードを使用して最初のインスタンスをマークアップする必要があります。このショートコードは、読者が用語をクリックして定義を示すポップアップを表示するように促す特別なレンダリングを生成します。例えば
次のようにレンダリングされます
サービスディスカバリー、ロードバランシング、ルーティングを担当する、EnvoyプロキシをプログラムするIstioコンポーネント。
テキストで用語のバリアントを使用する場合は、このショートコードを使用して定義付きのポップアップを含めることもできます。置換を指定するには、ショートコード内に用語集のエントリを含めるだけです。例えば
envoy
の用語集エントリのポップアップと共に次のようにレンダリングされます。
EnvoyのHTTPサポートは、まず第一にHTTP/2多重化プロキシとして設計されました。
コールアウト
コンテンツのブロックを強調するには、警告、アイデア、ヒント、または引用としてフォーマットできます。すべてのコールアウトは非常に似たショートコードを使用します。
上記のショートコードは次のようにレンダリングされます
コールアウトは控えめに使用してください。各タイプのコールアウトには特定の目的があり、それらを過度に使用すると、意図された目的とその有効性が損なわれます。一般的に、コンテンツファイルごとに複数のコールアウトを含めるべきではありません。
定型文の使用
コンテンツの単一ソースを維持しながら再利用するには、定型文ショートコードを使用します。定型文をコンテンツファイルに埋め込むには、次のようにboilerplate
ショートコードを使用します。
上記のショートコードには、/content/en/boilerplates/
フォルダのexample.md
Markdownファイルから次のコンテンツが含まれます
これは定型文のmarkdown テキストです。
この例は、現在の場所に挿入したいコンテンツを含むMarkdownファイルのファイル名を含める必要があることを示しています。既存の定型文ファイルは、/content/en/boilerplates
ディレクトリにあります。
タブの使用
複数のオプションまたはフォーマットを持つコンテンツを表示するには、タブセットとタブを使用します。例えば
- 異なるプラットフォームに対応する同等のコマンド
- 異なる言語での同等のコードサンプル
- 代替構成
タブ付きコンテンツを挿入するには、tabset
およびtabs
ショートコードを組み合わせて使用します。例えば
上記のショートコードは次の出力を生成します
各タブのname
属性の値には、タブに表示されるテキストが含まれます。各タブ内には、通常のMarkdownコンテンツを含めることができますが、タブには制限事項があります。
category-name
およびcategory-value
属性はオプションであり、選択したタブがページへのアクセス全体で固定されるようにします。例えば、訪問者がタブを選択すると、その選択は指定された名前と値で自動的に保存されます。複数のタブセットが同じカテゴリ名と値を使用する場合、それらの選択はページ間で自動的に同期されます。これは、サイトに同じタイプのフォーマットを保持する多くのタブセットがある場合に特に役立ちます。
例えば、複数のタブセットでGCP
、BlueMix
、およびAWS
のオプションを提供できます。category-name
属性の値をenvironment
に設定し、category-value
属性の値をgcp
、bluemix
、およびaws
に設定できます。次に、読者が1つのページでタブを選択すると、その選択はWebサイト全体のすべてのタブセットで自動的に引き継がれます。
タブの制限
次の例外を除き、タブではほとんどすべてのMarkdownを使用できます。
ヘッダー。タブ内のヘッダーは目次に表示されますが、目次のリンクをクリックしても、タブが自動的に選択されるわけではありません。
ネストされたタブセット。タブセットをネストしないでください。そうすると、読書体験が非常に悪くなり、重大な混乱を引き起こす可能性があります。
バナーとステッカーの使用
今後のイベントを宣伝したり、新しいものを公表したりするために、生成されたサイトに、時間制限付きのバナーとステッカーを自動的に挿入することができます。プロモーションのために、次のショートコードを実装しました。
カウントダウンステッカー:大きなイベントまでの残り時間を表示します。例えば、「3月30日のServiceMeshConまであと37日」など。ステッカーはイベント前に読者に視覚的なインパクトを与えるため、控えめに使用する必要があります。
バナー:これから開催される、開催中の、または開催された重大なイベントについて、読者に目立つメッセージを表示します。例えば、「Istio 1.5がリリースされました。今すぐダウンロードしてください!」または「3月30日のServiceMeshConにご参加ください」など。バナーは、イベント期間中に読者に表示されるフルスクリーンのスライスです。
バナーとステッカーを作成するには、events/banners
またはevents/stickers
フォルダにMarkdownファイルを作成します。動作を制御するための専用のフロントマターフィールドを使用して、イベントごとに1つのMarkdownファイルを作成します。次の表で、利用可能なオプションについて説明します。
フィールド | 説明 |
---|---|
title | イベントの名前。これはWebサイトには表示されず、診断メッセージ用です。 |
period_start | YYYY-MM-DD 形式で項目を表示し始める開始日。日付の代わりに、値latest_release にすることもできます。これにより、最新のIstioリリースが開始日として使用されます。これは、「Istio x.y.zがリリースされました」というバナーを作成する場合に役立ちます。 |
period_end | YYYY-MM-DD 形式で項目を表示する最後の日付。この値は、以下のperiod_duration と相互に排他的です。 |
period_duration | 項目をユーザーに表示する日数。この値は、上記のperiod_end と相互に排他的です。 |
max_impressions | イベント期間中にコンテンツをユーザーに表示する回数。値3は、期間中にユーザーが最初にアクセスした3ページにコンテンツが表示され、後続のページロードではコンテンツが非表示になることを意味します。値が0であるか、フィールドを完全に省略すると、期間中のすべてのページアクセスでコンテンツが表示されます。 |
timeout | 特定のページでコンテンツがユーザーに表示される時間。その時間が経過すると、項目はページから削除されます。 |
link | URLを指定して、項目全体をクリック可能なターゲットにすることができます。ユーザーが項目をクリックすると、その項目はユーザーに表示されなくなります。特別な値`latest_release`をここで使用して、現在のリリースの発表ページへのリンクを紹介できます。 |