Skip to content

feat: publish a static demo of the timeline on GitHub Pages - #149

Open
KinjiKawaguchi wants to merge 3 commits into
feat/web-timelinefrom
feat/web-timeline-demo
Open

KinjiKawaguchi wants to merge 3 commits into
feat/web-timelinefrom
feat/web-timeline-demo

Conversation

@KinjiKawaguchi

Copy link
Copy Markdown
Member

Why

Web タイムラインが実際にどう見えるかを、環境を用意せずに確かめられるようにしたい。研究室メンバーに導入前に見せる、README を読んだ人がひと目で判断する、といった場面で効きます。

Topcoat は今回リアクティビティを一切使っていないため、画面の出力は JavaScript ゼロ・外部リソースゼロの自己完結した HTML(36KB、Tailwind CSS インライン込み)です。静的ホスティングにそのまま置けます。

Note

このPRは #140 をベースにしています。#140 がマージされれば自動で main ベースに切り替わります。

What

  • examples/demo_page.rs — 架空の予約を積んだ画面を起動し、期間ごとの HTML を書き出す
  • .github/workflows/demo-page.yml — main への反映時と毎朝 6:00 (JST) に生成して Pages へ配信
  • README と管理者ガイドからデモへリンク

tests/preview.rs は開発中の目視確認用でしたが、cargo run --example demo_page が同じ役割を果たすので削除しました。

How

リンクの書き換えが必要でした。 期間切り替えは href="/?days=7" というサーバー上の絶対パスを出します。kano-lab.github.io/lab-resource-manager/ のようなサブパス配信では / がドメインルートを指して壊れるため、7days.html 等へ置き換えています。本番コードには手を入れず、生成側で完結させました。

置き換えは属性ごと行っています。/?days=3 だけを狙うと /?days=30 の先頭にも当たり、30日表示へのリンクが 3days.html0 に化けるためです(実際に踏みました)。生成時に絶対パスが残っていないことを assert で確かめています。

公開ページに出る名前に配慮しました。 所有者は alice / bob / carol … の英字定番名にし、リソース名も Aurora / Borealis という架空のものに変えています。ページ先頭には架空データである旨の断り書きを常時表示します。実在の研究室メンバーの予約と読み違えられないようにするためです。

毎朝作り直します。 画面には現在時刻を示す赤い縦線が入ります。データは生成時刻からの相対で作っているので、再生成するだけで「今日」に追従します。

デモに含めた状況

画面の挙動が一通り分かるよう、次を含めています。

  • 表示範囲の前から続く進行中の予約(左端が切り欠きになる)
  • 同一 GPU で時間が重なる2件(上下に段が分かれる)
  • 表示範囲の先まで続く長時間ジョブ(右端が切り欠きになる)
  • 設定から外れたサーバーの予約(末尾に「設定にないリソース」としてまとまる)
  • 予約が1件もないリソース(空いていることが見える)

マージ前に必要な設定

リポジトリ設定で GitHub Pages を有効にする必要があります(Settings → Pages → Source を "GitHub Actions" に)。これを行わないと deploy ジョブが失敗します。

🤖 Generated with Claude Code

https://claude.ai/code/session_016uSBf6WpYKseYkhxDLKCLt

@KinjiKawaguchi KinjiKawaguchi changed the title feat(demo): 予約タイムラインの静的デモをGitHub Pagesで公開する feat: publish a static demo of the timeline on GitHub Pages Aug 2, 2026
@KinjiKawaguchi
KinjiKawaguchi force-pushed the feat/web-timeline-demo branch from a9726c7 to 652912a Compare August 2, 2026 10:58
KinjiKawaguchi and others added 3 commits August 2, 2026 20:46
画面の出力はJavaScriptも外部リソースも含まない自己完結したHTMLなので、
静的ホスティングにそのまま置ける。架空の予約を積んだ画面を起動して期間ごとの
HTMLを保存する。

期間切り替えのリンクはサーバー上の絶対パスで、配信先がドメイン直下とは限らない
静的ホスティングでは行き先を見失う。ファイル名へ置き換えたうえで、絶対パスが
残っていないことをその場で確かめる。

所有者名には英字の定番名を使い、架空のデータである旨をページ先頭に出す。
公開されるページで実在の利用者と読み違えられないようにするため。

開発中に画面を目で確かめる用途も兼ねるので、tests/preview.rs は役目を終えて削除する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uSBf6WpYKseYkhxDLKCLt
画面には現在時刻の目印が入るため、作り直さないと日付が置き去りになる。
mainへの反映時に加えて毎朝更新する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uSBf6WpYKseYkhxDLKCLt
READMEと管理者ガイドから、実際の画面を見て判断できるようにする。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uSBf6WpYKseYkhxDLKCLt
@KinjiKawaguchi
KinjiKawaguchi force-pushed the feat/web-timeline-demo branch from 652912a to 3b1f636 Compare August 2, 2026 11:47
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