コード

インライン コードには <code> を使用し、コードブロックには <pre class="prettyprint"> を使用します。構文のハイライト表示は、XML や HTML のサンプルなど、多くの言語で適切に機能します。コンソール コマンドや長いサービス エンドポイント URL など、構文のハイライト表示が例に適していない場合は、class="prettyprint" を省略できます。

<pre> ブロック内の 1 行あたりのコードは 100 文字以内にしてください。DevSite では、横方向のスクロールが開始される前に、大きな画面にちょうど 100 文字のコードを表示できます。小さい画面では、必要に応じてコードブロックが横方向にスクロールされます。80 文字であれば、ほとんどのノートパソコンに収まります。

#include <stdio.h>

/* Counting example */
int main(int argc, char** argv) {
    int i;

    // This counts from 0 to 9.
    for (i = 0; i < 10; i++) {
        printf("Counting %d\n", i);
    }
}
<pre class="prettyprint">
#include <stdio.h>

/* Counting example */
int main(int argc, char** argv) {
    int i;

    // This counts from 0 to 9.
    for (i = 0; i < 10; i++) {
        printf("Counting %d\n", i);
    }
}
</pre>

通常、コンソール コマンドでは <pre> から class="prettyprint" を省略します。次に例を示します。

dev_appserver.py -a $HOST --debug demos/getstarted
<pre>dev_appserver.py -a $HOST --debug demos/getstarted</pre>

クリックしてコピー

クラス prettyprint のすべてのコードブロックに、クリックしてコピーするボタンが自動的に表示されます。

クラス prettyprint を持たないコードブロックなどの要素でクリックしてコピーを使用するには、クラス devsite-click-to-copy を追加します。 some_terminal_command.py --users_should_copy <pre class="devsite-click-to-copy">some_terminal_command.py --users_should_copy</pre>

コードブロックのクリックしてコピーを無効にする

prettyprint コードブロックでクリックしてコピーを無効にするには、クラス devsite-disable-click-to-copy を追加します。

www.example-url-that-does-not-make-sense-to-copy.com
<pre class="prettyprint devsite-disable-click-to-copy">www.example-url-that-does-not-make-sense-to-copy.com</pre>

Markdown コードブロックでクリックしてコピーを無効にするには、コードフェンスを開いて devsite-disable-click-to-copy スタイルを適用するときに、次の構文を使用します。

{:.devsite-disable-click-to-copy}

コードブロックの一部でクリックしてコピーを無効にする

コードブロックの一部のコピーを防ぐには、コピーしたくない部分の周囲に、no-select クラスの <span> タグを追加します。

<span class="no-select">C:\> </span>ping google.com

以下の例では、手動コピーとクリックしてコピー ボタンの両方で、アノテーション付きの部分は無視されます。

C:\\> ping google.com

クリックしてコピーのアナリティクス イベント

クリックしてコピーするアナリティクス イベントの曖昧さを解消するには、data-copy-event-label 属性を設定します。

data-copy-event-label
<pre class="devsite-terminal devsite-click-to-copy" data-copy-event-label="unique_identifier"></pre>

クリックしてコピーとユーザー補助

デフォルトでは、すべてのクリックしてコピー コードサンプルのクリックしてコピー ボタンに同じラベル(「コードサンプルをコピー」)が付けられます。複数のコードサンプルがあるページでは、スクリーン リーダーでのナビゲーションが難しくなる可能性があります。

ユーザー補助のため、クリックしてコピーできる各コードサンプルに data-label 属性を指定し、各コードサンプルの内容を簡潔にラベル付けします。各コードサンプルのラベルは、ページ上の他のコードサンプルのラベルと比較して一意である必要があります。このラベルは、「コードサンプルをコピー」に加えて、スクリーン リーダーによって読み上げられます。 {:.devsite-click-to-copy} <pre class="devsite-click-to-copy" data-label="Installation script"></pre>

ライトモード/ダークモードの切り替えを無効にする

コードブロックのライトモード/ダークモード切り替えボタンを無効にするには、クラス devsite-disable-code-toggle を追加します。

<pre class="prettyprint devsite-disable-code-toggle"></pre>

Markdown コードブロックの明るい/暗い切り替えボタンを無効にするには、コードフェンスを開いて devsite-disable-code-toggle クラスを適用するときに、次の構文を使用します。

``` {.devsite-disable-code-toggle}

デフォルトでダークコード

コードブロックでデフォルトでダークコード スタイルを使用するようにするには、クラス devsite-dark-code-default を追加します。

<pre class="prettyprint devsite-dark-code-default"></pre>

行の折り返しを強制する

デフォルトでは、<pre> ブロック内の 100 文字を超える行に水平スクロールバーが追加されます。

run(dataset: google.cloud.aiplatform.datasets.time_series_dataset.TimeSeriesDataset, target_column: str, time_column: str, time_series_identifier_column: str, unavailable_at_forecast_columns: List[str], available_at_forecast_columns: List[str], forecast_horizon: int, data_granularity_unit: str, data_granularity_count: int, training_fraction_split: Optional[float] = None, validation_fraction_split: Optional[float] = None, test_fraction_split: Optional[float] = None, predefined_split_column_name: Optional[str] = None, weight_column: Optional[str] = None, time_series_attribute_columns: Optional[List[str]] = None, context_window: Optional[int] = None, export_evaluated_data_items: bool = False, export_evaluated_data_items_bigquery_destination_uri: Optional[str] = None, export_evaluated_data_items_override_destination: bool = False, quantiles: Optional[List[float]] = None, validation_options: Optional[str] = None, budget_milli_node_hours: int = 1000, model_display_name: Optional[str] = None, model_labels: Optional[Dict[str, str]] = None, sync: bool = True)

この動作をオーバーライドして行を折り返すには、<pre> ブロックに class="wrap-code" を追加します。

run(dataset: google.cloud.aiplatform.datasets.time_series_dataset.TimeSeriesDataset, target_column: str, time_column: str, time_series_identifier_column: str, unavailable_at_forecast_columns: List[str], available_at_forecast_columns: List[str], forecast_horizon: int, data_granularity_unit: str, data_granularity_count: int, training_fraction_split: Optional[float] = None, validation_fraction_split: Optional[float] = None, test_fraction_split: Optional[float] = None, predefined_split_column_name: Optional[str] = None, weight_column: Optional[str] = None, time_series_attribute_columns: Optional[List[str]] = None, context_window: Optional[int] = None, export_evaluated_data_items: bool = False, export_evaluated_data_items_bigquery_destination_uri: Optional[str] = None, export_evaluated_data_items_override_destination: bool = False, quantiles: Optional[List[float]] = None, validation_options: Optional[str] = None, budget_milli_node_hours: int = 1000, model_display_name: Optional[str] = None, model_labels: Optional[Dict[str, str]] = None, sync: bool = True)

コード:

<pre class="wrap-code">
run(dataset: google.cloud.aiplatform.datasets.time_series_dataset.TimeSeriesDataset, target_column: str, time_column: str, time_series_identifier_column: str, unavailable_at_forecast_columns: List[str], available_at_forecast_columns: List[str], forecast_horizon: int, data_granularity_unit: str, data_granularity_count: int, training_fraction_split: Optional[float] = None, validation_fraction_split: Optional[float] = None, test_fraction_split: Optional[float] = None, predefined_split_column_name: Optional[str] = None, weight_column: Optional[str] = None, time_series_attribute_columns: Optional[List[str]] = None, context_window: Optional[int] = None, export_evaluated_data_items: bool = False, export_evaluated_data_items_bigquery_destination_uri: Optional[str] = None, export_evaluated_data_items_override_destination: bool = False, quantiles: Optional[List[float]] = None, validation_options: Optional[str] = None, budget_milli_node_hours: int = 1000, model_display_name: Optional[str] = None, model_labels: Optional[Dict[str, str]] = None, sync: bool = True)
</pre>

ターミナル コード

ターミナルのコードを紹介する場合は、$ を使用して新しいターミナル コマンドを示すことをお勧めします。ユーザーがコピーしたコードに追加せずに、<pre> コンテナの内容の先頭に $ を追加するには、<pre> 要素に class="devsite-terminal" を適用します。

adb devices

コード:

<pre class="devsite-terminal devsite-click-to-copy">
adb devices
</pre>

ターミナル コードの 1 行の先頭に $ を追加するには、その行を含む <code> 要素に class="devsite-terminal" を適用します。この方法は、複数行に $ があるケースに使用します。

gradle init --type basic
mkdir -p src/main/java src/main/resources

コード:

<pre class="prettyprint">
<code class="devsite-terminal">gradle init --type basic</code>
<code class="devsite-terminal">mkdir -p src/main/java src/main/resources</code>
</pre

カスタム接頭辞を使用するには、クラスが適用された <pre> 要素または <code> 要素に data-terminal-prefix 属性を追加します。

Install-Package Google.Apis.Calendar.v3

コード:

<pre class="devsite-terminal devsite-click-to-copy" data-terminal-prefix="PM&gt; ">
Install-Package Google.Apis.Calendar.v3
</pre>

「devsite-terminal」クラスを使用して追加された接頭辞のインスタンスはすべて、ユーザーがコピーしたコードから除外されます。

ハイライト

<strong> を使用すると、<pre> ブロック内のコンテンツに注意を喚起できます。これにより、周囲のコンテンツが明るくなり、<strong> ブロックでハイライト表示されたセクションが強調されます。次に例を示します。

// ...
// ...
// ...
for (i = 0; i < 10; i++) {
    printf("Counting %d\n", i);

    if (i % 3 == 0) {
        someFunc(i);
    }
}
// ...
// ...
// ...

コード:

<pre class="prettyprint">
// ...
// ...
// ...
for (i = 0; i < 10; i++) {
    printf("Counting %d\n", i);

    <strong>if (i % 3 == 0) {
        someFunc(i);
    }</strong>
}
// ...
// ...
// ...
</pre>

置換可能な変数

<pre> 内の置換テキストには、<var> と大文字のアンダースコアを使用します。次に例を示します。

dev_appserver.py YOUR_APP_DIR.

コード:

<pre>dev_appserver.py <var>YOUR_APP_DIR</var></pre>

Markdown では、<var> タグを引用符で囲み、Jinja 式の角かっこを使用してタグをエスケープします(例: VAR_NAME)。

次に例を示します。

Hello, my name is YOUR_NAME.

コード:

    ```
    Hello, my name is YOUR_NAME.
    ```

マークダウン

Markdown を使用してコードブロックを指定することもできます。コードを 4 スペースインデントするか、3 つのバッククォート(```)で囲みます。

次に例を示します。

    ```
    print("hello world")
    ```
    print("hello world")

両方とも

<pre class="prettyprint notranslate" translate="no"><code>
print("hello world")
</code></pre>

インデントされたコードブロックではなく、フェンス付きコードブロックを使用している場合は、prettyprint が認識する言語を指定することもできます。

print("hello world")

以下のようになります。

<pre class="prettyprint notranslate lang-py" translate="no"><code>
print("hello world")
</code></pre>

認識される言語のリストについては、Prettify のドキュメントをご覧ください。

Markdown で作成されたコードブロックにはすべて、言語を none に明示的に設定しない限り、prettyprint クラスが適用されます。カスタム属性を使用して、コードブロックにクラスを追加できます。

The program completed successfully.

以下のようになります。

<pre class="devsite-disable-click-to-copy"><code>The program completed successfully.
</code></pre>