Hubspot

HubSpot CMS デザインマネージャ活用ガイド – テンプレート・モジュール・カスタム開発

ⓘ本ページはプロモーションが含まれています

DXの導入や効果にお悩みの担当者へ

スポンサードリンク
 状況別に選べる  

DXを前に進めたい、あなたの立場と目的は?

DXの推進には社内政治や人々のリテラシーなど組織の様々な壁が立ちはだかります。導入後も部署・全社のAIリテラシーを底上げしていき浸透させていく運用が重要です。目的に合った本を選びやり方を学ぶことでDXの成功と会社の成長をもたらすことができますよ。

▷ 硬直的な組織でDXを導入したいなら

【イノベーションOps 組織を動かすDX&AI導入プロセスのすべて】を購入する

机上の空論にならない実践的導入ができるようになります

▷ さらに様々な事例を学びAIリテラシーを底上げしたいなら

Kindle Unlimited をサブスクする

月額980円だけで読み放題。30日間無料なので、合わなければ解約してもOK

▶ その他では 【AIエージェント時代のDX ビジネスオーケストレーションの衝撃】を購入する / 生成AIカテゴリー が参考になります。


スポンサードリンク

HubSpot CMS の基本構成と Design Manager の概要

HubSpot CMS は 「テンプレート」・「モジュール」・「HubL」 の3要素でページを組み立てます。このセクションではそれぞれの役割と、ローカル環境でデザイン作業を開始する手順をご紹介します。

テンプレート・モジュール・HubL の役割

要素 主な機能
テンプレート ページ全体のレイアウト(ヘッダー、フッター、コンテンツ領域)を定義。複数ページで共通化できる。
モジュール 画像・テキスト・ボタンなど再利用可能な部品。Design Manager の UI 上でドラッグ&ドロップできる。
HubL HubSpot 独自のサーバー側テンプレート言語。条件分岐やデータ取得、Asset 管理タグを提供する。

ポイント:HubL は {% if %}{% hubdb_table_rows "table_name" %} といったタグで動的コンテンツを簡潔に記述できます。

ローカル開発環境の構築手順

  1. Node.js のインストール
  2. 推奨バージョンは v18 以上(HubSpot CLI が公式にサポートしています)。

  3. HubSpot CLI の導入

bash
npm install -g @hubspot/cli

  1. CLI で HubSpot アカウントへ認証

bash
hs auth login --scope content

  1. プロジェクトの初期化

bash
hs init my-project
cd my-project

  1. Git リポジトリを作成し、リモートにプッシュ(チーム開発が前提の場合)

bash
git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repo-url>
git push -u origin main

これだけでローカルエディタからテンプレートやモジュールを編集し、hs upload -p で即座に HubSpot に反映できます。


カスタムテンプレート作成手順

カスタムテンプレートは HTMLHubL を組み合わせて構築します。この章ではフォルダ構造の決め方と、実装例を交えて段階的に説明します。

フォルダ構造のベストプラクティス

Why:HubSpot は src/templates 配下をテンプレートとして自動ビルドするため、規則的な配置がそのままプレビューに反映されます。

HTML と HubL を組み合わせた基本テンプレート

以下はブログ記事ページの最小構成です。コメントで主要ポイントを示しています。

  • {{ page_meta.title }}{{ page_meta.description }} は HubSpot が自動的に生成する SEO データです。
  • require_css / require_jsAsset 管理 用タグで、ビルド時に最適化されたファイルが配信されます。

再利用可能なカスタムモジュールの作り方

モジュールは module.json(設定)と module.html(表示ロジック)の2ファイルだけで完結します。ここでは「カード」モジュールを例に、実装手順と UI カスタマイズ方法を示します。

module.json の構成要素

キー 説明
label Design Manager 上に表示される名前
is_available_for_new_content 新規コンテンツ作成時に選択可能か
fields エディタで入力できるフィールド定義(type, label, name など)

module.html の実装例

  • module.image.src はアップロードされた画像の URL。
  • | escape フィルタで XSS を防止しつつ、アクセシビリティ向上のために alt 属性を必ず設定します。

Design Manager の「モジュール」タブからプレビューできるので、実装後すぐに見た目と動作を確認できます。


カスタム CSS/JavaScript を安全に組み込むベストプラクティス

HubSpot では Content Security Policy (CSP) が標準で適用されており、インラインスクリプトはブロックされます。そのため、外部ファイルとして読み込む形が必須です。以下の手順で名前空間化とロードタイミングを最適化しましょう。

1. SASS → CSS のビルドフロー

main.scss の例(名前空間を付与)

2. テンプレートでのアセット呼び出し

  • defer 属性により、HTML の解析が完了した後にスクリプトが実行され、ページ描画を阻害しません。
  • {{ get_asset_url() }} は CDN に最適化された URL を返すため、キャッシュ効率が向上します。

3. CSP に配慮した実装例

注意hs_script タグ(例: <script type="text/hs-script" data-hsjs='...'></script>)は HubSpot が提供する特別なスクリプトローダーで、CSP に自動的に適合します。インラインコードが必要な場合はこのタグを利用してください。


サーバーレス Functions と HubDB の連携

HubSpot の Functions(サーバーレス)と HubDB を組み合わせることで、外部 API から取得したデータや内部テーブルの内容をテンプレートに動的に埋め込むことができます。ここでは正しい呼び出しシンタックスと実装例を示します。

HubSpot Functions の作成とデプロイ

ファイル構成(src/functions ディレクトリ)

getWeather.js(Node.js)

デプロイ手順

テンプレート側から Functions を呼び出す正しいシンタックス

HubSpot の公式ドキュメントでは hubspot.function タグを以下のように使用します。

  • hubspot.function同期的 に結果を取得できる(関数が短時間で完了する前提)。
  • 長時間実行が予想される場合は、非同期 API エンドポイント経由でフロントエンドから fetch する方法も検討してください。

HubDB テーブルのデータ表示例

  • hubdb_table_rows タグは HubDB の行を取得し、as rows で変数に格納します。
  • limitorder_by を活用すれば、表示件数や並び順の調整が簡単です。

プレビュー・テストフローと SEO/アクセシビリティチェック

変更は必ず ローカルプレビューステージング環境 の順で検証し、最終的に本番へデプロイします。また、検索エンジン評価やユーザー体験を損なわないよう、以下のチェックリストと実装例を活用してください。

プレビュー機能の使い方(CLI)

  • コマンド実行後、デフォルトブラウザが自動で https://app.hubspot.com/preview/<portal-id> に接続し、リアルタイムで変更を確認できます。
  • Design Manager の「Preview」タブでは デバイス切替アクセシビリティツール(axe-core が組み込まれています)も利用可能です。

SEO・アクセシビリティ実装例

チェック項目 実装サンプル
meta タグ html<br>{{ require_css("custom.css") }}<br><title>{{ page_meta.title }}</title><br><meta name="description" content="{{ page_meta.description }}">
構造化データ (JSON‑LD) html<br>{% raw %}<script type="application/ld+json">{% endraw %}<br>{ " @context": "https://schema.org", " @type": "Article", "headline": "{{ content.name }}", "author": { "@type": "Person", "name": "{{ content.author }}" }, "datePublished": "{{ content.publish_date|datetimeformat("%Y-%m-%d") }}" }<br>{% raw %}</script>{% endraw %}
ARIA 属性 html<br><button class="hub-custom__btn" aria-label="検索を開始">🔍</button>
画像の alt html<br><img src="{{ module.image.src }}" alt="{{ module.title | escape }}">
色コントラスト(CSS 変数) scss<br>$primary-color: #004080;<br>$text-on-primary: #ffffff; // コントラスト比 4.5:1 以上<br>.hub-custom__button { background: $primary-color; color: $text-on-primary; }

Tips:Chrome の DevTools → Lighthouse を実行すれば、上記項目のスコアが自動で測定できます。

Git ブランチ運用例(git‑flow)

  1. git checkout -b feature/custom-template
  2. 開発 → hs upload -p(ローカルプレビュー) → コミット & プッシュ
  3. Pull Request を作成し、コードレビューと Lighthouse レポートを添付
  4. develop へマージ後、git checkout release/v1.2 && git merge develop
  5. hs upload -p でステージングにデプロイ → 最終テスト実施
  6. 問題なければ main にマージし、本番環境へプッシュ

このフローを守るだけで、品質保証継続的デリバリー が実現します。


まとめ

  • Design Manager + HubSpot CLI でローカル開発が安全かつ高速に行える。
  • テンプレートは HTML+HubL、モジュールは module.json + module.html の組み合わせで再利用可能。
  • カスタム CSS/JS は 名前空間化defer で CSP に対応しつつパフォーマンスを最適化。
  • Functionshubspot.function("functionName") シンタックスで呼び出し、HubDB と組み合わせて動的コンテンツを提供できる。
  • プレビュー・テストは CLI の preview コマンドと Git flow で管理し、SEO/アクセシビリティはメタタグ・構造化データ・ARIA など具体的実装例に沿ってチェックする。

これらのベストプラクティスを取り入れれば、HubSpot CMS 上で高度なカスタマイズが可能になるだけでなく、検索エンジン評価やユーザー体験も同時に向上させることができます。ぜひ本ガイドを開発プロジェクトの標準手順として活用してください。

スポンサードリンク

DXの導入や効果にお悩みの担当者へ

スポンサードリンク
 状況別に選べる  

DXを前に進めたい、あなたの立場と目的は?

DXの推進には社内政治や人々のリテラシーなど組織の様々な壁が立ちはだかります。導入後も部署・全社のAIリテラシーを底上げしていき浸透させていく運用が重要です。目的に合った本を選びやり方を学ぶことでDXの成功と会社の成長をもたらすことができますよ。

▷ 硬直的な組織でDXを導入したいなら

【イノベーションOps 組織を動かすDX&AI導入プロセスのすべて】を購入する

机上の空論にならない実践的導入ができるようになります

▷ さらに様々な事例を学びAIリテラシーを底上げしたいなら

Kindle Unlimited をサブスクする

月額980円だけで読み放題。30日間無料なので、合わなければ解約してもOK

▶ その他では 【AIエージェント時代のDX ビジネスオーケストレーションの衝撃】を購入する / 生成AIカテゴリー が参考になります。


-Hubspot