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 tomanifest.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
| Plugin | Page | Notes |
|---|---|---|
| flexweg-sitemaps | /settings/plugin/flexweg-sitemaps | Content types, News window, robots.txt body, Force regenerate |
| flexweg-rss | /settings/plugin/flexweg-rss | Site feed + per-category feeds, footer toggles, Force regenerate |
| flexweg-archives | /settings/plugin/flexweg-archives | Drill-down (year / month / week), inject "See full archives" link |
| flexweg-search | /settings/plugin/flexweg-search | Indexed content + fields, hotkey, Force regenerate |
| core-seo | no page | Zero-config — settings are inline on each post in the editor's Document sidebar |
Must-use plugins with settings
| Plugin | Page | Notes |
|---|---|---|
| flexweg-custom-code | /settings/plugin/flexweg-custom-code | Two textareas: <head> and body-end |
| flexweg-favicon | /settings/plugin/flexweg-favicon | Source image upload + PWA manifest config |
| flexweg-import | /settings/plugin/flexweg-import | Import 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.