Skip to content

Portal: the HardFOC home page on the shared theme, with a generated repository catalogue - #6

Merged
N3b3x merged 5 commits into
mainfrom
site/portal
Nov 2, 2026
Merged

N3b3x merged 5 commits into
mainfrom
site/portal

Conversation

@N3b3x

@N3b3x N3b3x commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Replaces the placeholder MkDocs site with the organisation portal. It is an unversioned site built with the shared HardFOC theme: ru-mkdocs-publish.yml with versioning: false, from hardfoc/hf-general-ci-tools#42.

Site

Page Contains
Home The hero (what HardFOC is), cards for the two boards and for a chip driver on any MCU, the layer figure (figkit, light and dark), how the documentation sites are addressed
Get started A table of paths. Vortex V1 and Flux V1 each get a board card and steps through the HAL quickstart, the pin map and bring-up, then the product (Vortex: getting started, CANopen, object dictionary), with a table of the relevant sites. A chip driver on your MCU covers finding the chip, its quickstart, the submodule and the port
Repositories Every public repository as a card: description, topics as chips, links to the repository, the docs (when it has Pages) and the latest release. Cards are grouped by role (products, core, HALs, drivers, CI and tools, documentation, legacy). A search field and the topic chips filter them. ?q= and ?topic= work as links
Architecture The layer figure, a table of the layers (repositories, dependencies, platform code), the submodule graph, shared tooling
Contribute Issues, the CONTRIBUTING / CODE_OF_CONDUCT / style-guide links, private vulnerability reports (security policy), how to change the catalogue

Catalogue generated at build time

  • tools/portal/catalogue.py reads org/org-metadata.json from hardfoc/.github through the API. That file is the record for descriptions and topics.
  • From the GitHub API it reads which repositories are public, has_pages and each repository's latest release.
  • It writes build/portal/catalogue.md, which docs/repositories.md includes. The file is not committed.
  • It runs in the workflow's check_commands. The job's read-only GH_TOKEN is passed in by #42.
  • Only public repositories are listed, so hardfoc-flux-v1 is not; the Flux page says its docs are a CI artifact.
  • tests/test_catalogue.py covers grouping, card rendering and escaping without the network.
  • A daily scheduled run republishes, so new repositories, releases and Pages sites appear without a commit.

Workflow

  • .github/workflows/docs.yml (📚 Portal) replaces build-and-deploy.yml. That workflow ran peaceiris/actions-gh-pages on every push, to every branch, and wrote CNAME docs.hardfoc.dev, a domain that does not resolve.
  • Pull requests build, check and audit, and never publish.
  • A push to main (or the daily run) publishes the built site as the whole gh-pages branch, in one ordinary commit.
  • The stale CNAME is not carried over: the custom domain comes only from the site (docs/CNAME), and this site has none.
  • The caller pins @docs/unversioned-sites (the branch of #42) until #42 is released. Then it becomes @v1; this is a one-line follow-up.

Checked locally

  • hardfoc-docs check: the figure is current.
  • mkdocs build --strict: no warnings.
  • lychee offline with fragments: 0 errors in 469 links.
  • The catalogue script against the live API: 42 repositories.
  • Screenshots at 375 and 1280 px, light and dark, of home, repositories (unfiltered and filtered by text and topic), the Vortex page and architecture.

Owner / orchestrator steps, in order

  1. Merge Unversioned sites, branded root 404, own-site link exclusion, migration and theme fixes hf-general-ci-tools#42 (and let it release), then switch this caller to @v1.
  2. Merge this PR. The push to main runs the deploy job, which replaces gh-pages with the new site.
  3. Only after that deploy succeeds: Settings > Pages > Build and deployment, Deploy from a branch, branch gh-pages, folder /. Pages serves main today. Check that no custom domain is set; this PR does not set one.
  4. Check: curl -sI https://hardfoc.github.io/ | head -1 gives 200, and the page title is "HardFOC".

@N3b3x
N3b3x merged commit 9bd0506 into main Nov 2, 2026
3 checks passed
@N3b3x
N3b3x deleted the site/portal branch November 2, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant