Skip to Content

Plugins

Add, replace and remove the features of your site.

Your site starts with a set of default plugins. Add more with .plugins():

press.config.tsx
import { blogPlugin } from "@fumapress/blog";

export default createPress(content).plugins(blogPlugin({ source: "blog" }));

Default Plugins

recommendedPreset() has these plugins. The key is its option:

FeatureKey
Sitemapsitemap
robots.txtrobots
RSSrss
Open Graph imagesogImage
llms.txtllms
Search with FlexSearchsearch

There is no image plugin, since Astro Images handles images.

Options of a Default Plugin

recommendedPreset() takes the options of each default plugin. Pass it to preset in .config():

press.config.tsx
import { createPress, recommendedPreset } from "@fumapress/astro/config";

createPress(content).config({
  preset: recommendedPreset({ rss: { limit: 50 } }),
});

Replacing a Default Plugin

Set the default plugin to false, then list your own. This site uses Orama for search:

press.config.tsx
import { createPress, recommendedPreset } from "@fumapress/astro/config";
import { oramaSearchPlugin } from "@fumapress/astro/plugins/orama-search";

export const app = createPress(content).plugins(oramaSearchPlugin());

export default app.config({
  preset: recommendedPreset({ search: false }),
});

Removing Default Plugins

Set a default plugin to false to remove it, or pass an empty list to remove them all:

press.config.tsx
createPress(content).config({
  preset: recommendedPreset({ rss: false }),
});

Conditional Plugins and Plugin Order

Falsy values are skipped, so a plugin can be conditional:

press.config.tsx
const blog = process.env.ENABLE_BLOG && blogPlugin({ source: "blog" });

createPress(content).plugins(blog);

The order matters in two places. Middleware is nested in list order, so your first plugin wraps the others. Navbar links also use the list order, after your ui.layoutProps links.

Last updated on

On this page