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 links | Portability | Per-release nginx knob |
|---|---|---|---|---|
symlink (default) | relative symlinks (docs → 1.2.0/en) | resolve as files | needs a symlink-preserving transport (rsync -a, tar; nginx serves them fine) | none |
copy | real duplicated trees | resolve as files | works anywhere (object stores, dumb hosts) | none |
redirect | bare redirect pages | only /docs/ itself; deep paths 404 | works anywhere | yes |
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.
Shipping symlinks
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.