Skip to content

Add brayer and smopt to the project catalog - #25

Merged
saudzahirr merged 3 commits into
masterfrom
feat/list-brayer-and-smopt
Aug 25, 2026
Merged

Add brayer and smopt to the project catalog#25
saudzahirr merged 3 commits into
masterfrom
feat/list-brayer-and-smopt

Conversation

@saudzahirr

Copy link
Copy Markdown
Collaborator

Summary

Adds two entries to PROJECTS in src/data/site.ts:

Project Category Links
brayer Tooling Docs, Source, PyPI
SmOpt (smopt) Optimization Source only

Scoped to the projects page

LEAD is untouched, so FEATURED (the landing page lead grid) and NAV_MENU (the nav dropdown, FEATURED.slice(0, 4)) are unchanged. Both projects appear only in the /projects/ catalog. Verified in the built bundle: LEAD still reads ["pydoe","ad","pyswarm","soerp","mcerp","bb"].

smopt gets no Docs or PyPI link

Both targets 404 right now:

404  https://eggzec.github.io/smopt/
404  https://pypi.org/pypi/smopt/json

A card advertising a dead link is worse than one that stays quiet, so smopt carries only github. brayer's two both return 200 and are wired up. When smopt publishes, adding the fields is a two-line change.

No icons yet

There is no brayer.svg or smopt.svg in public/brand/icons/, so both render the initials placeholder tile that iconMarkup() already falls back to. No new assets are introduced.

One thing to be aware of

The derived counters do move: syncStats() and the footer compute from PROJECTS, so "public repositories" goes 14 → 16, "packages on PyPI" 12 → 13, and "docs" 11 → 12. That is by design — the comment on syncStats says it reads from the catalog "so the landing-page numbers cannot drift from what is actually listed on the site." Freezing them would mean hard-coding a number that is now wrong. Say so if you would rather they stayed put.

Test plan

  • npx tsc --noEmit passes.
  • npm run build succeeds; 223 modules transformed.
  • Only src/data/site.ts changes (15 insertions); no build artifacts committed.

🤖 Generated with Claude Code

saudzahirr and others added 2 commits August 25, 2026 17:44
Both are listed only in the /projects/ catalog: LEAD is untouched, so
neither appears in the landing page lead grid or the nav dropdown.

smopt gets a Source link only. Its docs and PyPI pages both 404 today,
and a card that links to a missing page is worse than one that does not
link at all. brayer has both, so it gets all three.

Neither has a brand icon yet, so both render the initials placeholder
the card component already falls back to.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The icon is smopt's own docs/assets/images/smopt-icon.svg. It matches
the convention the other icons already follow -- same viewBox, same
1024 square, same background-rect-plus-glyph structure -- so it needed
no conversion.

Docs and PyPI both 404 today but are expected shortly, so the links go
in now rather than in a second pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@saudzahirr

Copy link
Copy Markdown
Collaborator Author

Updated: smopt now carries its icon, docs and PyPI links.

  • Icon — taken from smopt's own docs/assets/images/smopt-icon.svg and installed as public/brand/icons/smopt.svg. It already matches the convention the existing icons follow (viewBox="0 0 24 24", 1024 square, background rect plus a coloured glyph group), so no conversion was needed.
  • DocseggzecDocs('smopt')https://eggzec.github.io/smopt/
  • PyPIpypi: 'smopt'https://pypi.org/project/smopt/

Both links 404 today and are expected to go live shortly, so they are wired up now rather than in a follow-up.

Two notes:

  • The icon is not on smopt's master — it currently exists only on the unmerged port-stiefel-solvers-to-fortran-77 branch, which is where I pulled it from. The copy here is self-contained, so nothing breaks either way, but that branch is the only place the source lives right now.
  • I used the pypi field rather than a literal URL, so the card renders https://pypi.org/project/smopt/. That is the canonical project page and matches every other card; https://pypi.org/pypi/smopt/ redirects to it.

tsc --noEmit passes, npm run build succeeds, and the icon ships to dist/brand/icons/smopt.svg. LEAD is still untouched, so this remains projects-page only.

Taken from brayer's docs/assets/brayer-icon.svg, which is tracked on
that repository's master. Its viewBox is 16x16 on a 1024 square, the
same shape pydoe.svg already uses, so it drops in without conversion.

Both new cards now carry a real icon rather than the initials
placeholder.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@saudzahirr

Copy link
Copy Markdown
Collaborator Author

brayer now has its icon too, from docs/assets/brayer-icon.svg in the brayer repo (tracked on that repo's master). Installed as public/brand/icons/brayer.svg.

Its viewBox is 0 0 16 16 on a 1024 square — the same shape pydoe.svg already uses — so it dropped in without conversion.

All 16 catalog entries now carry a real icon, and every referenced icon file exists on disk. Neither new card falls back to the initials placeholder any more.

tsc --noEmit passes, npm run build succeeds, both icons ship to dist/brand/icons/, and LEAD is still untouched — projects page only.

@saudzahirr
saudzahirr merged commit 7125bb6 into master Aug 25, 2026
2 checks passed
@saudzahirr
saudzahirr deleted the feat/list-brayer-and-smopt branch August 25, 2026 13:09
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