Nice little Astro pattern here: a Markdown component trims down the markup and handles typographic symbols too, which feels cleaner than sprinkling that stuff everywhere.
The typographic symbol conversion bit is cute, but it makes me a little twitchy because it can “help” in places you really meant literal ASCII (like -- in CLI flags, -> in code-ish docs, or even ... when you’re being intentional).
I’d keep the Markdown component for prose-y chunks and be pretty strict about fencing anything technical (inline code + code blocks) so the smartypants layer can’t get clever where you don’t want it.