Scriptor's core stays small on purpose. Anything that isn't part of the editor, the page model, or the frontend Site contract lives in an extension you can install or skip. This track lists the extensions you can pick from today and shows you how to publish your own.

How each extension page is laid out

Every page in this track follows the same shape so you can scan for the answer you need without reading the whole thing:

  1. What it does. One or two paragraphs on the problem it solves and the kind of site it belongs in. If this section doesn't match your case, scan the catalog table for a better fit.
  2. Install. The composer require line for a host-side install, plus the Docker build-arg variant for image-baked installs. Both paths are documented in Installed plugins and Installing plugins.
  3. Configure. The config block under plugins.<key> in data/settings/custom.scriptor-config.php, or the theme settings in data/settings/<theme>-theme-config.php. Defaults shown; the minimum required keys called out.
  4. Use. The smallest snippet that proves the extension is working: a code block, a frontmatter example, or a URL that resolves once it's installed.
  5. Links. Packagist + GitHub + the current published version + license + the Scriptor versions the extension supports.

Catalog

Plugins (5)

Plugins extend Scriptor's backend: they subscribe to events, add editor modules, register console scripts, or mount routes ahead of the page resolver.

Plugin What it does
scriptor-markdown-pages File-system markdown pages with nested track navigation; powers this documentation site
scriptor-simple-router Tiny URL router that runs ahead of the page resolver; mount JSON endpoints, controllers, custom paths
scriptor-markdown-feed Atom 1.0 / RSS 2.0 feeds generated on every request from a markdown content track; no build step, no cache
scriptor-markdown-containers Fenced-container syntax (:::note, :::warning, :::details, custom types) for page content, rendered theme-neutral
scriptor-sitemap Drop-in sitemap.xml from CMS pages plus (if installed) markdown-pages URLs; hooks RouteNotFound, no template edits; powers this site's /sitemap.xml
Build your own composer.json shape, scriptor-plugin type, manifest + entry-class contract, release flow

Themes (1)

A theme owns the frontend HTML, the asset pipeline, and the template chunks rendered for each page. Themes are not plugins: they ship as Scriptor packages of type scriptor-theme and live under themes/<name>/.

Theme What it does
basic The reference theme bundled with Scriptor: minimal CSS, semantic markup, six message tokens, FilePond integration in the editor's content slot

The Build a Theme tutorial walks through writing your own (mini-case: bigins/atelier), and the Example Theme issue tracks a separate ready-to-fork starter skeleton.

Ordering and PR batching

This track lands in four PRs after the plan PR, grouped so each PR reviews as a coherent unit:

# PR Pages
1 Plugin pages one page per published plugin (scriptor-markdown-pages, scriptor-simple-router, scriptor-markdown-feed, scriptor-markdown-containers)
2 Theme + Publishing basic-theme.md + publishing-your-extension.md (shipped)
3 News track news/_index.md + first three news entries + RSS hook (shipped)

The News track ships under Phase I but lives at /news/ (not under /extensions/); it's batched here because the same plan PR seeds the news/_index.md file. The two deliverables are independent: Plugin pages can land before the News track, and vice-versa.

What's not in this track

Three categories are deliberately out of scope:

  • Plugin or theme authoring concepts. "How plugin discovery works", "how event subscriptions resolve", "how the editor's asset slot picks up your CSS" all live in the Developer Guide concepts and the API Reference. This track lists what exists, not how the surface works.
  • Bundled iManager modules. The page model, file storage, FTS5 search, and migrations all live in bigins/imanager and travel with Scriptor itself; they aren't extensions you opt into. The iManager docs cover them.
  • One-off snippets and recipes. A 30-line _ext.php hook that emits a sitemap is a cookbook recipe, not an extension. The catalog is for packages with their own composer name, version, and changelog.

If you wrote something that fits the catalog and want it listed, the Publishing your extension page covers the submission flow: tag a release, publish on Packagist (or expose a VCS repo), open a PR against this site adding the catalog page.

Where to go next

If you're looking for a specific capability, scan the catalog table above; each row's link goes straight to the page.

If you want to build an extension, start with the Developer Guide concepts, pick the relevant cookbook recipe for the shape you need, then come back to Publishing your extension when you're ready to ship.

If you're operating a Scriptor site and want to know what's already installed, Installed plugins covers the editor-side view.


This track lands one PR at a time, in the order in the table above. The first chapter PR (Plugin pages) opens immediately after this plan PR merges.