TypeScript / React / Vite / Tailwind CSS。GitHub Pages で base: '/WebFileTools/'。
npm run dev— ローカル開発npm run build— 本番ビルド + SPA 用404.htmlコピーnpm run preview— 本番ビルドのプレビュー
任意の Google Analytics(ビルド時に埋め込み):
VITE_GA_MEASUREMENT_ID=G-XXXXXXXX- Settings → Secrets and variables → Actions
- New repository secret
- Name:
VITE_GA_MEASUREMENT_ID - Value: Google Analytics の測定 ID(
G-XXXXXXXX)
- Name:
- push するか Actions を再実行し、
npm run buildに渡す
ローカルの .env は npm run dev 用。Pages 本番は Actions の Secret を使う。
未設定なら計測はオフです。
- ファイル処理はクライアントのみ
- ツールは
src/tools/配下の独立モジュール src/tools/loadTool.tsに lazy 登録しregistry.tsのreadyを更新- 機能変更時は README(en/ja)・docs(en/ja)・UI 文言を同期
ビルド時に scripts/postbuild-seo.mjs が次を生成します。
- 英語(
/・/tools/...)と 日本語(/ja・/ja/tools/...)それぞれの HTML に、言語別 title / description / OG テキスト /og:locale/hreflang/ canonical / JSON-LD / noscript(og:imageなし) sitemap.xml(日英 URL + xhtml hreflang)/robots.txtllm.txt/llm-full.txt- SPA 用
404.html
UI・OGP の言語は URL が正(フッタの言語切替は /… と /ja/… を行き来)。クライアント遷移時は src/seo/SeoListener.tsx が同等のメタを更新。
OpenAI トークン数は js-tiktoken(cl100k_base)を使用します。語彙データが大きいため、当該ツールを開いたときだけ読み込みます。