Skip to content

Port website over to Astro - #44

Open
meenbeese wants to merge 1 commit into
jython:masterfrom
meenbeese:astro
Open

meenbeese wants to merge 1 commit into
jython:masterfrom
meenbeese:astro

Conversation

@meenbeese

Copy link
Copy Markdown

Summary

Rewrites the Jython website from Jekyll (Ruby) to Astro, using the official create astro scaffold. The generated site is functionally identical — same pages, same URLs, same look — but the toolchain is more modern, faster, and much easier to work with.

Why

  • More modern: Astro is an actively developed, TypeScript-first static site generator with a huge ecosystem. Jekyll is Ruby-based and its GitHub Pages toolchain pinned us to Ruby 3.1 (the current gems crash on newer Ruby).
  • Easier to use: A single bun install && bun run dev gets a contributor up and running — no Ruby, no Bundler, no gem version pinning. The old setup required matching a specific Ruby version just to build locally.
  • Faster builds: a full build now runs in well under a second.
  • Familiar authoring: content stays in plain Markdown with frontmatter, so writing pages is unchanged.
  • Better defaults: built-in syntax highlighting, component-based layouts, and hot reload.

Before / After

Before (Jekyll) After (Astro)
Before After

What changed

  • Replaced the Jekyll project with an Astro project:
    • src/pages/*.md — the 11 content pages (Markdown + layout frontmatter)
    • src/layouts/BaseLayout.astro — header, nav, footer, and SEO meta (ported from _layouts/default.html)
    • src/components/Navbar.astro + src/data/navbar.ts — dropdown navigation (ported from _includes/navigation.html + _data/navbar.yml)
  • Moved static assets into public/ (CNAME, .well-known/atproto-did, images, and the existing slate theme CSS).
  • Added astro.config.mjs (site: https://www.jython.org, build.format: 'file' to preserve existing .html URLs, github-light code highlighting).
  • Added .github/workflows/deploy.yml using the official withastro/action to build and publish to GitHub Pages on master.
  • Committed bun.lock so deployments are reproducible.
  • Removed the Jekyll files: _config.yml, _data/, _includes/, _layouts/, Gemfile, Gemfile.lock, _site/, assets/, and the root-level .md files now living in src/pages/.
  • Updated README.md with the new build/dev instructions.

Notes

  • index.md and jyspecific.md previously used Liquid data lookups (site.data.book, site.data.pydoc); these were resolved to their literal URLs to avoid adding the MDX integration.
  • No change to the published URL structure (/download, /news, etc. all still resolve).

How to test

bun install
bun run dev      # preview at http://localhost:4321
bun run build    # outputs to dist/

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