accept-md-runtime
v5.0.0
Published
HTML→Markdown conversion and route handler for accept-md (Next.js)
Downloads
2,700
Readme
accept-md-runtime
Runtime for accept-md: HTML-to-Markdown conversion and the handler that serves markdown for Next.js or SvelteKit pages when clients send Accept: text/markdown. Use this in your Next.js API route / Route Handler or SvelteKit +server route.
Installation
pnpm add accept-md-runtime
# or npm install accept-md-runtimePeer dependency: Next.js 12 or later (optional; only needed for Next.js projects).
Quick setup
- Add rewrites or middleware (Next.js) or a
hooks.serverhandle (SvelteKit) that rewritesAccept: text/markdownrequests to your handler (e.g./api/accept-md?path=...). - In that API route / Route Handler, call
getMarkdownForPathwith the request and path.
Or use the CLI: npx accept-md init to generate middleware and handler for you.
API
getMarkdownForPath(req, path, options?)
Fetches the given path as HTML from your app, converts it to markdown, and returns it. Use this in your App Router Route Handler or Pages API route.
import { getMarkdownForPath } from 'accept-md-runtime';
// App Router: app/api/accept-md/route.js (or route.ts)
export async function GET(req: Request) {
const path = new URL(req.url).searchParams.get('path') ?? '/';
const markdown = await getMarkdownForPath(req, path);
return new Response(markdown, {
headers: { 'Content-Type': 'text/markdown; charset=utf-8' },
});
}htmlToMarkdown(html, options?)
Converts an HTML string to markdown (uses Turndown; optional selectors to strip).
loadConfig(projectRoot)
Loads accept-md.config.js and returns a NextMarkdownConfig object.
Types
NextMarkdownConfig– include, exclude, cleanSelectors, cache, transformers, baseUrl, debugMarkdownOptions– options forhtmlToMarkdownGetMarkdownOptions– options forgetMarkdownForPath
Templates (for tooling)
MIDDLEWARE_TEMPLATE– snippet for Next.js middlewareAPP_ROUTE_HANDLER_TEMPLATE– snippet for App Router handlerPAGES_API_HANDLER_TEMPLATE– snippet for Pages API handler
License
MIT · Repository
