Plugins
Plugins add features to Revela. In the Standalone edition all official plugins are already built in, so there is nothing to install. The Full edition installs them as packages from the bundled packages/ folder or from the .nupkg files attached to each GitHub Release; they are not published on NuGet.org yet.
What the official plugins do
๐ฆ Compression
Pre-compress HTML, CSS, and JS with Gzip and Brotli for 70-95% smaller files.
๐ Statistics
Analyze EXIF data from your photos โ cameras, lenses, apertures, ISO, and timeline.
๐ Dev Server
Preview your generated site locally during development.
โ๏ธ OneDrive Source
Sync photos from OneDrive shared folders directly into your project.
๐ Availability Calendar
Show booked and free days from an iCal file as a month calendar.
๐ Calendar Feeds
Download iCal feeds from your booking tool into your project before each build.
Official Plugins
| Plugin | Package | Description |
|---|---|---|
| Compression | Spectara.Revela.Plugins.Compress |
Pre-compress static files with Gzip and Brotli |
| Statistics | Spectara.Revela.Plugins.Statistics |
Generate EXIF statistics pages |
| Serve | Spectara.Revela.Plugins.Serve |
Local development server |
| OneDrive | Spectara.Revela.Plugins.Source.OneDrive |
Download photos from OneDrive shared folders |
| Calendar | Spectara.Revela.Plugins.Calendar |
Availability calendar (booked/free days) from iCal .ics files |
| Source.Calendar | Spectara.Revela.Plugins.Source.Calendar |
Download iCal feeds (e.g. booking exports) into the source folder |
The Lumina theme has two matching extensions: Lumina.Statistics and Lumina.Calendar.
All Spectara.Revela.* release packages come with a SHA256SUMS file and Sigstore (cosign) signatures on the GitHub Release.
Installing Plugins
How you get plugins depends on your edition:
- Standalone: all six official plugins and both theme extensions are built in. There is nothing to install, and the
plugin,packagesandrestorecommands are not available.revela infolists the built-in plugins and themes with their versions, andrevela theme listlists the themes. - Full: the
packages/folder next to the executable is used as a local feed (bundled), so the commands below work offline. - .NET tool: there is no bundled folder. Download the
.nupkgfiles from the release into a folder and register it once withrevela config feed add releases /absolute/path/to/folder.
The rest of this page applies to the Full edition and the .NET tool.
# Install by short name
revela plugin install Statistics
# Or use full package ID
revela plugin install Spectara.Revela.Plugins.Statistics
# Install a specific version
revela plugin install Statistics --version 1.2.0
Installing records the package and its exact installed version under dependencies.packages in exactly one file: project.json when you run it inside a project, otherwise your global revela.json (see Configuration). Uninstalling removes it from the same file. Themes and theme extensions are installed with revela theme install, not plugin install.
Managing Plugins
# List installed plugins
revela plugin list
# Remove a plugin
revela plugin uninstall Statistics
# Refresh the package index and search it
revela packages refresh
revela packages search --type plugin
Configuration
Plugins store their settings in project.json below plugins, each under its own key (serve, statistics, oneDrive, calendarFeeds). This works the same in every edition:
{
"plugins": {
"statistics": {
"maxEntriesPerCategory": 15,
"sortByCount": true
},
"serve": {
"port": 8080
}
}
}
Settings can also be overridden with environment variables (SPECTARA__REVELA__PLUGINS__<KEY>__<SETTING>):
SPECTARA__REVELA__PLUGINS__SERVE__PORT=3000
Community Plugins
In the Full edition and the .NET tool, Revela supports third-party plugins from any NuGet source that uses https://, or from a local folder. Community plugins use their own package prefix:
# Install from custom NuGet feed
revela plugin install MyPlugin --source https://my-feed.example.com/v3/index.json
Note: Community plugins are not verified by Spectara. Install at your own risk.
Restoring Dependencies
In the Full edition and the .NET tool, use restore after cloning a project, updating Revela, or sharing your project with someone else, to install all required themes and plugins:
# Install missing themes and plugins
revela restore
# Check only (don't install)
revela restore --check
Revela reads dependencies.packages and theme.name from your configuration (global revela.json plus project.json) and installs anything that's missing. Every package in dependencies.packages is required, whatever its ID; installed packages are matched by package ID across plugins and themes. Restoring pins the exact installed version for the entries project.json declares; packages from your global revela.json are installed without being copied into the project.
Feeds declared only in project.json are never used silently. Restore lists them and asks for confirmation; in scripts and CI, where Revela cannot ask, it stops unless you pass --allow-project-feeds:
revela restore --allow-project-feeds