Skip to content

CNDW2026: 機能フラグ付きでkaigi.cloudnativedays.jpの機能を移植 - #433

Merged
nabemasat merged 8 commits into
mainfrom
CNDW2026_website_migration
Aug 2, 2026
Merged

CNDW2026: 機能フラグ付きでkaigi.cloudnativedays.jpの機能を移植#433
nabemasat merged 8 commits into
mainfrom
CNDW2026_website_migration

Conversation

@nabemasat

Copy link
Copy Markdown
Contributor

概要

kaigi.cloudnativedays.jp の主要機能を、現行サイトのデザインを維持したまま移植しました。

  • スポンサー一覧(トップページセクション)
  • タイムテーブル(/timetable)
  • セッション一覧・詳細(/sessions)
  • ジョブボード(/jobboard)
  • ブログ改修(MiniSearch検索・サイドバー・RSS・ページネーション廃止)

機能フラグ

上記機能(ブログ除く)は src/features.ts でデフォルト無効です。
ENABLE_SPONSORS / ENABLE_TIMETABLE / ENABLE_SESSIONS / ENABLE_JOBBOARD 環境変数で有効化できます。
無効時はページ自体が生成されないため、本PRマージ後も本番の見た目は変わりません

データ層

  • Dreamkast APIへのアクセスはビルドから分離(npm run update:data で手動取得→コミット)
  • ビルドはコミット済みスナップショットJSONのみ参照
  • src/data/dreamkast-fixtures/ はcnk由来のテストデータ(DREAMKAST_DATA_DIR 指定時のみ使用、本番データ投入後に削除予定)

動作確認

  • フラグOFF(デフォルト): 637ページ、従来と同一の出力
  • 全フラグON+フィクスチャ: 698ページ、全機能の描画を確認
  • 詳細は AGENTS.md / README.md に記載

🤖 Generated with Claude Code

nabemon and others added 7 commits August 2, 2026 11:39
node-fetch@2とNode.js 22の組み合わせでgzipレスポンス受信時に
Premature closeが発生しビルドが失敗していたため、ランタイムの
ネイティブfetchを使うよう変更。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
src/features.tsにFEATURES(sponsors/timetable/sessions/jobboard、
デフォルトOFF)を定義し、ENABLE_*環境変数で上書き可能にする。
Navbar/Footerのリンクをフラグ駆動化し、古いkaigi告知バナーを削除。
新機能用の依存(marked/shiki/minisearch/tsx)を追加し、実体のない
scripts/を参照していた死んだnpm scriptsを削除。
tsconfigのmoduleResolutionをbundlerへ(astro/zodのexports解決のため)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
src/lib/dreamkast/にzodスキーマ・スナップショット読取クライアント・
ETag対応画像ダウンローダ・スポンサーtier共通ヘルパを実装。
ページはビルド時にDREAMKAST_DATA_DIRのJSONのみを読み、API取得は
scripts/update-data.ts(npm run update:data)に分離。eventAbbrは
EVENT_ABBR環境変数でパラメータ化。
src/data/dreamkast-fixtures/はcnk由来のテストデータで、
DREAMKAST_DATA_DIR指定時のみ使用(本番データ投入後に削除予定)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kaigi.cloudnativedays.jpの構造を現行デザインイディオムに適合させて移植。
全ページ/セクションはFEATURESフラグでゲートされ、デフォルト無効
(無効時はページ自体が生成されない)。
イベント固有設定はtimetable-config.tsに集約し、実データ確定後に
更新すべき箇所へTODO(CNDW2026)マーカーを付与。
セッション一覧はURLパラメータ同期のクライアントフィルタ付き。
ジョブボードはjobboard.jsonをスポンサーIDでjoinし、marked+shikiで
説明文を描画。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
MiniSearch+CJKバイグラムによるクライアント検索と静的検索インデックス
(/posts/search-index.json)を追加。記事詳細に検索フォーム・最新5記事・
タグを持つサイドバーとJSON-LDを追加。ページネーションを廃止して
全件表示+検索に置換し、タグページは維持。
トップページの最新ブログをLatestPosts(1大+2小構成)へ抽出し、
rss.xmlを追加。壊れたCSS変数を使っていたBlogPostsLink/BlogTagsLinkを
Tailwind化。Notionクライアントにはブロック取得キャッシュを追加
(検索インデックスと記事ページの二重取得防止)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
トップページでスクロールまでNavbarを隠すフェードイン挙動を廃止し、
全ページで常時表示に統一。最新ブログセクションをスポンサーより
上に移動。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@aws-amplify-us-east-1

Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-433.d1fbfmeuaycsih.amplifyapp.com

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@nabemasat
nabemasat merged commit d5e9e5c into main Aug 2, 2026
1 check passed
@nabemasat
nabemasat deleted the CNDW2026_website_migration branch August 2, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant