最終更新日: 2025年9月12日
‘カスタムモジュールと呼ばれる、さまざまなページやテンプレートで再利用可能なコンポーネントを作成しましょう。フィールドの説明や、フィールドをHubLで使う方法をご紹介します。’; https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png’; このチュートリアルでは、HubSpot CMSボイラープレートテーマを使用してモジュールを作成し、このモジュールをテーマの一部としてテンプレートやページで使用する方法を説明します。このチュートリアルに従って作業を進めると、テキストフィールド、画像フィールド、リッチ テキスト フィールドを含むTestimonial(お客さまの感想)モジュールが完成します。

始める前に

このチュートリアルを開始する前に、次の作業を行ってください。
  • CMS Hub開発者用サンドボックスをセットアップします。既存のアカウントを使用することもできますが、サンドボックスを使用すると、メインアカウントのアセットに影響を与えることなく開発できます。
  • HubSpotのローカル開発ツールの利用に必要なNode.jsをインストールします。バージョン10以降がサポートされています。
一足飛びに進めたい場合には、完成したプロジェクトファイルのプレビューを確認できます。CMSボイラープレートテーマのコードは時間の経過と共に変化する可能性があるため、チュートリアル中に開発者が作成または編集する必要がある特に重要なファイルのみが含まれています。例えば以下のファイルが含まれます。
  1. Testimonial.module: チュートリアルで作成されるカスタムモジュールを構成するファイルを含むフォルダー。
  2. homepage.html: 編集してカスタムモジュールを含めるテンプレート。
  3. images: モジュール内で使用するプロファイル写真が入ったフォルダー。

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

このチュートリアルでは、ローカル環境でモジュールを開発します。コマンド ライン インターフェイスからHubSpotを利用するには、HubSpot CLIをインストールし、アカウントへのアクセスを設定する必要があります。
  • ターミナルで次のコマンドを実行して、CLIをグローバルにインストールします。CLIを現在のディレクトリーにのみインストールする場合は、npm install @hubspot/cliを実行します。
npm install -g @hubspot/cli
  • テーマファイルの保存先とするディレクトリーで、HubSpotアカウントを認証し、CLIを介してアカウントを操作できるようにします。
hs account auth
  • Enterキーを押して、ブラウザーでパーソナル アクセス キーのページを開きます。
  • デプロイ先にするアカウントを選択してから、[このアカウントで続行]をクリックします。アカウントのパーソナル アクセス キーのページにリダイレクトされます。
  • 「パーソナル アクセス キー」の横にある[表示]をクリックしてキーを表示します。次に[コピー]をクリックして、キーをクリップボードにコピーします。
  • コピーしたキーをターミナルに貼り付け、Enterキーを押します。
  • 他と重複しないアカウントを入力します。この名前はユーザーが区別するためのもので、コマンドの実行時にも使用します。次にEnterキーを押して、ローカル開発ツールをアカウントに接続します。
~/.hscli/config.ymlファイルが作成されたことの確認として、成功メッセージが表示されます。

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

  • 次のコマンドを実行して、my-themeという名前の新しいテーマを作成します。このコマンドを実行すると、ボイラープレートアセットを格納するmy-themeという名前のフォルダーが作業ディレクトリー内に作成されます。
hs create website-theme my-theme
  • ファイルをアカウントにアップロードします。
hs upload <src> <destination>
パラメーター説明
現在の作業ディレクトリーを基準としたローカルファイルの相対パス。
HubSpotアカウント内のアップロード先とするパス。新しいフォルダーにすることができます。
例えば、hs upload my-theme my-new-themeを実行すると、コンピューター内のmy-themeフォルダーがHubSpot内のmy-new-themeフォルダーにアップロードされます。

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

ローカル環境内でCMSボイラープレートを使用して、テーマの新しいモジュールを作成します。
  • HubSpotアカウントにログインし、[マーケティング]>[ファイルとテンプレート]>[デザインツール]に移動してデザインマネージャーを開きます。
  • デザインマネージャーの左のサイドバーで、アップロードしたテーマフォルダーを開きます。
  • テーマフォルダー内にあるモジュールフォルダーを開きます。
  • このフォルダー内に新しいモジュールを作成するために、画面左上の[ファイル]>[新規ファイル]をクリックします。
  • ダイアログボックスで、ドロップダウンメニューをクリックし、[モジュール]を選択してから[次へ]をクリックします。 新しいモジュールのドロップダウンメニュー0
  • [ページ]チェックボックスをオンにして、モジュールをウェブサイトとランディングページで使用できるようにします。
  • モジュールの名前として「Testimonial」と入力してから、[作成]をクリックします。

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

次は、以下の3つのフィールドをモジュールに追加します。
  • 評価コメントを寄せてくれた顧客の名前を保存するテキストフィールド。
  • 顧客のプロファイル写真を保存する画像フィールド。
  • 顧客からの評価コメントを保存するリッチ テキスト フィールド。

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

  • モジュールエディターの右のサイドバーで、[フィールドの追加]ドロップダウンメニューをクリックし、[テキスト]を選択します。 Testimonialモジュールにフィールドを追加
  • 右のサイドバーで、右上にある鉛筆アイコンをクリックし、フィールドに名前を付けます。このチュートリアルでは、「Customer Name」(顧客名)と入力します。これにより、HubL変数名が「customer_name」に変わります。
  • [デフォルトのテキスト]を「Sally」に設定します。
テキストフィールドの例
  • 右側のサイドバーの階層リンクアイコンをクリックして、メインモジュールのメニューに戻ります。
モジュールのパンくずリストアイコン0

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

  • 同じ方法で他のフィールドを追加します。今回は、[画像]フィールドタイプを選択します。
  • 画像フィールドに「Profile Picture」(プロファイル写真)というラベルを付け、[HubL変数名]を「profile_pic」にします。
  • [デフォルトの画像]では、完成したプロジェクトファイルが格納されている「images」フォルダー内にあるSallyのプロファイル写真を選択します。
  • [代替テキスト]を「Sally Profile Picture」(サリーのプロファイル写真)に設定します。
プロファイル写真でモジュールを始める

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

  • 同じ方法で他のフィールドを追加します。今回は[リッチテキスト]フィールドタイプを選択します。
  • リッチ テキスト フィールドに「Testimonial」というラベルを付けます。
  • [デフォルトのリッチテキスト]ボックスをクリックし、「I’ve had nothing but wonderful experiences with this company」(この会社のサービスは素晴らしいの一言でした)と入力します。
リッチ テキスト フィールドの例 モジュールの複数のフィールドにデータを追加しました。ただし、現時点ではこのモジュールに、そのデータをレンダリングするためのHTMLが含まれていません。モジュールエディターでは、この状態を反映してmodule.htmlセクションが空になっています。モジュールのHTMLが空0 次は、フィールドのデータを表示するためのHubLをmodule.htmlに追加します。

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

これまでに作成したフィールドのデータを表示するために、次のHubLをmodule.htmlペインに追加します。
<!-- 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をモジュールに追加した後、画面右上の[プレビュー]をクリックして、現時点でモジュールがどのように表示されるかを確認します。
デザインマネージャーのプレビュー画面
  • 確認が終わったら、右上にある[変更を公開]をクリックします。
HubSpot内でモジュールを作成して公開したので、次はCLIを使用してモジュールをローカル環境に取り込みます。こうすることで、モジュールの内容をローカル環境で表示し、さらに変更を加えることができます。

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

モジュールをローカル環境で表示するには、まず、モジュールをローカルテーマに取り込む必要があります。
  • ターミナルで、hs fetch <hs_src> <destination>コマンドを実行します。
    • <hs_src>は、HubSpot内でのモジュールのファイルパスです。ファイルパスを取得するには、デザインマネージャーの左のサイドバーでモジュールを右クリックし、[パスをコピー]を選択します。 デザインマネージャーでパスをコピー0
    • <destination>は、テーマが置かれているローカルディレクトリーのパスです。これを省略した場合はデフォルトで、コマンドによって現在の作業ディレクトリーが使用されます。
例えば、該当するディレクトリーが既にカレント作業ディレクトリーになっている場合、fetchコマンドは次のようになります。
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。
モジュールのファイル構造、特にfields.jsonファイルとmeta.jsonファイルについて詳しく説明したドキュメントをご参照ください。このチュートリアルではfields.jsonmodule.cssmodule.htmlの3つのファイルに焦点を当て、それらがどのように生成され、デザインマネージャーとモジュールエディターの間でダウンロード/アップロードされるかを説明します。

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

モジュールのfields.jsonファイルを開きます。このファイルには次のようなJSONオブジェクトが含まれています(一部のid番号、画像フィールドのsrc属性、また場合によってはフィールドの順序などを除く)。
//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でスタイル設定できるよう、次のコードをコピーして、ファイルに貼り付けます。
<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>

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

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

.testimonial__header {
  font-weight: bold;
}

.testimonial__picture {
  display: block;
  margin: auto;
}
コードの追加後、ファイルを保存します。

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

ローカル環境での変更を保存したら、その変更内容をHubSpotアカウントにプッシュします。
  • ターミナルを開き、正しいディレクトリー上で作業していることを確かめます。
  • 保存時に変更がHubSpotに適用されるように、hs watch <src> <destination>コマンドを実行します。
hs watch my-theme my-theme

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

  • HubSpotアカウントにて、[マーケティング]>[ファイルとテンプレート]>[デザインツール]の順に進みます。
  • 左側のサイドバーで、作成したテーマに進み、moduleフォルダーを開いてTestimonialモジュールを選択します。
  • モジュールを開き、module.htmlペインとmodule.cssペインに変更が反映されていることを確認します。
  • 右上にある[プレビュー]をクリックします。新しいタブが開き、モジュールのプレビューが表示されます。
モジュールのプレビューの例 ここまでのチュートリアルでは、次のような作業を行いました。
  • HubSpotでモジュールを作成しました。
  • モジュールをローカル環境に取り込みました。
  • ローカルの開発ツールを使用してHubL+HTMLおよびCSSを変更しました。
このチュートリアルの次のパートでは、テンプレート内のモジュールの使い方を説明します。

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

チュートリアルのこの部分では、ローカルのテーマファイル内のmodulesフォルダーとtemplatesフォルダーを主に扱います。テーマフォルダーの構造:モジュールの作成を始める0 簡単な定義で説明するなら、モジュールとはHubSpotのテンプレートとページの編集可能な領域です。HubSpotではデザインマネージャーを使ってモジュールをテンプレートに挿入できますが、ここではHubLを使用して、モジュールをローカル環境内のテンプレートに追加します。
  • コードエディターで、templatesフォルダーを開き、home.htmlファイルを開きます。
  • home.htmlファイル内の28行目付近から始まる最後のdnd_sectionに移動します。ここでは、このセクションに新しいモジュールを追加します。 home.htmlのセクションにTestimonialモジュールを追加0
  • dnd_section内の他のdnd_modulesの上に、次のHubLモジュールタグをコピーして貼り付けます。
{% dnd_module
 path= “../modules/Testimonial.module”,
 offset=0,
 width=4
%}
{% end_dnd_module %}
このHubLタグでは、新しいモジュールが相対ファイルパスで参照されます。このモジュールをdnd_sectionの他の2つのモジュールと均等な割合で収めるには、モジュールのwidthoffsetで、幅とオフセットをそれぞれ指定します。
  • HubSpotのCMSでは12列のグリッドシステムを使用しているため、このモジュールを他の2つと均等な割合で配置するには、dnd_sectionの各モジュールを更新して幅を4に設定する必要があります。
  • 次に、グループの最初のdnd_moduletestimonial)のオフセットを0に設定して、このモジュールが最初に配置されるようにします。
  • 2つ目のdnd_modulelinked_image)のオフセットを4に設定して、2番目に配置されるようにします。
  • 3つ目のdnd_modulerich_text)のオフセットを8に設定して、3番目に配置されるようにします。
dnd_moduleoffsetwidthを設定した後のコードは、次のようになります。
{% 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 %}

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

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

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

ホームページテンプレートに工夫を加えるには、次の手順に従います。
  • コードエディターに戻り、home.htmlファイルを開きます。
  • Testimonialモジュールタグに、以下のパラメーターを追加します。
{% 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フォルダー内のローカル テーマ ファイルに追加する必要があります。この画像は、完成したプロジェクトファイルを格納するimagesフォルダー内にあります。
    • altプロパティーでは、画像の代替テキストを割り当てます。
  • testimonial: このパラメーターは、評価コメントのフィールドに新しいテキストを渡します。
あるいは、HubLブロック構文をリッチ テキスト フィールドで使用して、HTMLまたはテキストの大きなブロックを次のように記述することもできます。
{% 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 %}
モジュールブロック構文の詳細をご確認ください。 ターミナルでwatchコマンドが実行中であれば、保存した変更がHubSpotに送信されます。その後デザインマネージャーに戻り、テンプレートをプレビューできます。 テンプレート内のMaryモジュール

テンプレートにさらに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フォルダー内のファイルの相対ファイルパスを追加します。この画像そのものは、完成したプロジェクトファイルから取得できます。Ollieの画像に、Ollie Profile Picture(Ollieのプロファイル写真)というalt属性を設定します。
    • 間隔を均等に維持するには、offset4に、width4に設定します。
  • 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属性を設定します。
    • 間隔を均等に維持するには、offset8に、width4に設定します。
  • 変更内容を保存します。
ターミナルでwatchコマンドを実行中の状態にしている場合、デザインマネージャーに戻ると、テンプレートの変更内容をプレビューできます。現時点で、テンプレートのプレビューに3つ全てのTestimonialモジュールが含まれています。 テーマに追加されたTestimonialモジュール 最後のステップとして、theme.jsonファイルを変更して、テーマを公開ページで使用できるようにします。

テーマ名を変更する

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

{
  "name": "my_first_theme",
  "label": "My first theme"
}
上記のコードを追加した後、変更を保存すると、watchコマンドによってHubSpotに変更が送信されます。

次のステップ

このチュートリアルでは、カスタムモジュールを作成してhome.htmlテンプレートに追加し、オプションでテーマの名前をカスタマイズしました。これで、このテンプレートからページを作成して公開できるようになりました。 テーマに焦点を当てた同様のチュートリアルにご興味がありましたら、次のステップとして、こちらのテーマ入門チュートリアルをご参照ください。あるいは、HubSpotのナレッジベースでページの作成とカスタマイズについて詳細を確認することもできます。 モジュールの詳細については、以下のモジュールガイドをご確認ください。

その他のチュートリアル