Processed Markdown links page-relative images at their served URLs
- Images imported by Remark Image get the URLs bundlers serve them at in Remark LLMs, instead of their relative paths
- Stringifiers output JS expressions with
s.expression(), for Markdown only known at runtime - Search records of included content with images are no longer cut
- The Sätteri preset only imports images in bundlers, at runtime it resolves their sizes like the MDX preset
<include> in Local Markdown
<include> is enabled by default in @fumadocs/local-md and @fumadocs/satteri/local-md, and pages reload when the files they include change, with both the Vite and dev server watchers.
invalidateFile()returns whether the source uses the file.- Both require
fumadocs-core16.17.8.
Bring your own highlighter
Shiki stays the default, and isn't loaded when you highlight code with another highlighter.
fumadocs-core/highlightexports aHighlighterinterface, created withcreateHighlights()fromfumadocs-core/highlight/highlights(@pierre/highlights) orcreateShikiHighlighter()fromfumadocs-core/highlight/shiki,override()creates one with other options.rehypeCodeFromHighlighterfromfumadocs-core/mdx-plugins/rehype-code.corehighlights code blocks with a highlighter, or a function creating one with the transformers of Fumadocs.createRehypeCodeis deprecated, Sätteri hasrehypeCodeFromHighlighterin@fumadocs/satteri/rehype-code. PasstransformerTwoslash()in itstransformersoption to analyze Twoslash blocks in batches.createServerCodeBlock()andcreateDynamicCodeBlock()in Fumadocs UI create code blocks from a highlighter. Dynamic code blocks are highlighted on the server too.toJsx()fromfumadocs-core/utils/hast-to-jsxconverts hast into React elements liketoJsxRuntime()ofhast-util-to-jsx-runtime, MDX nodes through anevaluator, over 10x faster on highlighted code, whose spans render as one HTML string. Every Fumadocs renderer uses it,hast-util-to-jsx-runtimeis no longer a dependency.- Twoslash loads the languages of code blocks in popups before highlighting, an unknown language there no longer fails the code block.
- OpenAPI Standalone highlights code blocks with Highlights, in its server-rendered pages too.
- The page factories of OpenAPI, GraphQL and AsyncAPI, type tables,
createPython(),createPythonComponents(),localHtml()and the shadcncreateSnippet()take ahighlighter. - Deprecated
shikiandshikiOptionsof the API pages andshikiof type tables, pass ahighlighterinstead. - Integrations require
fumadocs-core16.17.8, the API pages and shadcn also requirefumadocs-ui16.17.8.