Skip to content

fix(deps): update dependency fumapress to v1 - #340

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/fumapress-1.x
Open

fix(deps): update dependency fumapress to v1#340
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/fumapress-1.x

Conversation

@renovate

@renovate renovate Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
fumapress (source) ^0.7.3^1.0.0 age confidence

Release Notes

fuma-nama/fumapress (fumapress)

v1.1.0

Compare Source

Markdown for every route (fumapress/markdown)

Server components can now define their own Markdown form:

import { asMarkdown, md } from "fumapress/markdown";

function Callout({ title, children }) {
  if (asMarkdown()) return md.linePrefix("> ")`**${title}**\n${children}`;

  return <div className="callout">...</div>;
}

Calling asMarkdown() is the opt-in: md renders interpolated React nodes, with
md.linePrefix(prefix) and md.indent(size) for nested blocks. Components that never call it are
kept as JSX syntax (<Card title="...">...</Card>), and so are client components, wrap those in a
server component to give them a Markdown form. renderToMarkdown(node) renders a tree yourself.

With llmsPlugin({ routes: "all" }), every page created with createPage() (src/pages/index.tsx,
blog pages, custom routes) whose component calls asMarkdown() gets a .md version: static pages
are pre-rendered, dynamic pages are rendered on request. Plugins can observe the pages of other
plugins with the new prepareCreatePages() hook, which runs before any page is created.

Remove the resolvePage() plugin hook

Nothing implements it since the blog plugin moved to renderPage(), pages now always come from the
content source as-is.

v1.0.0

Compare Source

Redesign the core API for v1

Layouts move onto the config object (renderPage, renderRoot, renderNotFound, defaultLayoutProps), content replaces loader, and plugin types are renamed (PressPlugin, AppShape).

See the migration guide.

Fix aiPlugin export

aiPlugin was re-exported as a type-only export, so import { aiPlugin } from "@fumapress/ai" failed at runtime. It is now exported as a value.

Support the Glass layout

aiPlugin now binds AI chat to the Glass layout's native aiChat option, the Ask AI trigger is shown in the layout header & sidebar instead of a floating button.

Automatic image optimization

The recommended preset now enables image optimization automatically, with a provider matching your
deployment adapter (auto-detected from the environment, or set via the adapter option):

  • Vercel: Vercel Image Optimization.
  • Cloudflare: Cloudflare Image Transformations.
  • Node.js: the self-hosted Sharp endpoint, only when sharp is installed in your app and the
    render mode is not static.

On other targets, or when the requirements above aren't met, image optimization is skipped and the
Image component keeps rendering a plain <img>, so sharp stays an optional dependency.

An explicitly configured image plugin takes priority over the detected provider. Configure one to
customize options such as allowedHosts for remote images.

Own CLI, Waku.js becomes an internal dependency

Fumapress now ships its own fumapress CLI and manages Waku.js as a regular dependency, so apps no
longer install waku or react-server-dom-webpack themselves. Fresh installs only need fumapress,
Fumadocs, React, and Vite.

Migration:

  • Remove waku and react-server-dom-webpack from your dependencies.
  • Add vite to your devDependencies if it isn't there yet.
  • Replace waku dev/waku build/waku start scripts with fumapress dev/fumapress build/fumapress start.
  • Rename waku.config.ts to vite.config.ts: it is a plain Vite config now, use defineConfig from
    vite and move the vite field's contents to the top level.
  • Waku-specific options (basePath, srcDir, distDir, privateDir, rscBase, and the deployment
    adapter) moved into the press() plugin options in vite.config.ts.
  • Delete src/pages.gen.ts if present, it is stale output of Waku's route typegen (disabled by
    Fumapress) and its waku/router type imports no longer resolve.

Custom server entries (src/waku.server.tsx) keep using Waku APIs directly — install waku yourself
in that case, matching the version pinned by Fumapress.

Auto-dedupe framework packages

The press() Vite plugin now adds detected framework packages (Fumadocs, Fumapress plugins, and other
packages with a React peer dependency) to resolve.dedupe, preventing duplicated React contexts when
a package manager instantiates them more than once. The manual resolve.dedupe: ["fumadocs-ui"]
workaround is no longer necessary.

Skip error when base URL is not specified
Support robots.txt plugin

Auto-generate robots.txt.

Support RSS plugin

Auto-generate RSS feed from plugin.

Support "recommended" plugin preset

By default, the "recommended" plugin preset will be enforced, adding plugins for llms.txt, robots.txt, rss, and search.

Support GitLab and Bitbucket repositories

site.git accepts a provider option (github by default, plus gitlab and bitbucket). The navbar icon link and page source links now point at the configured provider with its own brand icon. Self-hosted instances can set git.url to their instance URL.

ctx.getFileGitHubUrl() is renamed to ctx.getFileUrl(), the old name still works but is deprecated.

Use Waku beta 8

Bump dependencies.

Migrate built-in search to ZBSearch

Static Orama search now uses Fumadocs Core's staticClient backed by ZBSearch. The @orama/orama dependency was removed.

Use fumadocsMdx() Vite plugin

Scaffolded apps and docs examples now register the Fumadocs MDX Vite plugin via fumadocsMdx() instead of the default import.

Support the Glass layout

Added fumapress/layouts/glass, a layout wrapper for the new Glass layout from Fumadocs UI. It accepts the same options as the docs & notebook layouts, and works with built-in plugins (OpenAPI, AsyncAPI, GraphQL, llms.txt).

import { createGlassLayoutPage } from "fumapress/layouts/glass";

const GlassLayout = createGlassLayoutPage<typeof config.$context>();

It requires Fumadocs UI v16.12.0 or above, remember to import fumadocs-ui/css/generated/glass.css in your CSS file.

Report broken links as data

linkValidationPlugin gained a report option. It still fails the build by default, but can now
write dist/fumapress-diagnostics.json instead, so a CI check can annotate a pull request rather
than parse an error message.

linkValidationPlugin({ report: "json" });

Use "both" to write the file and still fail the build. The file is written on every build, so an
empty diagnostics array means validation ran and found nothing, rather than that it never ran.

Fix tag links on the blog tags page

The tags page hardcoded /blog/tags/{tag} for every tag, so a blogPlugin configured with a custom
paths.tags linked to a route that was never generated, and localized sites dropped the locale
prefix. Both cases returned 404. Links now resolve against the configured tags path and the current
locale, matching the tag links already rendered on blog posts.

Add the GraphQL integration

Generate API docs from your GraphQL schema with @fumadocs/graphql:

import { createGraphQL, graphqlPlugin } from "@fumapress/graphql";

const graphql = createGraphQL({
  input: [path.resolve("./schema.graphql")],
});

export default defineConfig({
  content: {
    docs: docs.toFumadocsSource(),
    graphql: await graphql.staticSource({ baseUrl: "/" }),
  },
}).plugins(graphqlPlugin({ server: graphql }));
Add the Obsidian content integration

Render Obsidian vaults directly in Fumapress with server-side components, search and LLM text adapters, and development hot reload.

Add the Notion content integration

Pull pages from a Notion data source and render their blocks in Fumapress.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/fumapress-1.x branch from 92b9e80 to bca5e29 Compare August 24, 2026 19:58
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.

0 participants