Desktop concepts¶
Work in progress
Silex Desktop is under active development. This page defines the vocabulary we have settled on. Anything not listed here is still being discussed, and the features described may not all be released yet.
Silex Desktop edits websites on your own disk. Everything beyond writing files — versioning a site, sending it to a forge, publishing it online — is done by tools you already have on your machine, not reimplemented by Silex.
Integration¶
An external tool Silex Desktop can use: git, a forge command line such as
glab (GitLab), hut (SourceHut) or tea/fj (Forgejo), a visual git client…
Silex looks for integrations once, remembers where they are, and never assumes one is there: a website is a folder of files first, integrations add to it.
Enabled integration¶
An integration is only used once you allow it. Detecting a tool is not enough: Silex asks, and remembers your answer per machine. Turning one off never deletes anything — a site keeps working without it.
Action¶
What Silex asks for, named after the intent, never after the tool that performs it. Actions are the whole vocabulary between Silex and its integrations:
| Action | What Silex asks for |
|---|---|
version |
Keep a version of the website as it is now |
sync |
Send the website to its remote |
deploy |
Publish the website online |
status |
Tell what state the website is in |
open-repo |
Open the website in a dedicated tool |
create-repo / list-repos |
Create a repository, list the ones you have |
auth-status |
Tell whether you are signed in |
Silex never asks an integration to "commit", "tag" or "push": those words belong inside the integration that performs the action.
Provider¶
An integration that offers a given action. Several integrations can offer the same one — a site can be opened by any of the visual git clients you have installed — and an action with no provider simply does not appear.
Publication pipeline¶
The build steps a forge runs to turn your published files into a live website. A
site owns its build steps in build.json; Silex generates the rest — the build.sh
script and the forge's CI file. This is why a site published from Silex Desktop
builds the same way as one published from the online version.
See Customize the build.
Website folder¶
One directory per website, holding its source files (website.json, pages),
its published output (public/) and, when versioning is on, its history. Nothing
else: a website you can copy, back up and open elsewhere.