Claudeと一緒にブログテンプレートを作る 〜AIと共に設計する静的サイトの未来〜(Hugo編)

AIとテンプレートを作るという発想

Claude(やChatGPT)のような生成AIは、コードの補完や修正に使うだけでなく、「一緒にサイトを設計する相棒」としても機能します。 今回は、Hugoをベースに、Claudeと対話しながらブログのテンプレートを構築する過程を紹介します。

Step.1:Claudeに目的を伝える

まず、Claudeに「どんなブログを作りたいか」を伝えましょう。

「Hugoでブログを作っています。
PaperModテーマをベースに、自分らしいデザインのテンプレートを作りたいです。
構成・カテゴリ・トップページのセクション分けなどの設計を一緒に考えてもらえますか?」

ポイント:

  • 目的を明確にするとClaudeの提案の質が上がります。
  • スクリーンショットや現状の構造があると、より的確なアドバイスが返ってきます。

要件定義

AIのアドバイスを元に要件定義を作成。(テンプレートのみ)

# Hugoのブログ記事テンプレートを作成して欲しい

## 現状
- Hugo + Netlify でゼロからブログサイトを構築
- PaperModテーマ適用 独自カスタム
- Site URL:
  - https://humanxai.info/
- 記事サンプル:
  - https://humanxai.info/featured/project1/

## 目的
― 現在のサイトデザイン、記事の構成をベースに、自分らしいデザインの記事テンプレートを作りたい

回答: Claude-3.5-Sonnet

、Claude-3.5-Sonnetの回答:

このテンプレートの特徴:

1. フロントマター
- 基本的なメタデータ(タイトル、説明、日付など)
- カバー画像の設定
- カテゴリとタグの指定
- 表示設定(目次、表示順など)

1. 記事構造
- 「はじめに」で導入
- 「本記事のポイント」で要点を箇条書き
- 本文を複数セクションに分割
- 「まとめ+今後の展望」で締めくくり
- 自動生成された目次

1. マークダウン記法
- セクション見出しに # を追加(PaperModテーマのスタイルに合わせて)
- 必要に応じてサブセクションを追加可能

このテンプレートを基本として、各記事の内容や目的に応じてカスタマイズすることができます。

マークダウン形式のテンプレートは以下でダウンロード可:

AIに相談

user icon
現状の記事ファイル(md)を添付しなかったせいもあり、独自セクションが追加され、実現には、Hugo自体のカスタムが必要ですね。
現在、サムネイル設定が「image:」だけだったのに対し、「cover:」が付いて階層化され「alt」や「caption」が追加。

 cover:
  image: "" # カバー画像のパス
  alt: "" # 画像の代替テキスト
  caption: "" # 画像のキャプション

その他、目次表示の有無を選択する機能が付いてるようで、余裕があれば実装するといいかもですね。

 ShowToc: true # 目次の表示
 TocOpen: true # 目次を開いた状態で表示

ai icon
ありがとうございます。
Claude 3.5 Sonnet による Template.md を拝見しました。
かなり丁寧に構成されており、Hugo + PaperMod をカスタマイズしていく上でのテンプレートとして良い出発点になります。

以下に、記事テンプレートのHugo向け実装ガイドとしてまとめます。
これをもとに、実際のブログ記事制作を進めたり、archetypesディレクトリにテンプレートを設置して使い回すことが可能になります。

この後、作成されたテンプレートを機能させる為の実装方法の紹介が長く続くため割愛。
記事の趣旨と変わる為、個別に記事をまとめる予定です。

Hugoへの設置手順

  1. archetypes/default.md をこのテンプレートに差し替え

記事作成時に自動適用されます:

hugo new posts/my-new-article/index.md

Step.2:トップページの構成を相談

Claudeからは、例えば以下のような提案が得られます:

  • ヒーローセクション(大きなアイキャッチ)
  • おすすめ記事(weight指定)
  • 最新記事9件(段階表示)
  • カテゴリ別一覧
  • About + フッターリンク

こうしたアイディアを受けて、どこまで実装するかを対話で決めていきます。

追加要望を送信

ステップ1でカットした要望を送信。

テンプレートありがとうございます。
追加で相談ですが、現在のサイトの構成・カテゴリ・トップページのセクション分けなどの設計を一緒に考えてもらえますか?

回答:Claude-3.5-Sonnet

※各項目をクリックで展開※

1. メインカテゴリの整理と体系化

現在のカテゴリを以下のように体系化することを提案します:

1. 🎨 クリエイティブAI
   - 🎞️ AI動画制作
   - 🌄 画像生成AI
   - 🎵 音声・音楽AI

2. 🛠️ 開発・技術
   - 💻 AI開発支援ツール
   - ⚙️ プログラミング
     - Python
     - JavaScript
     - その他言語
   - 🏗️ Web開発
     - Hugo
     - Git
     - Netlify

3. 📚 学習リソース
   - 🎓 入門講座
   - 💡 チュートリアル
   - 📖 ガイド・リファレンス

4. 🔍 特集・レビュー
   - 📱 ツールレビュー
   - 💭 考察・分析
   - 🗂️ ケーススタディ

5. 🎮 創作・実践
   - 🕹️ ゲーム制作
   - 🎨 アート制作
   - 🎬 動画制作

2. トップページのセクション構成

1. ヒーローセクション
   - サイトの主要メッセージ
   - 検索バー
   - 主要カテゴリへのクイックリンク

2. 注目コンテンツ
   - 特集記事(最大3つ)
   - 人気の連載
   - 最新のプロジェクト

3. 最新記事
   - カテゴリ別の最新記事
   - タグクラウド

4. 学習ロードマップ
   - 初心者向けガイド
   - スキルレベル別コンテンツ
   - おすすめ学習パス

5. リソース・ツール
   - よく使うツール集
   - チートシート
   - テンプレート

6. コミュニティ
   - コメントセクション
   - SNSフィード
   - ニュースレター登録

3. 記事構造の標準化

各記事タイプごとのテンプレート例:

チュートリアル記事

---
type: tutorial
difficulty: beginner/intermediate/advanced
estimated_time: "30 min"
prerequisites:
  - "前提知識1"
  - "前提知識2"
---

# はじめに
#
## 本チュートリアルの目標
## 必要な環境・ツール

# 手順
#
## Step 1: 準備
## Step 2: 基本設定
## Step 3: 実装
## Step 4: テスト
## Step 5: デプロイ

# トラブルシューティング
#
## よくある問題と解決方法

# まとめ・次のステップ

レビュー記事

---
type: review
product_name: ""
version: ""
rating: 4.5
pros:
  - "長所1"
  - "長所2"
cons:
  - "短所1"
  - "短所2"
---

# 概要
#
## 製品の特徴
## 主な用途

# 詳細レビュー
#
## 機能面
## パフォーマンス
## 使いやすさ
## コスト

# 実践例・ユースケース
#

# 総評
#

4. URL構造の設計

/
├── tutorials/
│   ├── beginner/
│   ├── intermediate/
│   └── advanced/
├── reviews/
│   ├── tools/
│   ├── services/
│   └── products/
├── series/
│   └── [シリーズ名]/
│       ├── part-1/
│       ├── part-2/
│       └── part-3/
├── categories/
└── tags/

5. メタデータの標準化

# 共通メタデータ
metadata:
  author:
    name: "lain"
    role: "creator/developer/writer"
  reading_time: "X min"
  difficulty: "beginner/intermediate/advanced"
  last_updated: "YYYY-MM-DD"
  version: "1.0"
  license: "CC BY-SA 4.0"

# SEO最適化
seo:
  title: ""
  description: ""
  keywords: []
  og_image: ""

# 関連コンテンツ
related:
  series: ""
  previous: ""
  next: ""
  recommended: []

これらの提案を基に、サイトの目的や読者のニーズに合わせて調整することができます。特に以下の点について検討することをお勧めします:

  1. 現在の人気コンテンツの分析
  2. 読者層とそのニーズの把握
  3. 今後追加予定のコンテンツタイプ
  4. コンテンツの更新頻度
  5. シリーズものの企画

必要に応じて、これらの要素を反映させた更新版の設計を提案させていただきます。

Step.3:テンプレートの提案と生成

Claudeに「おすすめ記事のセクションだけカスタマイズしたい」と伝えると、以下のようなテンプレート提案がされるかもしれません:

<!-- layouts/partials/featured.html -->
<section id="featured-posts">
  <h2>注目の記事</h2>
  {{ range where .Site.RegularPages "Params.featured" true }}
    <article>
      <a href="{{ .RelPermalink }}">
        <h3>{{ .Title }}</h3>
        <p>{{ .Params.description }}</p>
      </a>
    </article>
  {{ end }}
</section>

Hugo固有の構文も混ざるため、**「このコードで正しい?」**と逐次確認しながら進めると安心です。

Step.4:CSSや構造のチューニング

生成されたHTMLをもとに、Claudeに以下のように聞いてみましょう:

このHTMLにマッチするCSSを提案してくれますか?
カード形式で、ホバー時に色が変わるようにしてほしいです。

ClaudeはTailwind CSSのようなユーティリティ系でも、純粋なCSSでも提案可能です。 好みに合わせて調整できます。

step5:他のセクションへ展開

完成した1セクションをテンプレート化して、他にも応用できます:

  • .Site.Taxonomies.tagsを使ったタグ別ページ
  • .Site.Params.projectsを使ったポートフォリオ表示
  • searchComponent.jsのように再利用可能なJS設計

こうした再利用・拡張の設計もClaudeと一緒に考えると時短になります。

おまけ:創作系シリーズ記事の構成案


user icon
Claudeと作る“創作系シリーズ記事の構成案” というお題で、回答お願いします。

ai icon
Claudeと作る創作系シリーズ記事の構成案を提案させていただきます。

1. シリーズの基本設計

シリーズタイプとテンプレート

シリーズ識別子: create_with_claude_[type]
シリーズ例:
- create_with_claude_game (ゲーム制作)
- create_with_claude_web (Webアプリ)
- create_with_claude_art (アート作品)
- create_with_claude_story (物語創作)

基本構成(4部構成)

Part 1: 導入・設計編
- コンセプトメイキング
- Claudeとのアイデア出し
- 基本設計の相談

Part 2: プロトタイプ編
- 最小機能版の作成
- Claudeとのデバッグ
- 基本機能の実装

Part 3: ブラッシュアップ編
- 機能の拡張
- デザイン改善
- 細部の調整

Part 4: 完成・応用編
- 最終調整
- 派生アイデア
- 次のステップ

2. 記事テンプレート

---
title: "[シリーズ名] Part X:サブタイトル"
series: "create_with_claude_[type]"
part: X
total_parts: 4
difficulty: "beginner/intermediate/advanced"
created_with: "Claude 3 Sonnet"
estimated_time: "XX min"
---

# はじめに
#
## 本記事のゴール
- 達成目標1
- 達成目標2
- 達成目標3

## 前回のおさらい
※Part 1以外で必要

# Claudeとの対話セッション
#
## アイデア出し
🤔 人間: [質問/相談内容]
🤖 Claude: [回答/提案内容]

## 設計相談
🤔 人間: [設計に関する質問]
🤖 Claude: [設計提案/アドバイス]

# 実装プロセス
#
## Step 1: [作業タイトル]
```jsx
// コード例
```markdown

Step 2: [作業タイトル]
- 作業内容
- 注意点
- Claudeからのアドバイス

振り返りと次のステップ<br>
[うまくいった点]<br>
- 成功ポイント1
- 成功ポイント2

課題と改善案
- 課題1とその解決策
- 課題2とその解決策

次回予告
- 次回の目標
- 準備しておくこと

Tips:Claudeとの効果的な対話法
- 今回の制作で発見したコツ
- 有効だった質問パターン
- 避けるべき質問例


### 3. シリーズ別の特徴的な要素

ゲーム制作シリーズ
```markdown
追加セクション:
- ゲームメカニクス設計
- バランス調整
- プレイテスト結果

Webアプリシリーズ

追加セクション:
- UI/UX設計
- レスポンシブ対応
- パフォーマンス最適化

アート作品シリーズ

追加セクション:
- デザイン要素の解説
- 色彩設計
- 構図の検討

物語創作シリーズ

追加セクション:
- キャラクター設定
- プロット構成
- 世界観設定

4. 読者参加型要素

各記事末尾に追加:

## 読者の方への質問
- この作品に追加したい機能は?
- 困っている点はありますか?
- 次に作ってみたいものは?

## 共有コーナー
- GitHub/Codepen等での作品共有
- 派生作品の紹介
- 読者作品ギャラリー

5. シリーズ全体の管理

シリーズインデックスページの構成:

1. シリーズ概要
   - 目的と対象読者
   - 必要な前提知識
   - 最終的なゴール

2. 各回へのクイックリンク
   - 記事タイトル
   - 主要トピック
   - 難易度
   - 所要時間

3. リソースリンク
   - 参考文献
   - 使用ツール
   - サンプルコード

4. 成果物ギャラリー
   - 完成作品例
   - 読者作品
   - 派生プロジェクト

6. 最後に

ai2 icon
この構成案をベースに、実際の制作過程で得られる知見や読者からのフィードバックを基に、継続的に改善していくことができます。
特に「Claudeとの対話セッション」部分は、実際の会話の流れに応じて柔軟に調整することをお勧めします。

まとめ: 対話で設計するというスタイル

このステップでは、単にコードを出力するのではなく、「構造を設計する対話の流れ」そのものを記事に残すことで、他の開発者にも有益な記録になります。

📝あなただけの設計図を、AIと一緒に描く。

それがこの講座の醍醐味です。

次のステップでは、「Claudeと一緒にJSウィジェットや検索機能を作る」 など、さらに高度な連携に挑戦していくことも可能です。

この形式で実際のやりとりを載せたい場合は、Claudeとの対話ログのスクショや抜粋を貼って補完していくのもおすすめです。