Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Deploy Education to GitHub Pages

on:
push:
branches:
- main
paths:
- 'education/**'
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'education'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ The project is organized as a Cargo workspace with multiple crates:
- `toppy-gw`: A lightweight QUIC + HTTP/3 gateway (QUIC ping + CONNECT-UDP echo/forward).
- `toppy-core`: Shared functionality, including configuration management, policy enforcement, and logging.
- `toppy-proto`: Definitions of the custom capsule/command messages used between client and gateway.
- `education`: Educational materials and quizzes (deployed to [GitHub Pages](https://thinksyncs.github.io/toppy/)).
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This list is introduced as “multiple crates”, but education is not a Cargo crate/module. Consider moving it to a separate “Other directories” list or explicitly labeling it as non-crate content to avoid confusing workspace structure.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link points to the Pages site root (https://thinksyncs.github.io/toppy/), but the deployed artifact contains quiz_template_skeleton.html and no index.html, so the root URL will likely 404. Either link directly to the quiz page or add an education/index.html landing page (e.g., redirect / links).

Suggested change
- `education`: Educational materials and quizzes (deployed to [GitHub Pages](https://thinksyncs.github.io/toppy/)).
- `education`: Educational materials and quizzes (deployed to [GitHub Pages](https://thinksyncs.github.io/toppy/quiz_template_skeleton.html)).

Copilot uses AI. Check for mistakes.

See `spec.md` for a usage-oriented spec, and `TODO.md` / `bd` for backlog tracking.

Expand Down
38 changes: 38 additions & 0 deletions education/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Toppy Education

This directory contains educational materials for understanding Toppy, QUIC, HTTP/3, and CONNECT-UDP.

## Available Resources

- **quiz_template_skeleton.html** - An interactive bilingual (EN/JP) quiz covering Toppy fundamentals, QUIC, HTTP/3, CONNECT-UDP, and architecture
- **quiz.css** - Styles for the quiz with light/dark theme support

## GitHub Pages Deployment

These HTML files are automatically deployed to GitHub Pages when changes are pushed to the `main` branch.

Access the quiz at: `https://thinksyncs.github.io/toppy/quiz_template_skeleton.html`
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This hard-codes the Pages URL to a specific owner/repo. For forks/renames/custom domains this will be incorrect; consider documenting the generic URL pattern (https://<owner>.github.io/<repo>/...) and/or using a relative link to the deployed file (e.g., ./quiz_template_skeleton.html) alongside the canonical URL.

Suggested change
Access the quiz at: `https://thinksyncs.github.io/toppy/quiz_template_skeleton.html`
Access the quiz via GitHub Pages at a URL of the form `https://<owner>.github.io/<repo>/quiz_template_skeleton.html`. For this repository, that is `https://thinksyncs.github.io/toppy/quiz_template_skeleton.html`. When browsing the deployed site, you can also use the relative link `./quiz_template_skeleton.html`.

Copilot uses AI. Check for mistakes.

## Local Development

To test the quiz locally:

1. Open `quiz_template_skeleton.html` in your web browser
2. The quiz works entirely client-side with no build step required

## Requirements

The GitHub Pages deployment is configured in `.github/workflows/deploy-pages.yml` and requires:

- GitHub Pages enabled in repository settings
- Pages configured to deploy from GitHub Actions (not branch)
- Workflow permissions set to allow deployments

## Setup GitHub Pages

To enable GitHub Pages for this repository:

1. Go to repository Settings → Pages
2. Under "Build and deployment":
- Source: Select "GitHub Actions"
3. The workflow will automatically deploy on push to `main` branch or manual trigger