ダッシュボードに戻る

ドキュメント

Asyntaiの使い方を学ぶ

Asyntai AIチャットボットをHugoに追加する方法

Hugo静的サイトジェネレーター向けのステップバイステップガイド

埋め込みコードの取得

ステップ1:埋め込みコードを取得する

まず、Asyntaiダッシュボードに移動し、「埋め込みコード」セクションまでスクロールしてください。次のような固有の埋め込みコードをコピーしてください:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>

注記: 上記のコードは一例です。個人のウィジェットIDが含まれているため、ダッシュボードから固有の埋め込みコードをコピーしてください。

ステップ2:テーマパーシャルへのコード追加(推奨)

Hugoサイトのすべてのページにチャットボットを追加する最良の方法は、パーシャルを作成することです:

  1. Hugoプロジェクトのlayouts/partials/ディレクトリに移動します
  2. asyntai-widget.htmlという新しいファイルを作成します
  3. このファイルにAsyntaiの埋め込みコードを貼り付けます:
<!-- layouts/partials/asyntai-widget.html --> <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  1. テーマのbaseof.htmlファイルを開きます(通常はlayouts/_default/baseof.htmlにあります)
  2. 閉じ</body>タグの前にパーシャルを追加します:
{{ partial "asyntai-widget.html" . }} </body> </html>
  1. ファイルを保存してHugoサイトを再ビルドします

ヒント: パーシャルの使用は、再利用可能なコンポーネントをインクルードするためのHugo推奨の方法です。この方法により、baseof.htmlテンプレートを使用するすべてのページ(通常はサイト内のすべてのページ)にチャットボットが表示されます。

代替方法1:Headパーシャルへの追加

テーマにheadパーシャルがある場合、そこにコードを追加できます:

  1. テーマのheadパーシャルを見つけます(通常はlayouts/partials/head.html
  2. 存在しない場合は、プロジェクトルートにlayouts/partials/head.htmlを作成します
  3. このファイルにAsyntaiの埋め込みコードを追加します:
<!-- layouts/partials/head.html --> <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
  1. baseof.htmlの<head>セクションにこのパーシャルがインクルードされていることを確認します:
<head> {{ partial "head.html" . }} </head>

注記: テーマに既存のコンテンツを含むhead.htmlパーシャルがある場合は、Asyntaiのコードを追記するだけにしてください。既存のコンテンツを置き換えないでください。

代替方法2:カスタムJavaScriptを使用した静的フォルダ

Hugoの静的フォルダを使用したよりモジュラーなアプローチ:

  1. Hugoプロジェクトのstatic/js/ディレクトリに移動します
  2. ディレクトリが存在しない場合は作成します
  3. asyntai-loader.jsという新しいファイルを作成します
  4. ウィジェットを読み込むための以下のコードを追加します:
// static/js/asyntai-loader.js (function() { var script = document.createElement('script'); script.src = 'https://asyntai.com/static/js/chat-widget.js'; script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID'); script.async = true; document.head.appendChild(script); })();
  1. baseof.htmlまたはフッターパーシャルの</body>の前でこのファイルを参照します:
<script src="{{ "js/asyntai-loader.js" | relURL }}"></script> </body>

ヒント: static/ディレクトリ内のファイルは、公開サイトのルートにそのままコピーされます。relURL関数がデプロイメントに適した正しい相対パスを生成します。

代替方法3:Hugo設定(config.toml/yaml)

設定によるカスタムスクリプトをサポートする一部のHugoテーマの場合:

# config.toml [params] customJS = ["https://asyntai.com/static/js/chat-widget.js"] # Or in config.yaml params: customJS: - https://asyntai.com/static/js/chat-widget.js

注記: この方法は、テーマがcustomJSパラメータをサポートしている場合にのみ機能します。テーマのドキュメントを確認してください。テーマのカスタマイズを通じてdata-asyntai-id属性を追加する必要がある場合もあります。

代替方法4:フロントマター(ページ固有)

特定のページにのみチャットボットを追加するには:

  1. ページのフロントマターにカスタムパラメータを追加します:
--- title: "My Page" asyntaiWidget: true ---
  1. baseof.htmlまたはパーシャルに条件付きロジックを追加します:
{{ if .Params.asyntaiWidget }} <script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> {{ end }}

ヒント: このアプローチにより、どのページにチャットボットを含めるかをきめ細かく制御できます。特定のセクションにのみウィジェットを表示したいドキュメントサイトに便利です。

代替方法5:テーマレイアウトのオーバーライド

テーマファイルを変更せずにテーマのレイアウトをオーバーライドするには:

  1. themes/your-theme/layouts/_default/からテーマのbaseof.htmlをコピーします
  2. プロジェクトのlayouts/_default/baseof.htmlに貼り付けます
  3. 閉じ</body>タグの前にAsyntaiの埋め込みコードを追加します
  4. 保存してサイトを再ビルドします

重要: テーマファイルをオーバーライドすると、テーマが更新されてもそれらのファイルの更新は自動的に反映されません。この方法は完全な制御を提供しますが、より多くのメンテナンスが必要です。テーマの更新を容易にするために、代わりにパーシャルの使用を検討してください。

ステップ3:ビルドとデプロイ

コードを追加した後、Hugoサイトをビルドします:

# Build the site hugo # Or build with specific environment hugo --environment production # For development preview hugo server
  1. 生成されたサイトはpublic/ディレクトリに配置されます
  2. このディレクトリをホスティングプラットフォーム(Netlify、Vercel、GitHub Pagesなど)にデプロイします

ヒント: 開発中は、hugo serverを使用してhttp://localhost:1313でサイトをローカルプレビューできます。チャットボットはすべてのページの右下に表示されるはずです。

ステップ4:インストールの確認

Hugoサイトをデプロイした後、新しいブラウザタブで開いてください。右下にチャットウィジェットボタンが表示されるはずです。クリックして正しく開き、動作することを確認してください。

ウィジェットが表示されませんか? 変更後にhugoコマンドでサイトを再ビルドしたことを確認してください。YOUR_WIDGET_IDをダッシュボードの実際のウィジェットIDに置き換えたことを確認してください。ブラウザのキャッシュをクリアするか、シークレットモードで表示してください。CDNを使用している場合は、キャッシュの無効化が必要になることがあります。ブラウザコンソール(F12)を開いてJavaScriptエラーがないか確認してください。