Skip to main content

Plugin settings

Each enabled plugin can declare a settings page reachable at /settings/plugin/<id>. The Settings sidebar lists every such page in a tab strip alongside General + Performance.

Where to find it

Plugins that ship a settings page show Settings as a button on their card in the Plugins tab. Clicking it navigates to /settings/plugin/<id>.

You can also browse to the page directly via Settings sidebar → Plugin tabs (one tab per plugin with settings).

What's on a plugin settings page

Per-plugin — every plugin author decides their own form. Convention:

  • Tabs at the top for sections within the plugin's config (e.g. flexweg-rss has Site feed / Category feeds tabs)
  • Form fields below with sensible defaults
  • Save button at the bottom — patches settings.pluginConfigs.<id> in Firestore
  • Force regenerate button when applicable — re-runs the plugin's full work pass (re-uploads files, re-renders cards, etc.)

The framework guarantees:

  • Auto-save indicator — shows "Saving…" → "Saved" near the Save button
  • Form rehydrates when an external save lands (e.g. a different admin saves in another tab)
  • Reset to defaults button — clears pluginConfigs.<id>, reverts the form to manifest.defaultConfig

How settings persist

Settings are stored at:

settings/site (Firestore document)
└── pluginConfigs
├── flexweg-sitemaps: { newsEnabled: true, newsWindowDays: 2, ... }
├── flexweg-rss: { site: { enabled: true, ... }, categoryFeeds: [...] }
├── flexweg-search: { ... }
└── ...

The pluginConfigs map is a nested-merge structure — saving partial config doesn't wipe sibling fields. Disabling a plugin doesn't delete its config; re-enabling restores everything.

Built-in plugins with settings

PluginPageNotes
flexweg-sitemaps/settings/plugin/flexweg-sitemapsContent types, News window, robots.txt body, Force regenerate
flexweg-rss/settings/plugin/flexweg-rssSite feed + per-category feeds, footer toggles, Force regenerate
flexweg-archives/settings/plugin/flexweg-archivesDrill-down (year / month / week), inject "See full archives" link
flexweg-search/settings/plugin/flexweg-searchIndexed content + fields, hotkey, Force regenerate
core-seono pageZero-config — settings are inline on each post in the editor's Document sidebar

Must-use plugins with settings

PluginPageNotes
flexweg-custom-code/settings/plugin/flexweg-custom-codeTwo textareas: <head> and body-end
flexweg-favicon/settings/plugin/flexweg-faviconSource image upload + PWA manifest config
flexweg-import/settings/plugin/flexweg-importImport workflow (markdown / WP XML)

When changes apply

Most plugin settings affect future operations:

  • A new SEO meta tag in core-seo applies to newly published pages. Already-published pages keep the old HTML until regenerated.
  • A new robots.txt in flexweg-sitemaps uploads immediately (a single file change).
  • A new sitemaps News window applies on the next publish (or on Force regenerate).

The settings page generally hints at when changes apply — read the help text near each field.

Continue