Revela

Statistics

The Statistics plugin analyzes EXIF data from your photos and generates statistics pages showing camera usage, lens preferences, aperture distribution, and more.

📷 EXIF Analysis

Camera models, lenses, aperture, ISO, shutter speed, focal lengths, and orientation.

📊 Dashboard

Pure-CSS bar charts with overview cards — no JavaScript required.

📅 Timeline

See how your photography evolves over time, broken down by year and month.

Installation

The Statistics plugin has two parts:

# 1. The plugin (generates statistics data)
revela plugin install Statistics

# 2. The theme extension (renders charts) – recommended
revela plugin install Theme.Lumina.Statistics

The plugin generates a statistics.json data file. The Theme.Lumina.Statistics extension renders that data as a responsive dashboard with pure-CSS bar charts that inherit the Lumina color scheme.

Without the theme extension, statistics data is still generated – but you'll need custom templates to display it.

Creating a Statistics Page

# Create a statistics page in your source
revela create page statistics

This creates a page with the required frontmatter:

+++
title = "Statistics"
template = "statistics"
data = { statistics = "statistics.json" }
+++

The data.statistics field tells the plugin where to write the JSON data file.

Generating Statistics

# Generate statistics as part of the full pipeline
revela generate all

# Or run only the statistics step
revela generate statistics

The pipeline order is: scan → statistics → pages → images. Statistics runs after scan (which collects EXIF data) and before pages (which renders the HTML).

What Gets Analyzed?

Category Description Example
Cameras Camera body models Sony ILCE-7M4, Canon EOS R5
Lenses Lens models Sony FE 35mm F1.4 GM
Focal Lengths Bucketed by range 18–35, 35–70, 70–135
Apertures f-stop distribution f/1.4-2.0, f/2.8-4.0
ISO Sensitivity ranges ISO 100-400, ISO 800-1600
Shutter Speeds Exposure times 1/500, 1/250, 2s
Orientation Image dimensions Landscape, Portrait, Square
Timeline Photos per year 2024: 120, 2023: 80
Monthly Photos per month January: 45, July: 82

Images without EXIF data are counted in the totals but excluded from category breakdowns.

Configuration

Settings are stored in project.json:

{
  "Spectara.Revela.Plugin.Statistics": {
    "MaxEntriesPerCategory": 15,
    "SortByCount": true
  }
}
Option Default Description
MaxEntriesPerCategory 15 Top N entries per category (0 = unlimited). Remaining entries are aggregated into "Other".
SortByCount true Sort by count (descending) instead of natural order
# Configure interactively
revela config statistics

# Or set specific options
revela config statistics --max-entries 20 --sort-by-count false

Theme Extension

Theme.Lumina.Statistics provides a single-page dashboard with:

  • Overview cards — Total images, galleries, cameras, and lenses at a glance
  • Bar charts for all 9 categories using pure CSS (no JavaScript)
  • Responsive layout — Grid adapts from mobile to desktop
  • Dark/light mode — Inherits Lumina's color scheme automatically
  • Hover effects — Bar highlight and count display on interaction

Install it alongside the plugin:

revela plugin install Theme.Lumina.Statistics

CLI Commands

Command Description
revela generate statistics Generate statistics JSON
revela generate all Full pipeline (includes statistics)
revela clean statistics Remove generated statistics files
revela config statistics Configure plugin settings

Requirements

  • Photos with EXIF data (JPG, TIFF – most cameras write EXIF by default)
  • Run revela generate scan first (or use generate all)