- HTML 68.9%
- Python 31.1%
Migrate all Firefox release-day automation into the Website repository: - Add .scripts/sync-calendar.py to fetch ICS from upstream - Add .scripts/regenerate-cron.py to rewrite deploy.yml schedule block - Add .scripts/reset-status.py for local front-matter reset - Add .data/release-calendar.json as the local pinned cache - Update deploy.yml to self-heal its own cron triggers on each release - Remove dependency on FlawlessFox for status resets or cron updates BREAKING CHANGE: The Website CI no longer accepts pushes or external script invocations from other repositories. All scheduling is now derived from webcal://whattrainisitnow.com/calendar/future/releases/. |
||
|---|---|---|
| .data | ||
| .forgejo/workflows | ||
| .scripts | ||
| hosting | ||
| root | ||
| themes | ||
| .gitmodules | ||
| LICENSE | ||
| README.md | ||
Website
Source repository for franklyflawless.org and hosting.franklyflawless.org.
Built with Hugo using the Directory theme.
Structure
Website/
├── .forgejo/workflows/ # CI/CD pipeline
├── .scripts/ # Repository-local automation scripts
│ ├── sync-calendar.py # Fetch ICS release calendar from upstream
│ ├── regenerate-cron.py # Rewrite deploy.yml schedule from cache
│ └── reset-status.py # Reset hosting entry statuses to pending
├── .data/ # Cached data
│ └── release-calendar.json # Firefox release date cache (ICS-derived)
├── hosting/ # hosting.franklyflawless.org
│ ├── hugo.toml
│ ├── archetypes/
│ ├── content/ # Service entries (one .md per provider)
│ ├── layouts/ # Site-specific template overrides
│ └── static/img/ # Provider logos (see img/README.md)
├── root/ # franklyflawless.org
│ ├── hugo.toml
│ ├── layouts/
│ └── static/img/ # Service logos (see img/README.md)
├── themes/directory/ # Git submodule → hugo-directory
├── LICENSE
└── README.md
Setup
git clone --recurse-submodules https://forgejo.franklyflawless.org/FranklyFlawless/Website.git
cd Website
Release calendar
The repository maintains its own cached copy of the Firefox release calendar
(.data/release-calendar.json) derived from the authoritative ICS feed:
webcal://whattrainisitnow.com/calendar/future/releases/
On each scheduled release day the CI workflow:
- Fetches the live ICS feed.
- Merges newly announced future releases into the local cache.
- Regenerates the cron schedule in
.forgejo/workflows/deploy.yml. - Resets all
hosting/content/*.mdentry statuses topending. - Commits the updated cache and workflow.
- Rebuilds and deploys both sites.
No cross-repository interactions are required.
Adding a hosting entry
cd hosting
hugo new content/provider-name.md
Edit hosting/content/provider-name.md with the service details.
Download the provider logo to hosting/static/img/provider-name.svg.
Overridable values
The following values are specific to this deployment and should be changed if forking:
| File | Value | Purpose |
|---|---|---|
hosting/hugo.toml |
baseURL |
Hosting directory domain |
root/hugo.toml |
baseURL |
Root domain |
hosting/layouts/index.html |
https://franklyflawless.org |
Home navigation link |
hosting/layouts/_default/single.html |
https://franklyflawless.org |
Home navigation link |
hosting/layouts/_default/single.html |
forgejo.franklyflawless.org/FranklyFlawless/Website |
Git commit URL prefix |
root/layouts/index.html |
Service URLs and thumbnails | Root domain entry list |
The theme also contains a hard-coded Forgejo commit URL prefix in
layouts/partials/card.html. See the theme README for details.
Logo copyright
Provider and service logos in hosting/static/img/ and root/static/img/ are property of their respective owners and are not covered by this repository's CC0-1.0 license. See the README.md file in each img/ directory for details.
Building locally
# Root site
cd root && hugo --themesDir ../themes
# Hosting directory
cd hosting && hugo --themesDir ../themes
License
CC0-1.0 (excluding provider/service logos — see above)