plasmoid
EN

Stable aliases

/docs/ and /latest/ are plasmoid’s durable public entry points. They are real path aliases of the current version — not redirect pages — so a deep link like /docs/getting-started/quickstart/ resolves to a real file and survives version bumps.

  • /latest/ mirrors the current version directory.
  • /docs/ mirrors the current version’s default-locale subtree.
  • /<version>/ redirects to that version’s default locale (so a bare version URL lands on the home).

Choosing how they’re materialized

Set the mode in plasmoid.toml:

[deploy]
aliases = "symlink"   # symlink (default) | copy | redirect
Mode/docs/ + /latest/ are…Deep linksPortabilityPer-release nginx knob
symlink (default)relative symlinks (docs → 1.2.0/en)resolve as filesneeds a symlink-preserving transport (rsync -a, tar; nginx serves them fine)none
copyreal duplicated treesresolve as filesworks anywhere (object stores, dumb hosts)none
redirectbare redirect pagesonly /docs/ itself; deep paths 404works anywhereyes

Use symlink for nginx (the default), or copy for object storage and static hosts that don’t preserve symlinks. Both make the deploy version-agnostic.

The redirect fallback

redirect mode emits the old-style entry redirect pages: /docs/ works, but /docs/<deep/path> returns 404 under a plain file server. To restore deep links under nginx you reintroduce a per-release rewrite (commented in the shipped deploy/nginx.conf):

set $plasmoid_latest "1.2.0";
set $plasmoid_locale "en";
location ^~ /docs/   { rewrite ^/docs/(.*)$   /$plasmoid_latest/$plasmoid_locale/$1 last; }
location ^~ /latest/ { rewrite ^/latest/(.*)$ /$plasmoid_latest/$1 last; }

The default modes exist precisely so you never have to touch this.

Symlinks are relative, so the tree stays relocatable. Just use a transport that preserves them — rsync -a, tar, or a Docker bind mount all do. nginx follows symlinks out of the box.

Last updated: 2026-06-22