feat(site): Deploy multi-page GitHub Pages site with Astro + React#53
Merged
feat(site): Deploy multi-page GitHub Pages site with Astro + React#53
Conversation
- Initialize Astro + React + TailwindCSS + daisyUI project in site/ - Configure 7 dark/neon theme variants with ThemeSwitcher component - Implement all required pages: Project Info, Statistics, Discussions, Development Board, Create Issue, Docs, Visualizer - Create data fetching scripts for repo stats, discussions, and project board - Build StatisticsCharts component with Chart.js for visualizations - Build MermaidViewer component for interactive diagram display - Create main layout with responsive navbar, sidebar, and footer - Add GitHub Pages deployment workflow - Create bug report and feature request issue templates - Update README with live site information and build instructions - Configure proper base path and asset handling for GitHub Pages Co-authored-by: cywf <100837335+cywf@users.noreply.github.com>
Co-authored-by: cywf <100837335+cywf@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Create and deploy multi-page GitHub Pages site with theme selection
feat(site): Deploy multi-page GitHub Pages site with Astro + React
Nov 2, 2025
cywf
approved these changes
Nov 2, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements a production-ready GitHub Pages site at
/FortiPathwith live repository statistics, discussions browser, project board, documentation hub, and interactive Mermaid diagram visualizer.Architecture
Stack: Astro 5.15 (SSG) + React 19 + TailwindCSS 3.4 + daisyUI 5.4 + Chart.js + Mermaid
Data Pipeline: CI-time GitHub API fetch → static JSON → client hydration. No tokens in browser.
Implementation
Core Features
nightfall,dracula,cyberpunk,dark-neon,hackerman,gamecore,neon-accentwith localStorage persistence.mmdfiles from/mermaid/directory with diagram selector/docs/*.mdfiles on GitHubPages (8 routes)
CI/CD
.github/workflows/pages.ymlorchestrates:GITHUB_TOKEN)Security
Accessibility
prefers-reduced-motionsupportConfiguration
astro.config.mjs:tailwind.config.mjs: Custom daisyUI theme definitions for all 7 variantsRepository Changes
site/- Complete Astro project (26 files).github/workflows/pages.yml- Deployment automation.github/ISSUE_TEMPLATE/- Bug/feature templatesREADME.md- Live site documentationScreenshot
Post-merge: Enable GitHub Pages in Settings → Pages → Source: GitHub Actions
Live URL:
https://cywf.github.io/FortiPath/Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/repos/withastro/astro/tarball/examples/minimalnode /home/REDACTED/.npm/_npx/abdb4b598af046c4/node_modules/.bin/create-astro . --template minimal --install --no-git --typescript strictest --yes(http block)telemetry.astro.buildnode /home/REDACTED/work/FortiPath/FortiPath/site/node_modules/.bin/astro build(dns block)node /home/REDACTED/work/FortiPath/FortiPath/site/node_modules/.bin/astro dev(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
You are working in the public repository cywf/FortiPath (default branch: main).
Create and deploy a robust, multi-page GitHub Pages site using a modern frontend framework (no single static index.html).
Implement theme selection (user can switch among dark/neon variants) and pages wired to live repo data and local files.
Requirements (non-negotiable)
site/(keep repo root clean).package.jsonscripts undersite/: build, dev, preview.nightfall(deep navy/blue accents; professional ops dashboard)dracula(classic Dracula palette)cyberpunk(use daisyUI’s built-incyberpunk)dark-neon(near-black bg, neon green + purple accents)hackerman(retro terminal vibes: amber/green on dark)gamecore(purple→pink gradient accents, neon blues)neon-accent(a neutral dark theme + optional glow utilities)<ThemeSwitcher />(stores choice inlocalStorage, respectsprefers-color-schemeon first load)..env-drivendefault theme fallback (e.g., DEFAULT_THEME=nightfall), but hardcode a safe default if unset.Create these routes with sidebar/topnav and breadcrumb:
A)
/— Project InfoB)
/statistics— Statisticssite/scripts/fetch_repo_data.ts(Node/GraphQL) to fetch public repo data usingGITHUB_TOKEN(Actions token).site/public/data/stats.json.C)
/discussions— Discussionssite/public/data/discussions.json.D)
/development-board— Development Boardsite/public/data/projects.json.status:todo,status:doing,status:done.E)
/create-issue— Create Issuehttps://github.com/cywf/FortiPath/issues/new/choose.github/ISSUE_TEMPLATEexists, respect those; if not, add minimal templates in this PR.F)
/docs— Docs/docs/using Astro’s MD/MDX pipeline (no extra static doc site required here).G)
/visualizer— Project Visualizer/mermaid/**/*.mmd..mmdfiles tosite/public/diagrams/or fetch from GitHub raw on-demand.<MermaidViewer />React component that initializes Mermaid client-side and allows switching between diagrams..github/workflows/pages.ymlto:actions/checkout@v4actions/setup-node@v4(Node 20)npm ciinsite/site/public/data/*.json:node site/scripts/fetch_repo_data.tsnode site/scripts/fetch_discussions.tsnode site/scripts/fetch_projects.ts(tolerate missing Projects v2)npm run buildinsite/actions/configure-pages@v5actions/upload-pages-artifact@v3(path:site/dist)actions/deploy-pages@v4pages: write,id-token: write,contents: read.~/.npmandsite/node_modules/.cacheas appropriate..specify/by linking Implementation Plan and Consti...💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.