> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# モジュールを使ってみる

> カスタムモジュールと呼ばれる、さまざまなページやテンプレートで再利用可能なコンポーネントを作成しましょう。フィールドの説明や、フィールドをHubLで使う方法をご紹介します。

'カスタムモジュールと呼ばれる、さまざまなページやテンプレートで再利用可能なコンポーネントを作成しましょう。フィールドの説明や、フィールドをHubLで使う方法をご紹介します。';

'[https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png](https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png)';

このチュートリアルでは、HubSpot CMSボイラープレートテーマを使用してモジュールを作成し、このモジュールをテーマの一部としてテンプレートやページで使用する方法を説明します。このチュートリアルに従って作業を進めると、テキストフィールド、画像フィールド、リッチ テキスト フィールドを含むTestimonial（お客さまの感想）モジュールが完成します。

<Alert type="tip">
  CMS Hubを使って初めて開発する場合には、こちらをお勧めします。

  <CTA id="28bfd0e9-ec05-48a5-b069-ce20015f54ac" label="CMS Hub開発のクイックスタート" />
</Alert>

<Alert type="info" titleText="注：">
  テーマで使用するモジュールを開発し、HubSpotのアセットマーケットプレイスに掲載することを目指している場合は、[アセットマーケットプレイスのモジュールに必要な条件](https://developers.hubspot.com/docs)をご確認ください。
</Alert>

## 始める前に

このチュートリアルを開始する前に、次の作業を行ってください。

* [CMS Hub開発者用サンドボックス](https://offers.hubspot.com/free-cms-developer-sandbox)をセットアップします。既存のアカウントを使用することもできますが、サンドボックスを使用すると、メインアカウントのアセットに影響を与えることなく開発できます。
* HubSpotのローカル開発ツールの利用に必要な[Node.js](https://nodejs.org/ja/)をインストールします。バージョン10以降がサポートされています。

一足飛びに進めたい場合には、完成した[プロジェクトファイル](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea)のプレビューを確認できます。CMSボイラープレートテーマのコードは時間の経過と共に変化する可能性があるため、チュートリアル中に開発者が作成または編集する必要がある特に重要なファイルのみが含まれています。例えば以下のファイルが含まれます。

1. **Testimonial.module**: チュートリアルで作成されるカスタムモジュールを構成するファイルを含むフォルダー。
2. **homepage.html**: 編集してカスタムモジュールを含めるテンプレート。
3. **images**: モジュール内で使用するプロファイル写真が入ったフォルダー。

## ローカル開発環境をセットアップする

このチュートリアルでは、ローカル環境でモジュールを開発します。コマンド ライン インターフェイスからHubSpotを利用するには、[HubSpot CLI](/developer-tooling/local-development/hubspot-cli/install-the-cli)をインストールし、アカウントへのアクセスを設定する必要があります。

* ターミナルで次のコマンドを実行して、CLIをグローバルにインストールします。CLIを現在のディレクトリーにのみインストールする場合は、`npm install @hubspot/cli`を実行します。

```shell theme={null}
npm install -g @hubspot/cli
```

* テーマファイルの保存先とするディレクトリーで、HubSpotアカウントを認証し、CLIを介してアカウントを操作できるようにします。

```shell theme={null}
hs account auth
```

* **Enter**キーを押して、ブラウザーでパーソナル アクセス キーのページを開きます。
* デプロイ先にする**アカウント**を選択してから、［このアカウントで続行］をクリックします。アカウントのパーソナル アクセス キーのページにリダイレクトされます。
* 「パーソナル アクセス キー」の横にある［表示］をクリックしてキーを表示します。次に［コピー］をクリックして、キーをクリップボードにコピーします。
* コピーしたキーをターミナルに貼り付け、**Enter**キーを押します。
* 他と重複しないアカウント**名**を入力します。この名前はユーザーが区別するためのもので、コマンドの実行時にも使用します。次に**Enter**キーを押して、ローカル開発ツールをアカウントに接続します。

`~/.hscli/config.yml`ファイルが作成されたことの確認として、成功メッセージが表示されます。

## CMSボイラープレートをアカウントに追加する

* 次のコマンドを実行して、`my-theme`という名前の新しいテーマを作成します。このコマンドを実行すると、ボイラープレートアセットを格納する`my-theme`という名前のフォルダーが作業ディレクトリー内に作成されます。

```shell theme={null}
hs create website-theme my-theme
```

* ファイルをアカウントにアップロードします。

```shell theme={null}
hs upload <src> <destination>
```

| パラメーター | 説明                                             |
| ------ | ---------------------------------------------- |
|        | 現在の作業ディレクトリーを基準としたローカルファイルの相対パス。               |
|        | HubSpotアカウント内のアップロード先とするパス。新しいフォルダーにすることができます。 |

例えば、`hs upload my-theme my-new-theme`を実行すると、コンピューター内の`my-theme`フォルダーがHubSpot内の`my-new-theme`フォルダーにアップロードされます。

<Alert type="info">
  デフォルトでは、`hubspot.config,yml`ファイル内に指定したデフォルトのアカウントにアップロードされます。ただし、コマンドに`--account=<accountNameOrId>`フラグを追加してアカウントを指定することもできます。例えば、`hs upload --portal=mainProd`です。

  詳細については、[CLIコマンドリファレンス](/developer-tooling/local-development/hubspot-cli/install-the-cli)をご確認ください。
</Alert>

## HubSpot内でモジュールを作成する

ローカル環境内でCMSボイラープレートを使用して、テーマの新しいモジュールを作成します。

<Alert type="info">
  このチュートリアルでは、HubSpot内でモジュールを作成してから、CLIを使用して、そのモジュールをテーマに取り込みます。ただし、[hs create module](/developer-tooling/local-development/hubspot-cli/install-the-cli)コマンドを使用して、ローカルでゼロからモジュールを作成することもできます。
</Alert>

* HubSpotアカウントにログインし、［マーケティング］>［ファイルとテンプレート］>［デザインツール］に移動してデザインマネージャーを開きます。

* デザインマネージャーの左のサイドバーで、アップロードした**テーマフォルダー**を開きます。

* テーマフォルダー内にある**モジュールフォルダー**を開きます。

* このフォルダー内に新しいモジュールを作成するために、画面左上の［ファイル］>［新規ファイル］をクリックします。

* ダイアログボックスで、**ドロップダウンメニュー**をクリックし、［モジュール］を選択してから［次へ］をクリックします。

  ![新しいモジュールのドロップダウンメニュー0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/new-module-dropdown-menu0.png)

* ［ページ］チェックボックスをオンにして、モジュールをウェブサイトとランディングページで使用できるようにします。

* モジュールの名前として「**Testimonial**」と入力してから、［作成］をクリックします。

### モジュールにフィールドを追加する

次は、以下の3つのフィールドをモジュールに追加します。

* 評価コメントを寄せてくれた顧客の名前を保存するテキストフィールド。
* 顧客のプロファイル写真を保存する画像フィールド。
* 顧客からの評価コメントを保存するリッチ テキスト フィールド。

#### 顧客名を入力するテキストフィールドを追加する

* モジュールエディターの右のサイドバーで、［フィールドの追加］ドロップダウンメニューをクリックし、［テキスト］を選択します。

  ![Testimonialモジュールにフィールドを追加](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/testimonial-module-add-field.png)

* 右のサイドバーで、右上にある**鉛筆アイコン**をクリックし、フィールドに名前を付けます。このチュートリアルでは、「**Customer Name**」（顧客名）と入力します。これにより、HubL変数名が「**customer\_name**」に変わります。

* ［デフォルトのテキスト］を「**Sally**」に設定します。

![テキストフィールドの例](https://cdn2.hubspot.net/hubfs/53/Text-Field-3.png)

* 右側のサイドバーの**階層リンク**アイコンをクリックして、メインモジュールのメニューに戻ります。

![モジュールのパンくずリストアイコン0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/module-breadcrumb-icon0.png)

#### 顧客のプロファイル写真を設定する画像フィールドを追加する

* 同じ方法で他のフィールドを追加します。今回は、［画像］フィールドタイプを選択します。
* 画像フィールドに「**Profile Picture**」（プロファイル写真）というラベルを付け、［HubL変数名］を「**profile\_pic**」にします。
* ［デフォルトの画像］では、完成した[プロジェクトファイル](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea/images)が格納されている「**images**」フォルダー内にあるSallyのプロファイル写真を選択します。
* ［代替テキスト］を「**Sally Profile Picture**」（サリーのプロファイル写真）に設定します。

![プロファイル写真でモジュールを始める](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/getting-started-with-modules-profile-pic.png)

#### Sallyからの評価を入力するリッチ テキスト フィールドを追加する

* 同じ方法で他のフィールドを追加します。今回は［リッチテキスト］フィールドタイプを選択します。
* リッチ テキスト フィールドに「**Testimonial**」というラベルを付けます。
* ［デフォルトのリッチテキスト］ボックスをクリックし、「I've had nothing but wonderful experiences with this company」（この会社のサービスは素晴らしいの一言でした）と入力します。

![リッチ テキスト フィールドの例](https://cdn2.hubspot.net/hubfs/53/Rich-Text-Field-5--.png)

モジュールの複数のフィールドにデータを追加しました。ただし、現時点ではこのモジュールに、そのデータをレンダリングするためのHTMLが含まれていません。モジュールエディターでは、この状態を反映して`module.html`セクションが空になっています。![モジュールのHTMLが空0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/module-html-empty0.png)

次は、フィールドのデータを表示するためのHubLを`module.html`に追加します。

### フィールドデータを表示するためのHubLを追加する

これまでに作成したフィールドのデータを表示するために、次のHubLを`module.html`ペインに追加します。

```hubl theme={null}
<!-- module.html -->
{{module.customer_name}}
<img src={{module.profile_pic.src}} alt="{{module.profile_pic.alt}}">
{{module.testimonial}}
```

上記のHubLトークンでは、各フィールドのデータにアクセスするためにドット表記を使用しています。この例ではモジュールフィールドからデータを取得する必要があるため、各トークンを`module`で始めて、その後にフィールドのHubL変数名を続けています。上記の3行目にある`profile_pic`トークンに示されているように、ドット表記を使用すると、特定のフィールドにアクセスできるだけでなく、そのフィールドの特定のプロパティーにアクセスできます。

* HubLをモジュールに追加した後、画面右上の［プレビュー］をクリックして、現時点でモジュールがどのように表示されるかを確認します。

![デザインマネージャーのプレビュー画面](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/design-manager-previewer.png)

* 確認が終わったら、右上にある［変更を公開］をクリックします。

HubSpot内でモジュールを作成して公開したので、次はCLIを使用してモジュールをローカル環境に取り込みます。こうすることで、モジュールの内容をローカル環境で表示し、さらに変更を加えることができます。

## モジュールをローカル環境で表示して変更する

モジュールをローカル環境で表示するには、まず、モジュールをローカルテーマに取り込む必要があります。

* ターミナルで、`hs fetch <hs_src> <destination>`コマンドを実行します。

  * `<hs_src>`は、HubSpot内でのモジュールのファイルパスです。ファイルパスを取得するには、デザインマネージャーの左のサイドバーでモジュールを右クリックし、［パスをコピー］を選択します。

    ![デザインマネージャーでパスをコピー0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/design-manager-copy-path0.png)

  * `<destination>`は、テーマが置かれているローカルディレクトリーのパスです。これを省略した場合はデフォルトで、コマンドによって現在の作業ディレクトリーが使用されます。

例えば、該当するディレクトリーが既にカレント作業ディレクトリーになっている場合、fetchコマンドは次のようになります。

```shell theme={null}
hs fetch my-theme/modules/testimonial.module
```

### ローカル環境内のモジュールフォルダーを開く

使い慣れたコードエディター上で、HubSpotアカウントから取り込んだモジュールのフォルダーに進みます。モジュールフォルダーには、次の5つのファイルがあります。

| パラメーター        | 説明                              |
| ------------- | ------------------------------- |
| `fields.json` | モジュールのフィールドが含まれているJSONオブジェクト。   |
| `meta.json`   | モジュールに関するメタ情報が含まれているJSONオブジェクト。 |
| `module.css`  | モジュールのスタイルを設定するCSSファイル。         |
| `module.html` | モジュール用のHTMLおよびHubL。             |
| `module.js`   | モジュール用のJavaScript。              |

[モジュールのファイル構造](https://developers.hubspot.com/docs)、特に`fields.json`ファイルと`meta.json`ファイルについて詳しく説明したドキュメントをご参照ください。このチュートリアルでは`fields.json`、`module.css`、`module.html`の3つのファイルに焦点を当て、それらがどのように生成され、デザインマネージャーとモジュールエディターの間でダウンロード／アップロードされるかを説明します。

### モジュールのfields.jsonファイルを確認する

モジュールの`fields.json`ファイルを開きます。このファイルには次のようなJSONオブジェクトが含まれています（一部の`id`番号、画像フィールドの`src`属性、また場合によってはフィールドの順序などを除く）。

```json theme={null}
//fields.json

[
  {
    "label": "Customer Name",
    "name": "customer_name",
    "id": "2a025cd5-7357-007f-ae2f-25ace762588e",
    "type": "text",
    "required": true,
    "locked": false,
    "validation_regex": "",
    "allow_new_line": false,
    "show_emoji_picker": false,
    "default": "Sally"
  },
  {
    "label": "Profile Picture",
    "name": "profile_pic",
    "id": "7877fb84-eb8a-d2c7-d939-77e6e9557d8f",
    "type": "image",
    "required": false,
    "locked": false,
    "responsive": true,
    "resizable": true,
    "default": {
      "src": "https://cdn2.hubspotqa.net/hubfs/101140939/profile-pic-sally.svg",
      "alt": "Sally Profile Picture",
      "width": 100,
      "height": 100,
      "max_width": 100,
      "max_height": 100
    }
  },
  {
    "label": "Testimonial",
    "name": "testimonial",
    "id": "c5524ece-1ab5-f92d-a5de-e2bf53199dfa",
    "type": "richtext",
    "required": false,
    "locked": false,
    "default": "<p>I’ve had nothing but wonderful experiences with this company.</p>"
  }
]
```

次のフィールドの値は、ステップ3で追加した値と一致します。

* `name`：フィールドの名前。
* `label`：フィールドのラベル。
* `default`：フィールドのデフォルト値。

### モジュールのmodule.htmlファイルを確認する

`module.html`ファイルには、先ほどHubL＋HTMLモジュールエディターで記述したHubLとHTMLが含まれています。

このコードに工夫を加えて、CSSでスタイル設定できるよう、次のコードをコピーして、ファイルに貼り付けます。

```hubl theme={null}
<div class="testimonial">
  <h1 class="testimonial__header"> {{ module.customer_name }} </h1>
  <img class="testimonial__picture" src={{ module.profile_pic.src }} alt={{ module.profile_pic.alt }}>
  {{ module.testimonial }}
</div>
```

<Alert type="info">
  上のHTMLの記述では、HubSpot CMSボイラープレートテーマの[スタイルガイド](https://css-tricks.com/bem-101/)に従った[BEMクラス構造](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/STYLEGUIDE.md#css-code-formatting)を使用しています。
</Alert>

### モジュールのmodule.cssファイルを確認する

`module.css`ファイルは、現時点では空の状態になっています。スタイルを追加するには、次のコードをコピーし、ファイルに貼り付けます。

```css theme={null}
.testimonial {
  text-align: center;
}

.testimonial__header {
  font-weight: bold;
}

.testimonial__picture {
  display: block;
  margin: auto;
}
```

コードの追加後、ファイルを保存します。

## ローカル環境で行った変更をHubSpotアカウントにプッシュする

ローカル環境での変更を保存したら、その変更内容をHubSpotアカウントにプッシュします。

* ターミナルを開き、正しいディレクトリー上で作業していることを確かめます。
* 保存時に変更がHubSpotに適用されるように、`hs watch <src> <destination>`コマンドを実行します。

```shell theme={null}
hs watch my-theme my-theme
```

## HubSpotでローカルの変更をプレビューする

* HubSpotアカウントにて、［マーケティング］＞［ファイルとテンプレート］＞［デザインツール］の順に進みます。
* 左側のサイドバーで、作成した**テーマ**に進み、**module**フォルダーを開いて**Testimonial**モジュールを選択します。
* モジュールを開き、`module.html`ペインと`module.css`ペインに変更が反映されていることを確認します。
* 右上にある［プレビュー］をクリックします。新しいタブが開き、モジュールのプレビューが表示されます。

![モジュールのプレビューの例](https://cdn2.hubspot.net/hubfs/53/Module-Preview-7.png)

ここまでのチュートリアルでは、次のような作業を行いました。

* HubSpotでモジュールを作成しました。
* モジュールをローカル環境に取り込みました。
* ローカルの開発ツールを使用してHubL＋HTMLおよびCSSを変更しました。

このチュートリアルの次のパートでは、テンプレート内のモジュールの使い方を説明します。

## モジュールをテンプレートに追加する

チュートリアルのこの部分では、ローカルのテーマファイル内の`modules`フォルダーと`templates`フォルダーを主に扱います。![テーマフォルダーの構造：モジュールの作成を始める0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/theme-folder-structure-getting-started-with-modules0.png)

簡単な定義で説明するなら、モジュールとはHubSpotのテンプレートとページの編集可能な領域です。HubSpotではデザインマネージャーを使ってモジュールをテンプレートに挿入できますが、ここではHubLを使用して、モジュールをローカル環境内のテンプレートに追加します。

* コードエディターで、`templates`フォルダーを開き、`home.html`ファイルを開きます。

* `home.html`ファイル内の28行目付近から始まる最後の`dnd_section`に移動します。ここでは、このセクションに新しいモジュールを追加します。

  ![home.htmlのセクションにTestimonialモジュールを追加0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/home-html-add-testimonial-module-to-section0.png)

* `dnd_section`内の他の`dnd_modules`の上に、次のHubLモジュールタグをコピーして貼り付けます。

```hubl theme={null}
{% dnd_module
 path= “../modules/Testimonial.module”,
 offset=0,
 width=4
%}
{% end_dnd_module %}
```

このHubLタグでは、新しいモジュールが相対ファイルパスで参照されます。このモジュールを`dnd_section`の他の2つのモジュールと均等な割合で収めるには、モジュールの`width`と`offset`で、幅とオフセットをそれぞれ指定します。

* HubSpotのCMSでは[12列のグリッドシステム](https://developers.hubspot.com/docs#columns)を使用しているため、このモジュールを他の2つと均等な割合で配置するには、`dnd_section`の各モジュールを更新して幅を`4`に設定する必要があります。
* 次に、グループの最初の`dnd_module`（`testimonial`）のオフセットを`0`に設定して、このモジュールが最初に配置されるようにします。
* 2つ目の`dnd_module`（`linked_image`）のオフセットを`4`に設定して、2番目に配置されるようにします。
* 3つ目の`dnd_module`（`rich_text`）のオフセットを`8`に設定して、3番目に配置されるようにします。

各`dnd_module`の`offset`と`width`を設定した後のコードは、次のようになります。

```hubl theme={null}
{% dnd_section
    background_color="#f8fafc",
    vertical_alignment="MIDDLE"
  %}

    {% dnd_module
      path= “../modules/Testimonial.module”,
      offset=0,
      width=4
    %}
    {% end_dnd_module %}

    {% dnd_module
      path="@hubspot/linked_image",
      img={
        "alt": "Stock placeholder image with grayscale geometrical mountain landscape",
        "loading": "lazy",
        "max_height": 451,
        "max_width": 605,
        "size_type": "auto_custom_max",
        "src": get_asset_url("../images/grayscale-mountain.png")
      },
      offset=4,
      width=4
    %}
    {% end_dnd_module %}
    {% dnd_module
      path="@hubspot/rich_text",
      html="<h2>Provide more details here.</h2><p>Use text and images to tell your company’s story. Explain what makes your product or service extraordinary.</p>"
      offset=8,
      width=4
    %}
    {% end_dnd_module %}
  {% end_dnd_section %}
```

<Alert type="info">
  モジュールをドラッグ＆ドロップ領域に追加する場合、モジュールタグに固有名は<u>不要</u>です。ただし、モジュールをドラッグ＆ドロップ領域外のHTMLファイルに追加する場合は、モジュールに固有名を割り当てる必要があります。また、次のように少々異なる構文を使用します。

  `{% module "testimonial_one" path="../modules/Testimonial.module" %}`

  [テンプレートでモジュールを使用する方法](/cms/reference/modules/using-modules-in-templates)について詳細をご確認ください。
</Alert>

## HubSpotで変更をプレビューする

* 保存された作業を自動的に追跡する`watch`コマンドを実行中の状態にしていない場合は`hs watch <src> <dest>`を実行します。以降の一連のステップを進めるに当たり、必ずこのコマンドを実行してください。
* HubSpotアカウントで、デザインマネージャーを開きます（［マーケティング］＞［ファイルとテンプレート］＞［デザインツール］）。
* デザインマネージャーの左のサイドバーで、**home.html**ファイルを選択します。
* 右上の［プレビュー］をクリックし、［表示オプションを使用したライブプレビュー］を選択して、新しいウィンドウでテンプレートのプレビューを開きます。

![ライブプレビューの例](https://cdn2.hubspot.net/hubfs/53/Live-Preview-10.png)

* 新しいタブでテンプレートプレビューを表示すると、新しく追加したTestimonialモジュールが含まれているはずです。

![テーマに追加されたTestimonialモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/testimonial-module-added-to-theme.png)

## テンプレート内のモジュールをカスタマイズする

ホームページテンプレートに工夫を加えるには、次の手順に従います。

* コードエディターに戻り、`home.html`ファイルを開きます。
* Testimonialモジュールタグに、以下のパラメーターを追加します。

```hubl theme={null}
{% dnd_module
 path='../modules/Testimonial.module',
 customer_name = "Mary",
 profile_pic = {
  src: "{{
   get_asset_url('../images/profile-pic-mary.svg') }}",
   alt: "Mary Profile Picture"
   },
 testimonial = "Wow, what a product! I can't wait to recommend this to all my family and friends!",
 offset=0,
 width=4
%}
{% end_dnd_module %}
```

上記のパラメーターは、3つのフィールドに当初割り当てたデフォルト値よりも優先されます。各パラメーターでは、先ほど各フィールドに割り当てたHubL変数名が使用されています。

* `customer_name` このパラメーターは、`Mary`という名前を顧客名フィールドに渡し、元の値である`Sally`をオーバーライドします。
* `profile_pic`: このパラメーターは、2つのプロパティーを含むオブジェクトです。
  * `src`プロパティーでは`get_asset_url` HubL関数を使用して、新しいプロフィール写真のURLを取得します。画像のファイルパスは、作業ディレクトリーを基準とした相対パスであることにご注意ください。まず、この画像を`images`フォルダー内のローカル テーマ ファイルに追加する必要があります。この画像は、完成した[プロジェクトファイル](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea/images)を格納する`images`フォルダー内にあります。
  * `alt`プロパティーでは、画像の代替テキストを割り当てます。
* `testimonial`: このパラメーターは、評価コメントのフィールドに新しいテキストを渡します。

あるいは、HubLブロック構文をリッチ テキスト フィールドで使用して、HTMLまたはテキストの大きなブロックを次のように記述することもできます。

```hubl theme={null}
{% dnd_module
 path='../modules/Testimonial.module',
 customer_name = "Mary",
 profile_pic = {
  src: "{{
   get_asset_url('../images/profile-pic-mary.svg') }}",
   alt: "Mary Profile Picture"
   },
 offset=0,
 width=4
%}
 {% module_attribute "testimonial" %}
   Wow, what a product! I can't wait to recommend this to all my family and friends!
 {% end_module_attribute %}
{% end_dnd_module %}
```

[モジュールブロック構文](/cms/reference/modules/using-modules-in-templates)の詳細をご確認ください。

ターミナルで`watch`コマンドが実行中であれば、保存した変更がHubSpotに送信されます。その後デザインマネージャーに戻り、テンプレートをプレビューできます。

![テンプレート内のMaryモジュール](https://cdn2.hubspot.net/hubfs/53/Mary-Module-in-Template-12.png)

## テンプレートにさらに2つのTestimonialモジュールを追加する

このステップでは、前と同じ手順に従って、さらに2つのTestimonialモジュールをテンプレートに追加します。

* コードエディターを開き、`home.html`ファイルを開きます。

* 前に追加したTestimonialモジュールをコピーして、その下に貼り付けることにより、このモジュールの別のインスタンスを追加します。新しいTestimonialモジュール内で、前と同じ手順に従って以下の詳細を指定します。
  * 顧客の名前は`Ollie`です。
  * Ollieからの感想は「`I can't believe that I ever conducted business without the use of this product!`」です。
  * Ollieの写真として、`images`フォルダー内のファイルの相対ファイルパスを追加します。この画像そのものは、完成した[プロジェクトファイル](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea)から取得できます。Ollieの画像に、`Ollie Profile Picture`（Ollieのプロファイル写真）という`alt`属性を設定します。
  * 間隔を均等に維持するには、`offset`を`4`に、`width`を`4`に設定します。

* 2つ目のTestimonialモジュールの下に、3つ目のTestimonialモジュールを追加して、以下の詳細を指定します。

  * 顧客の名前は`Erin`です。
  * Erinからの感想は「`My business has nearly tripled since I began to use this product! Don't wait, start now!`」です。
  * Erinの写真として、`images`フォルダー内のファイルの相対ファイルパスを追加します。Erinの画像に、`Erin Profile Picture`（Erinのプロファイル写真）という`alt`属性を設定します。
  * 間隔を均等に維持するには、`offset`を`8`に、`width`を`4`に設定します。

* 変更内容を保存します。

ターミナルで`watch`コマンドを実行中の状態にしている場合、デザインマネージャーに戻ると、テンプレートの変更内容をプレビューできます。現時点で、テンプレートのプレビューに3つ全てのTestimonialモジュールが含まれています。

![テーマに追加されたTestimonialモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/testimonial-modules-added-to-theme.png)

最後のステップとして、`theme.json`ファイルを変更して、テーマを公開ページで使用できるようにします。

## テーマ名を変更する

テーマのデフォルトの名前を変更するには、`theme.json`ファイルで`name`フィールドと`label`フィールドを設定します。

```json theme={null}
// example theme.json

{
  "name": "my_first_theme",
  "label": "My first theme"
}
```

上記のコードを追加した後、変更を保存すると、`watch`コマンドによってHubSpotに変更が送信されます。

## 次のステップ

このチュートリアルでは、カスタムモジュールを作成して`home.html`テンプレートに追加し、オプションでテーマの名前をカスタマイズしました。これで、このテンプレートからページを作成して公開できるようになりました。

テーマに焦点を当てた同様のチュートリアルにご興味がありましたら、次のステップとして、こちらの[テーマ入門チュートリアル](/cms/start-building/building-blocks/themes/getting-started)をご参照ください。あるいは、HubSpotのナレッジベースで[ページの作成とカスタマイズ](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-and-customize-pages)について詳細を確認することもできます。

モジュールの詳細については、以下のモジュールガイドをご確認ください。

* [モジュールの設定](/cms/reference/modules/configuration)
* [テンプレートでモジュールを使用する](/cms/reference/modules/using-modules-in-templates)
* [デフォルトのモジュール](/cms/reference/modules/default-modules)

## その他のチュートリアル

* [テーマを使ってみる](/cms/start-building/building-blocks/themes/getting-started)
* [サーバーレス関数を使ってみる](https://developers.hubspot.com/docs)
* [効率的な開発ワークフローの構築](/cms/start-building/introduction/developer-environment/creating-an-efficient-development-workflow)
* [アクセシビリティーについて](/cms/best-practices/improve-existing-sites/accessibility)
* [CMS HubでのJavaScriptフレームワークの使用方法](/cms/start-building/introduction/developer-environment/js-frameworks)
* [カスタムモジュールでウェブコンポーネントを使用する方法](https://developers.hubspot.com/blog/use-web-components-in-hubspot-cms-development)
* [モジュールをベースにコード ブロック ウェブ コンポーネントを作成する方法](https://developers.hubspot.com/blog/how-to-build-a-code-block-web-component)
