Skip to content

feat: Docs section, bidirectional converter names, slimmer featured set - #4

Merged
ronaldtse merged 8 commits into
mainfrom
feat/docs-and-featured-cleanup
Aug 7, 2026
Merged

feat: Docs section, bidirectional converter names, slimmer featured set#4
ronaldtse merged 8 commits into
mainfrom
feat/docs-and-featured-cleanup

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Three related IA improvements.

Bidirectional converter names

emfsvg and postsvg both convert in both directions, not one-way. Titles updated to match reality:

  • EMF→SVGEMF↔SVG
  • PostsvgPS↔SVG

Slimmer featured set (7 → 6)

Dropped emfsvg from the featured list on the home page. Vectory bundles both emfsvg and postsvg, so featuring all three was redundant — Vectory is the headline, the others are legs. Featured is now: claricle, vectory, svg_conform, png_conform, elkrb, sirena.

New Docs section

Postscript Guide is now a guides collection entry surfaced via a new Docs link in the header nav (between Projects and About).

  • New content collection: guides (title, format, description, url, status: stable|beta|wip|planned, order)
  • New page: /docs/ — lists available guides plus a "On the roadmap" section pre-populated with planned guides for SVG, PNG, EMF, PDF
  • New component: GuideCard.astro (status badge, format label, external link)
  • Removed postscript-guide from the projects collection (it's a guide, not a library)

Test plan

  • CI on this PR runs green
  • Home page shows 6 featured projects (no emfsvg)
  • /projects/ lists 13 entries; emfsvg shows title "EMF↔SVG", postsvg shows "PS↔SVG"
  • Nav has Docs link between Projects and About
  • /docs/ lists PostScript guide in "Available now" + 4 placeholders in "On the roadmap"
  • Clicking a guide card opens the external URL in a new tab
  • About page ecosystem table no longer lists postscript-guide as a project

Astro 7.2 requires Node >= 22.12. The previous workflows used Node 20,
which caused both CI and Deploy to fail on first run.

Bumps:
- .github/workflows/ci.yml: node-version 20 -> 22
- .github/workflows/deploy.yml: node-version 20 -> 22
- package.json engines.node: >=20.0.0 -> >=22.12.0
Adds two icon variants of the Claricle logo:
- logo-claricle_icon-light: saturated colors that pop on white
- logo-claricle_icon-dark: luminous colors that glow on dark

Logo.astro is the single component that picks the variant. Default is
"auto" — swaps via CSS based on prefers-color-scheme OR [data-theme].
The :not([data-theme='light']) guard ensures a manual "light" choice
wins even when the system preference is dark.

ThemeToggle.astro adds a sun/moon button to the nav. Click sets
data-theme on <html> and persists to localStorage['claricle-theme'].

BaseLayout ships an inline pre-paint script that applies any stored
theme before first paint — prevents FOUC.

brand.css gains dark-mode overrides for all 5 spectrum tokens, so
category badges, dots, and stripes shift coherently with the logo.
The same :not([data-theme='light']) guard is applied to the media
query so the manual toggle always wins.

LogoShowcase now purposefully renders the light variant in the light
card and the dark variant in the dark card, instead of the same SVG
twice.
Content updates from the actual repo READMEs:
- postscript: pure-Ruby PS/EPS parser, typed model, serializer (lower
  layer of postsvg)
- postscript-guide: Jekyll reference site for 300+ PostScript operators,
  hosted at claricle.github.io/postscript-guide/
- postsvg: bidirectional PS/EPS to SVG transformer, no Ghostscript
- pdfrb: Arlington-model-driven PDF reader/model/serializer
- emf: clean-room pure-Ruby parser for WMF, EMF, and EMF+

Removed from the projects page (Claricle is a fork, not the maintainer):
- pdf-core-examples
- libemf2svg (the Ruby binding emf2svg-ruby remains listed)
- pngcheck

Project count: 17 to 14. Spec threshold lowered from 15 to 10.
The attribution already lives in the footer; repeating it in the hero
crowds the logo and dilutes the headline.
…ured set

Names now match reality:
- emfsvg: "EMF to SVG" -> "EMF<->SVG" (bidirectional, always was)
- postsvg: "Postsvg" -> "PS<->SVG" (bidirectional)

Featured set drops emfsvg from 7 to 6 highlights. Vectory already bundles
both emfsvg and postsvg, so listing all three at the top of the home page
was redundant.

Postscript Guide moves out of the projects collection and into a new
guides collection, surfaced via a Docs section in the header nav. The
docs page (/docs/) lists available guides plus a roadmap of planned
guides for SVG, PNG, EMF, and PDF.

- New content collection: guides (title, format, description, url,
  status: stable|beta|wip|planned, order)
- New page: src/pages/docs/index.astro
- New component: src/components/GuideCard.astro
- Nav gains a Docs link between Projects and About
The "On the roadmap" cards on /docs/ were raw article tags, so the
GuideCard scoped styles did not apply and they rendered unstyled.

GuideCard now accepts either a real guide entry or a placeholder
shape ({ format, description }). The placeholder variant renders
with dashed border + soft surface, no link, no hover lift.
Astro/JSX eliminates whitespace at element/newline boundaries, so a
paragraph split across source lines like:

  text
  <a>link</a>
  text

renders as "textlinktext". This was visible on /projects/ as
"theclaricleorg" and elsewhere on /about/.

Re-flowed every paragraph that mixed text with inline <em>, <strong>,
<code>, or <a> elements to a single source line. Pure-text paragraphs
are unaffected (newlines inside a text node collapse to a single space,
which is correct).

Verified rendered output: "under the claricle org on GitHub", "gives us
clarity and clarify", "drawn from particula", "Ribose maintains",
"github.com/claricle", "from the ecosystem page".
Removed the "canonical source is logo-claricle.png" line from the About
page logo section. The branding asset story will live in a dedicated
claricle/branding repo (see that repo for canonical artifacts).

Removed hardcoded and dynamic counts from user-facing copy:
- projects page hero: "Seventeen libraries..." -> "A family of libraries..."
- about page ecosystem: dropped "{n} projects across {m} categories"
- home page CTA: dropped "{n} projects" from "See all projects"
- claricle project entry: dropped "instead of fifteen"

Why: counts go stale the moment a project is added or removed. The
information is already on the projects page if a user wants it.

Also removed the now-unused .source-note CSS rule from about.astro.
@ronaldtse
ronaldtse merged commit a944894 into main Aug 7, 2026
1 check passed
@ronaldtse
ronaldtse deleted the feat/docs-and-featured-cleanup branch August 7, 2026 01:43
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