the /browser module provides client-side hydration utilities. it exposes a single hydrate() function that attaches interactivity to markdown rendered using the /palette modules, enabling features such as toggling line numbers or copying code blocks to the clipboard.
hydrate
export function hydrate(signal: any): (node: HTMLElement) => () => void;
hydrate() is framework-agnostic. it returns a function that runs after the element is mounted, and provides a cleanup function that runs on unmount. use it in any environment that supports mount/unmount hooks.
the example below shows usage with Svelte 5 and SvelteKit:
<script>import { hydrate } from 'aubade/browser';import { navigating } from '$app/state';</script><main {@attach hydrate(navigating.from)}><!-- content here --></main>
the {@attach} directive calls hydrate() once the <main> element mounts. passing navigating.from ensures hydration re-runs on client-side navigation, so code block features remain active across page transitions.