Static landing page for the pythonbackport GitHub org.
The page is fully data-driven. Every repository card on the site comes directly from the live GitHub API at build time. There is no on-disk cache of repository metadata anywhere in this repo.
GitHub API ──► scripts/build.py ──► index.html
▲
│
site.json (display rules + org config)
templates/index.template.html (HTML shell with {{projects}})
| File | Role | Edit it? |
|---|---|---|
site.json |
Categories, keywords, excluded repos, copy. Zero repo metadata. | yes |
templates/index.template.html |
Static HTML shell. Contains {{projects}} placeholder. |
yes |
scripts/build.py |
Fetches repos + renders HTML. | rarely |
index.html |
Generated. Do not edit by hand. | no |
# Render against the live GitHub API (rate-limited to 60/h without token)
python scripts/build.py
# Fail if index.html is stale (useful in CI before deploying)
python scripts/build.py --checkGH_TOKEN (or GITHUB_TOKEN) raises the API limit to 5,000/h.
.github/workflows/refresh.yml runs daily at 06:13 UTC and rebuilds
index.html from the live GitHub API. If anything changed, it commits the
updated file back to the master branch. The Pages deploy workflow
(.github/workflows/static.yml) then publishes the new build.
- Add a category — edit
site.json→categorieswith akeywordslist and an optionalorder. Repos that match those keywords land there. - Pin a repo — add its name to a category's
orderarray. - Force a repo into a category — add its name to that category's
always_include_namesarray. - Hide a repo — add its name to
display.exclude_repos.
No code changes are needed for any of the above.
MIT — see LICENSE.