Skip to content

Instantly share code, notes, and snippets.

@hdknr
Last active October 1, 2025 00:14
Show Gist options
  • Save hdknr/35d3a45a26e53c6245aac6e52d9917f8 to your computer and use it in GitHub Desktop.
Save hdknr/35d3a45a26e53c6245aac6e52d9917f8 to your computer and use it in GitHub Desktop.
Hubspot

Hubspot

インバウンドとは:

  • 消費者、見込み客、顧客との間に有意義で長続きする関係を作り上げることで組織成長を目指す考え 方
  • 無理に注意を引こうとする従来の広告手法とは対極に位置
  • 顧客を尊重し、顧客がカスタマージャーニーのあらゆる段階で目的を達成できるよう支援することが重視

インバウンドは次の3つの方法を通じて実践されます。

  • Attract(惹きつける):価値のあるコンテンツや対話を通じて適切な相手の心をつかみ、頼りになるアドバイザーとして印象付けます。
  • Engage(信頼関係を築く):相手の課題や目標に合わせた情報やソリューションの提供によって、成約の可能性を高めます。
  • Delight(満足してもらう):製品やサービスを使って顧客が持てる力をさらに発揮できるように、必要な支援を行います

CRM

HubL

ブログ一覧 パーシャル

パーシャル例

  • ブログは言語によってデータベースIDが異なるので切り替える必要がある
  • 日付書式は format_date('yyyy/MM/dd') などテンプレートフィルターを使う
<!--
  templateType: global_partial
  label: トップページニュースブロック
-->

<div class="news-bg inview fadeup">
  <div class="news-container container">

    {% if content.language == "ja" %}
    {% set rec_posts = blog_recent_posts(208704708340, 3) %}
    {% set labels = {"title": "お知らせ" , "no_news": "お知らせがありません"} %}
    {% else %}
    {% set rec_posts = blog_recent_posts(209170263750, 3) %}
    {% set labels = {"title": "News", "no_news": "No news." } %}
    {% endif %}

    {% if rec_posts %}
    <div class="news-left">
      <div class="section-title">
        <h1 class="main-title"> {{ labels.title }}</h1>
        <div class="section-sub-title-row">
          <p>NEWS</p>
          <div class="border-line-row"></div>
        </div>
      </div>
      <div class="view-more-box">
        <a href="/news" class="view-more-txt">VIEW MORE</a>
      </div>
    </div>
    <ul class="news-list">
      {% for rec_post in rec_posts %}
      <a class="news-list-a" href="{{ rec_post.absolute_url }}">
        <li class="news-item">
          <div class="news-img-box">
            <img class="news1" src="{{ rec_post.featured_image }}" alt="">
          </div>
          <div class="news-item-left">
            <p class="date">{{ rec_post.publish_date | format_date('yyyy/MM/dd') }}</p>
            <p class="title">{{ rec_post.name }}</p>
          </div>
        </li>
      </a>
      {% endfor %}
    </ul>
    {% else %}
    <p>
      {{ labels.no_news }}
    </p>
    {% endif %}
  </div>
</div>

ブログの言語切り替え

  • 言語によりブログのデータベースIDは異なる
{% if content.language == "en" %}
  {% set rec_posts = blog_recent_posts(215738077920, 5) %}  
{% else %}
  {% set rec_posts = blog_recent_posts(209432508120, 5) %}
{% endif %}

不要なタグを表示させない

{% for rec_post in rec_posts %}
  
    {% set tags = [] %}

    <!-- 不要なタグを除いたタグリスト(記事ごと) -->
    {% for item in rec_post.tag_list %}
      {% if item not in ["Waring", "注意"] %}
        {% do tags.append(item) %}
      {% endif %}
    {% endfor %}
  
    <dl>
        <dt>
          <div>
            <img src="{{ rec_post.featured_image }}">
          </div>
          <p>{{ rec_post.publish_date | format_date('yyyy/MM/dd') }}</p>
        </dt>
        <dd>

          <div>
            <span>{{ tags[0].name |escape_html }}</span>  <!--  1つ目のタグを表示 --->
          </div>
          <a href="{{ rec_post.absolute_url }}">{{ rec_post.name }}</a>
        </dd>
    </dl>
{% endfor %}

ブログのパジネーション

ページあたりのブログ件数

  • 設定 > ツール > コンテンツ > ブログ > テンプレートタブ
  • リストページあたりの記事数 にエントリ数を設定します

一覧ページでのパジネーション 例

  • contents.total_page_count : ブログ一覧(contents)の前ページ数
  • current_page_num 現在の一覧ページでのページ番号  ( URLが/ブログスラグ/page/3 の場合 3)
  • blog_page_link 関数: 指定したページのブログ一覧に移動
{% if contents.total_page_count > 1 %}
<div class="blog-pagination">
    {% set page_list = [-2, -1, 0, 1, 2] %}
    {% if contents.total_page_count - current_page_num == 1 %}{% set offset = -1 %}
    {% elif contents.total_page_count - current_page_num == 0 %}{% set offset = -2 %}
    {% elif current_page_num == 2 %}{% set offset = 1 %}
    {% elif current_page_num == 1 %}{% set offset = 2 %}
    {% else %}{% set offset = 0 %}{% endif %}

    <div class="prev">
        {% if current_page_num > 1 %}
        <a href="{{ blog_page_link(last_page_num) }}"> PREV </a>
        {% else %}
        <span> PREV </span>
        {% endif %}
    </div>

    <div class="page_num">
        {% for page in page_list %}

        {% set this_page = current_page_num + page + offset %} {# パジネーションのページ #}

        {% if current_page_num == this_page %}
        {% set active_class = 'active' %}
        {% else %}
        {% set active_class = 'inactive' %}
        {% endif %}

        {% if this_page >= 1 and this_page <= contents.total_page_count %} <div>
            <a href="{{ blog_page_link(this_page) }}" class="{{ active_class }}">{{ this_page }}</a>
    </div>
    {% endif %}
    {% endfor %}
</div>

<div class="next">
    {% if contents.total_page_count > current_page_num %}
    <a href="{{ blog_page_link(current_page_num + 1) }}"> NEXT </a>
    {% else %}
    <span> NEXT </span>
    {% endif %}
</div>
</div>
{% endif %}

解説

HubSpotのブログ一覧テンプレートで blog_page_link を使用してページ番号付きのパジネーションを実装する簡単な例を以下に示します。

このコードは、ブログ記事一覧の下などに配置することで機能します。

{% if contents.total_page_count > 1 %}
<nav class="blog-pagination">
  {% set max_links = 5 %} {# 表示するページ番号の最大数 #}
  {% set current_page = contents.current_page_num %}
  {% set total_pages = contents.total_page_count %}

  {# 前へのリンク #}
  {% if contents.has_previous_page %}
    <a href="{{ blog_page_link(contents.previous_page_num) }}" class="previous-page">前へ</a>
  {% endif %}

  {# ページ番号リンク #}
  {% set start_page = (current_page - (max_links / 2)) | round(0, 'floor') %}
  {% set end_page = (current_page + (max_links / 2)) | round(0, 'ceil') %}

  {% if start_page < 1 %}
    {% set start_page = 1 %}
    {% set end_page = max_links %}
  {% endif %}

  {% if end_page > total_pages %}
    {% set end_page = total_pages %}
    {% set start_page = (total_pages - max_links + 1) > 0 acorn (total_pages - max_links + 1) else 1 %}
  {% endif %}

  {% for i in range(start_page, end_page + 1) %}
    <a href="{{ blog_page_link(i) }}" class="page-number {% if i == current_page %}active{% endif %}">{{ i }}</a>
  {% endfor %}

  {# 次へのリンク #}
  {% if contents.has_next_page %}
    <a href="{{ blog_page_link(contents.next_page_num) }}" class="next-page">次へ</a>
  {% endif %}
</nav>
{% endif %}

コードの説明:

  1. {% if contents.total_page_count > 1 %}: ブログの総ページ数が1より大きい場合にのみパジネーションを表示します。
  2. <nav class="blog-pagination">...</nav>: パジネーション全体を囲むナビゲーション要素です。CSSでスタイルを適用するためにクラスを付けています。
  3. {% set max_links = 5 %}: 表示するページ番号の最大数を設定します。この例では5つ表示します。
  4. {% set current_page = contents.current_page_num %}: 現在表示しているページの番号を取得します。
  5. {% set total_pages = contents.total_page_count %}: ブログの総ページ数を取得します。
  6. {% if contents.has_previous_page %}: 前のページが存在する場合に「前へ」リンクを表示します。
  7. <a href="{{ blog_page_link(contents.previous_page_num) }}" class="previous-page">前へ</a>: blog_page_link を使用して前のページへのリンクを生成します。contents.previous_page_num で前のページの番号を取得します。
  8. ページ番号リンクの部分では、max_links に基づいて表示するページ番号の範囲 (start_page から end_page) を計算しています。これにより、現在のページを中心にページ番号が表示されるようになります。
  9. {% for i in range(start_page, end_page + 1) %}: start_page から end_page までの各ページ番号に対してループ処理を行います。
  10. <a href="{{ blog_page_link(i) }}" class="page-number {% if i == current_page %}active{% endif %}">{{ i }}</a>: 各ページ番号へのリンクを生成します。blog_page_link(i) で指定されたページ番号へのリンクが生成されます。現在のページであれば active クラスを付けてスタイルを適用できるようにしています。
  11. {% if contents.has_next_page %}: 次のページが存在する場合に「次へ」リンクを表示します。
  12. <a href="{{ blog_page_link(contents.next_page_num) }}" class="next-page">次へ</a>: blog_page_link を使用して次のページへのリンクを生成します。contents.next_page_num で次のページの番号を取得します。

このコードをブログ一覧テンプレートの適切な位置に貼り付けることで、ページ番号付きのパジネーションが表示されます。必要に応じて、CSSで .blog-pagination, .page-number, .active, .previous-page, .next-page といったクラスにスタイルを適用してください。

ブログのタグ

タグの多国語バリエーション

HubSpotのグローバルコンテンツ機能とHubL(HubSpotのマークアップ言語)のフィルターを組み合わせる方法です。

以下に具体的な手順とコード例を示します。

考え方:

  1. 現在のページの言語設定を取得する: HubLのコンテキスト変数や関数を利用して、現在表示しているブログ一覧ページの言語設定を取得します。
  2. タグのグローバルコンテンツIDを取得する: 各タグはグローバルコンテンツとして管理されている必要があります。tag_listで取得できる各タグオブジェクトから、グローバルコンテンツのIDを取得します。
  3. グローバルコンテンツの多言語バリエーションを取得する: 取得したグローバルコンテンツIDと現在のページの言語設定を使って、対応する多言語バリエーションの名前を取得します。

実装手順とコード例:

{% set current_lang = request.path|split('/')[1] %} {# 現在のページの言語コードを取得 (例: /ja/blog なら 'ja') #}

<ul>
  {% for tag in tag_list %}
    {% set global_content_id = tag.global_content_id %}
    {% if global_content_id %}
      {% set translated_tag = global_content(global_content_id, current_lang) %}
      {% if translated_tag %}
        <li><a href="{{ blog_tag_url(tag.slug) }}">{{ translated_tag.name }}</a></li>
      {% else %}
        <li><a href="{{ blog_tag_url(tag.slug) }}">{{ tag.name }}</a></li> {# 翻訳がない場合はデフォルト名を表示 #}
      {% endif %}
    {% else %}
      <li><a href="{{ blog_tag_url(tag.slug) }}">{{ tag.name }}</a></li> {# グローバルコンテンツでない場合はデフォルト名を表示 #}
    {% endif %}
  {% endfor %}
</ul>

コードの説明:

  • {% set current_lang = request.path|split('/')[1] %}: request.pathは現在のリクエストパス(URL)を取得します。split('/')でパスをスラッシュで分割し、インデックス[1]で言語コード(通常はURLの最初のディレクトリ)を取得しています。例えば、/ja/blog であれば ja が、/en/blog であれば encurrent_lang に格納されます。
  • {% set global_content_id = tag.global_content_id %}: tag_listの各tagオブジェクトには、そのタグがグローバルコンテンツとして管理されている場合に global_content_id プロパティが含まれます。
  • {% if global_content_id %}: タグがグローバルコンテンツとして管理されているかどうかをチェックします。
  • {% set translated_tag = global_content(global_content_id, current_lang) %}: global_content() 関数は、指定されたグローバルコンテンツIDと言語コードに基づいて、対応する翻訳されたコンテンツオブジェクトを取得します。
  • {% if translated_tag %}: 翻訳されたタグオブジェクトが存在するかどうかをチェックします。
  • {{ translated_tag.name }}: 翻訳されたタグオブジェクトの name プロパティ(翻訳されたタグ名)を表示します。
  • {% else %}: 翻訳が存在しない場合や、タグがグローバルコンテンツとして管理されていない場合は、デフォルトのタグ名 ({{ tag.name }}) を表示します。

前提条件:

  • タグがグローバルコンテンツとして設定されていること: HubSpotでタグの多言語バリエーションを管理するには、各タグがグローバルコンテンツとして作成され、それぞれの言語に対応する翻訳が設定されている必要があります。
  • ブログのURL構造に言語コードが含まれていること: 上記のコード例では、URLの最初のディレクトリが言語コード(例: /ja/blog, /en/blog)であることを前提としています。もし異なるURL構造を使用している場合は、request.path|split('/') の部分を適切に修正する必要があります。

補足:

  • もしブログのURL構造に言語コードが含まれていない場合や、別の方法で現在のページの言語を判別する必要がある場合は、HubSpotのコンテキスト変数やモジュール設定などを確認し、適切な方法で current_lang を取得するようにしてください。
  • global_content() 関数の引数として渡す言語コードは、HubSpotで設定されている言語コードと一致している必要があります。

この方法で、ブログ一覧テンプレートで表示する各タグの名称を、現在のページに応じた多言語バリエーションで表示できるはずです。

不要なタグを除いて表示

ブログ詳細 (content がブログエントリ)ページ

{% set tags = [] %}
{% for item in content.tag_list %}
{% if item != "Waning" %}
{% do tags.append(item ) %}
{% endif %}
{% endfor %}
...

<p class="tags">{{ tags | join("/") }}</p> <!-- join フィルターで連結 -->

CTA

ビデオ埋め込み

  • viemoなどiframe配信できるサーバーにホスティングしているビデオが対象
  • vimeoの muted=1&autoplay=1 でも自動再生はできない (セキュリティ上の問題。自動再生は、ユーザーのトリガーがないとしてくれないケースがある)

ショートムービーをアニメーションGIFに変換:

ffmpeg -i input.mp4 -r 10 output.gif

フライホイール

ファネル (funnel)

マーケティングにおけるファネルとは、顧客が商品やサービスを認知してから購入に至るまでのプロセスを段階的に可視化したフレームワークのことです。日本語では「漏斗(ろうと)」とも呼ばれます。

ファネルの基本的な考え方

ファネルは、顧客の購買行動を以下の段階に分け、それぞれの段階における顧客の数や行動を分析することで、マーケティング戦略の改善に役立てます。

  • 認知(Awareness): 顧客が商品やサービスを初めて知る段階
  • 興味・関心(Interest): 顧客が商品やサービスに興味を持ち、情報を収集する段階
  • 比較・検討(Consideration): 顧客が競合商品と比較検討し、購入を検討する段階
  • 購入(Purchase): 顧客が商品やサービスを購入する段階
  • 継続・リピート(Retention): 購入した顧客がリピート購入や継続利用をする段階

ファネルの重要性

ファネル分析は、マーケティング戦略において以下の点で重要です。

  • 顧客の購買行動を可視化することで、各段階における課題や改善点を特定できる
  • 各段階に合わせた効果的なマーケティング施策を立案・実行できる
  • マーケティングの効果測定やROI(投資対効果)の向上に役立つ

ファネルの種類

マーケティングファネルには、いくつかの種類があります。代表的なものを以下に挙げます。

  • 伝統的なマーケティングファネル: 上記で説明した基本的なファネル
  • デジタルマーケティングファネル: オンライン上での顧客行動に特化したファネル
  • インバウンドマーケティングファネル: 顧客が自ら情報を探し、購入に至るプロセスに合わせたファネル

ファネルの活用方法

ファネルは、以下のようなマーケティング活動に活用できます。

  • 広告戦略の立案
  • コンテンツマーケティング
  • SEO対策
  • SNSマーケティング
  • 顧客関係管理(CRM)

ファネル分析を通じて、顧客の購買行動を深く理解し、効果的なマーケティング戦略を実行することで、売上向上や顧客満足度向上につなげることができます。

フライホィール(flywheel)

HubSpot社が提唱しているフライホイール型ビジネスモデルは、従来のファネル型モデルに代わる、顧客を中心に据えた循環型のビジネスモデルです。その概念を分かりやすく説明します。

フライホイールとは?

  • フライホイール(はずみ車)とは、回転エネルギーを蓄え、放出する機械要素です。
  • HubSpotはこの概念をビジネスに応用し、顧客体験を中心に据えた成長モデルを提唱しました。
  • 従来のファネル型モデルは、顧客獲得をゴールとする一方通行のプロセスでしたが、フライホイール型モデルは、顧客満足度を向上させ、その結果として生まれる推奨を新たな顧客獲得に繋げる循環的なプロセスです。

フライホイールの構成要素

フライホイールは、「Attract(惹きつける)」「Engage(信頼関係を築く)」「Delight(満足させる)」の3つの段階で構成されています。

  • Attract(惹きつける):
    • 顧客にとって価値のあるコンテンツや情報を提供し、見込み客を惹きつけます。
    • 例:ブログ記事、SEO対策、ソーシャルメディアマーケティング
    • (Content Hub, Commerce Hub, Marketing Hub)
  • Engage(信頼関係を築く):
    • 顧客とのコミュニケーションを通じて信頼関係を構築し、顧客の課題解決を支援します。
    • 例:CRM、メールマーケティング、チャットサポート
    • (Marketing Hub, Sales Hub, Operation Hub)
  • Delight(満足させる):
    • 顧客に優れた顧客体験を提供し、満足度を高めます。
    • 例:カスタマーサポート、顧客フィードバックの活用、顧客ロイヤルティプログラム
    • (Service Hub, Sales Hub, Operation Hub)

フライホイールの重要性

  • 顧客満足度の向上:満足した顧客は、企業にとって最高のマーケティング担当者となります。
  • 持続的な成長:顧客の推奨が新たな顧客を惹きつけ、ビジネスの成長を加速させます。
  • 顧客中心のビジネス:顧客体験を重視することで、顧客との長期的な関係構築が可能になります。

フライホイールを回すために重要な要素

  • 回転速度: 顧客体験を向上させることで、フライホイールの回転速度を上げることができます。
  • 摩擦の軽減: 顧客体験を損なう要因(顧客サポートの質の悪さ、部門間の連携不足など)を排除することで、摩擦を軽減し、回転速度を維持できます。
  • フライホイールのサイズ: 顧客満足度の向上、従業員の満足度の向上、企業全体の顧客体験向上への意識向上でフライホイールを大きくすることが出来ます。

HubSpotは、自社のビジネスモデルをフライホイール型に転換することで、顧客満足度と成長率を大幅に向上させました。

より詳しい情報は、以下のHubSpotの関連ページをご覧ください。

HubDB

制限:

  • or 検はできない

種別絞り込む例

{% set query ="" %}

{% if request.query_dict.partner_type %}
  {% set query = "&partner_type=" + request.query_dict.partner_type %}
{% endif %}

{% set partners = hubdb_table_rows(624243407, query) %}

<section id="partners">
<h3>
   パートナー
</h3>
<div>
  <a href="?partner_type=販売店">販売店</a> 
 <a href="?partner_type=ディストリビューター">ディストリビューター</a> 
</div>
<div>
  
  {% for partner in partners %}
  <div>
    {{ partner.partner_name }}
  </div>
  {% endfor %} 
  </div>
</section>

記事

言語の切替

モジュール

  • モジュールの現在の言語(language) で選択言語を判定
  • language_variants でページの言語バリアントを取得
  • en, ja をキーに 辞書化
  • enが定義されていたら選択肢を select/optionで記述
  • 実際の遷移はJavascriptを使う
{% if language == "ja" %}
    {% set ja_selected = "selected" %}
    {% set en_selected = "" %}
{% else %}
    {% set ja_selected = "" %}
    {% set en_selected = "selected" %}
{% endif %}

{% set language_dict = {"en": "", "ja": ""} %}
{% set all_variants = language_variants(module.display_mode) %}
{% for variant in all_variants %}
  {% if variant.languageCode == "ja" %}
    {% do language_dict.update({ ja: variant}) %}
  {% elif variant.languageCode == "en" %}
    {% do language_dict.update({ en: variant}) %}
  {% endif %}
{% endfor %}

{% macro lang_option(lang, value, selected) %} 
   <option class="selectorfont" value="{{ value|escape_url }}" {{selected}}> {{ lang }}</option>
{% endmacro %}


{% if language_dict.en %}
<select class="form-control">
  {{ lang_option("Japanese", language_dict.ja.localizedUrl, ja_selected )}}
  {{ lang_option("English", language_dict.en.localizedUrl, en_selected )}}
</select>
{% endif %}

サイトフッターHTMLでの例

// id=lang-switcher コンテナ配下にレンダリングされる
const selectElement = document.querySelector('#lang-switcher select');

if (selectElement ) {
selectElement.addEventListener('change', (event) => {
    const selectedValue = event.target.value;
    if (selectedValue ){   
     window.location.href = selectedValue;
    }
});
}

パスワード保護

HubSpotで特定のページにパスワードをかけるには、以下の手順で設定できます(対象はウェブサイトページまたはランディングページです) 1 2

パスワード保護の仕方

🔐 パスワード保護ページの設定手順

  1. HubSpotにログイン
    対象ページがあるアカウントにログインします。

  2. ページ編集画面を開く

    • ウェブサイトページの場合:
      [マーケティング]>[ウェブサイト]>[ウェブサイトページ]
    • ランディングページの場合:
      [マーケティング]>[ランディングページ]
  3. 編集対象のページを選択して「編集」をクリック

  4. [ファイル]→[ページ設定]を開く

  5. [オーディエンスアクセス]セクションで「パスワード必須」を選択

  6. パスワードを入力(8文字以上)

  7. 右上の[更新]または[公開]をクリックして変更を反映


💡補足情報

  • パスワード入力画面(プロンプトページ)のデザインは、テンプレートでカスタマイズ可能です。
  • CMS Hub Enterpriseプランでは、さらに「登録」や「シングルサインオン(SSO)」によるアクセス制限も可能です。
  • パスワード保護されたページは検索エンジンにクロールされません。

パスワード入力

HubSpotでパスワード入力画面(プロンプトページ)のデザインをカスタマイズするには、以下の方法があります 1


🎨 パスワード入力画面のカスタマイズ方法

1. テンプレートの編集

HubSpot CMSでは、パスワード入力画面は「システムページ」として扱われます。これを編集することで、見た目や文言を変更できます。

  • HubSpotの[設定]>[ウェブサイト]>[システムページ]にアクセス
  • 「パスワード保護ページ」のテンプレートを選択
  • 使用中のテンプレートを変更するか、新しいテンプレートを作成して割り当てる

2. デザインマネージャーでテンプレートを編集

  • [マーケティング]>[ファイルとテンプレート]>[デザインツール]へ
  • password-protected.html などのテンプレートファイルを開く
  • HTMLやHubL(HubSpotのテンプレート言語)を使って、以下をカスタマイズ可能:
    • 背景画像や色
    • フォントやボタンのスタイル
    • メッセージ文言(例:「このページはパスワードで保護されています」)

3. CSSの追加

  • テンプレートに独自のCSSを追加することで、より細かいデザイン調整が可能です。
  • 外部スタイルシートを読み込むこともできます。

💡補足

  • カスタマイズにはCMS Hub Professional以上のプランが必要です。
  • コーディングに不安がある場合は、HubSpotパートナーや制作会社(例:JBNメンテナンスサポート 1)に依頼するのもおすすめです。

標準パーシャル

HubSpotでは、「標準パーシャル(Standard partials)」と呼ばれる、グローバルではないパーシャルの仕組みがあります。

グローバルパーシャルがサイト全体で共通のコンテンツを管理するのに対し、 標準パーシャルは、ページごとにコンテンツを編集できる再利用可能なテンプレートの部品です。

グローバルパーシャルとの違い

  • グローバルパーシャル: サイトのヘッダーやフッターのように、すべてのページで同じ内容を表示・更新したい場合に使う。開発者が一度コードを編集すると、それを使用するすべてのページに自動的に変更が反映されます。
  • 標準パーシャル: 特定のレイアウトやコンテンツブロック(例:サイドバー、特定のセクションのレイアウトなど)をテンプレートとして再利用したいが、その中身はページごとにカスタマイズ可能にしたい場合に使う。例えば、ブログページのサイドバーを共通のレイアウトにしたいが、各記事ごとにサイドバーのコンテンツを変えたい、といったケースで活用されます。

仕組みと利用法

標準パーシャルは、HubSpotのHTML + HubLテンプレートとして作成され、 {% partial path=" " %} のようにHubLタグを使用して他のテンプレートに組み込まれます。これにより、開発者は共通のコードをまとめて管理しつつ、コンテンツ編集者はページエディターで個別に内容を編集できる柔軟性を提供します。

この仕組みは、デザインの一貫性を保ちながら、コンテンツの個別性を確保する上で非常に有効です。

パーシャルの定義

アノテーション

/*
templateType: page
isAvailableForNewContent: false
*/

パーシャルの組み込み

{% include "../partial/sidebar.html" %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment