Skip to content

Commit ef5b5a4

Browse files
pedrolamasclaude
andcommitted
docs: comprehensive documentation review and updates (#1809)
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> (cherry picked from commit 773dbba)
1 parent 466211f commit ef5b5a4

30 files changed

Lines changed: 968 additions & 275 deletions

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
python-version: '3.x'
1919

2020
- name: Install Zensical
21-
run: pip install "zensical==0.0.29"
21+
run: pip install "zensical==0.0.30"
2222

2323
- name: Build docs
2424
run: zensical build --clean

CLAUDE.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ npm run circular-check # Check for circular dependencies
9090

9191
### File Organization
9292

93-
```
93+
```text
9494
src/
9595
├── api/ # HTTP (axios) and WebSocket (custom JSON-RPC) clients
9696
├── components/
@@ -134,7 +134,7 @@ src/
134134
- Setup in `src/components/widgets/filesystem/setupMonaco.ts`
135135
- TextMate grammars (onigasm WASM) for `gcode`, `klipper-config`, `log` languages
136136
- Custom CodeLens providers (links to Klipper docs from config sections)
137-
- Document symbol + folding range providers for klipper-config and gcode
137+
- Document symbol + folding range providers for `klipper-config` and `gcode`
138138
- Worker setup in `setupMonaco.features.ts` (editor, JSON, CSS workers)
139139

140140
## Integration Points
@@ -227,7 +227,7 @@ src/
227227

228228
### Documentation Structure
229229

230-
```
230+
```text
231231
docs/
232232
├── docs/ # Markdown content
233233
│ ├── index.md # Homepage
@@ -240,6 +240,9 @@ docs/
240240
│ │ ├── thermals.md # Chart, presets, sensors
241241
│ │ ├── cameras.md
242242
│ │ ├── console.md
243+
│ │ ├── file-editor.md # Monaco editor features, syntax, CodeLens, folding
244+
│ │ ├── keyboard-shortcuts.md # Global, editor, console keyboard shortcuts
245+
│ │ ├── file-manager.md # File browser, upload, search, previews, drag-and-drop
243246
│ │ ├── macros.md
244247
│ │ ├── multi-material.md # Multiple extruders + Spoolman
245248
│ │ ├── multiple-printers.md
@@ -265,11 +268,16 @@ docs/
265268

266269
- Frontmatter: `title` (required), `icon` (top-level pages only, Lucide icons)
267270
- Images: `/assets/images/` path, stored in `docs/docs/assets/images/`
268-
- Code blocks: `ini` for Klipper/Moonraker config, `bash` for shell commands, `json` for JSON
271+
- Code blocks must always have a language tag: `ini` for Klipper/Moonraker config, `bash` for shell commands, `json` for JSON, `text` when no language applies
272+
- Zensical uses Python-Markdown which requires 4-space indentation per nesting level for all block-level elements nested in lists (sub-lists, paragraphs, code blocks, blockquotes) — no tabs
273+
- Tables must use aligned pipe style (columns padded to equal width)
269274
- Links: use `{.md-button}` attribute for standalone action links
270275
- Keys: use `++key++` syntax (pymdownx.keys extension) instead of `<kbd>`
271276
- Terminology: G-code (not gcode/Gcode), Wi-Fi (not WiFi), GitHub (not Github), Node.js (not NodeJS), SD card (not SDCard), em dash (—) not hyphen (-) for parenthetical dashes
272-
- Glossary terms (AFC, API, CORS, JWT, MCU, MMU, MPC, PID, etc.) get automatic tooltips
277+
- Klipper macro names: format as inline code (e.g., `PAUSE`, `SET_PAUSE_AT_LAYER`, `_CLIENT_VARIABLE`)
278+
- Klipper/Moonraker section names and config variable names: format as inline code (e.g., `[virtual_sdcard]`, `enable_object_processing`) — exception: leave unformatted when used as markdown headings
279+
- Glossary terms (AFC, API, CNC, CORS, JWT, MCU, MMU, MPC, PID, etc.) get automatic tooltips via `docs/includes/glossary.md`
280+
- When introducing acronyms in docs, check if they exist in the glossary — if not, assess whether they should be added (domain-specific or non-obvious acronyms: yes; universally known ones like USB, HTTP, CPU: no)
273281
- **Before committing docs changes**, always run:
274282
- `markdownlint --config docs/.markdownlint.json docs/docs/` — must be clean
275283
- `codespell docs/docs/` — must be clean (install via `pip install codespell`)

docs/.markdownlint.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
2+
"MD007": { "indent": 4 },
3+
"MD010": true,
24
"MD013": false,
3-
"MD025": false
5+
"MD025": false,
6+
"MD060": { "style": "aligned" }
47
}
-32.2 KB
Binary file not shown.

docs/docs/configuration.md

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,31 @@ Fluidd-config provides enhanced versions of the standard macros with additional
5858
capabilities:
5959

6060
- Configurable park positions (round beds, square beds, or custom coordinates)
61-
- Enhanced PAUSE macro with optional X, Y, and Z_MIN parameters
61+
- Separate park positions for `PAUSE` and `CANCEL_PRINT`
62+
- Enhanced `PAUSE` macro with optional X, Y, and Z_MIN parameters
6263
- Pause at next layer or at a specific layer number
63-
- Temperature management during pause/resume cycles
64-
- Filament runout sensor integration
65-
- Configurable idle timeout behavior
64+
- Temperature management during pause/resume cycles (save/restore extruder
65+
temperature with idle timeout integration)
66+
- Configurable retraction and unretraction with firmware retraction support
67+
- Filament runout sensor integration (blocks `RESUME` if no filament detected)
68+
- Configurable idle timeout behavior during `PAUSE` state
69+
- User-injectable custom macros in `PAUSE`/`RESUME`/`CANCEL_PRINT` flows
70+
- Safer toolhead movement commands via `_CLIENT_LINEAR_MOVE`
6671
- Support for printers without extruders (e.g. CNC machines)
6772

73+
### Fluidd UI Integration
74+
75+
When fluidd-config is installed, Fluidd automatically detects its macros and
76+
enables additional UI features:
77+
78+
- **Pause at layer** — the `SET_PAUSE_NEXT_LAYER` and `SET_PAUSE_AT_LAYER`
79+
macros enable a pause-at-layer dropdown in the print controls, allowing you
80+
to pause or trigger an `M600` filament change at a specific layer
81+
- **Toolhead park button** — the `PARK_TOOLHEAD` macro adds a park button to
82+
the toolhead card
83+
- **Filament load/unload buttons** — the `LOAD_FILAMENT` and `UNLOAD_FILAMENT`
84+
macros add dedicated buttons to the toolhead card
85+
6886
### Customization
6987

7088
You can customize the behavior by overriding the `_CLIENT_VARIABLE` macro in
@@ -83,9 +101,9 @@ For more detailed instructions, please refer to the [Klipper documentation](http
83101

84102
### [virtual_sdcard]
85103

86-
Fluidd requires your printer to be set up with `virtual_sdcard`. This allows
87-
file uploads to work correctly. If you get a G-code path not found error in
88-
Fluidd, this is generally the first place to look.
104+
Fluidd requires `virtual_sdcard` to upload, browse, and print G-code files.
105+
Without this, Fluidd cannot manage files on your printer. If you get a
106+
G-code path not found error, this is generally the first place to look.
89107

90108
```ini title="printer.cfg"
91109
[virtual_sdcard]
@@ -94,15 +112,18 @@ path: ~/printer_data/gcodes
94112

95113
### [display_status]
96114

97-
Required to properly support display updates in Fluidd, with no other lines required.
115+
Required for Fluidd to show print progress percentages and M117 display
116+
messages. No additional configuration is needed.
98117

99118
```ini title="printer.cfg"
100119
[display_status]
101120
```
102121

103122
### [pause_resume]
104123

105-
Enables Pause / Resume functionality within klipper. This is a single block, with no other lines required.
124+
Enables the Pause, Resume, and Cancel buttons in Fluidd's print controls.
125+
Without this, Fluidd cannot pause or cancel a running print. No additional
126+
configuration is needed.
106127

107128
```ini title="printer.cfg"
108129
[pause_resume]
@@ -222,8 +243,9 @@ This is especially useful for temperature store data, as it
222243
directly affects how much time data is stored on the X axes of
223244
the thermals graph.
224245

225-
Temperature store size is in seconds, while the G-code store size is defined
226-
in an entry count.
246+
Both values are entry counts. Temperature entries are stored once per second by
247+
default, so a value of 600 corresponds to approximately 10 minutes of history.
248+
The G-code store size is also defined as an entry count.
227249

228250
```ini title="moonraker.conf"
229251
[data_store]
@@ -287,11 +309,24 @@ subscriptions:
287309
fluidd
288310
```
289311

312+
### [analysis]
313+
314+
Enables G-code print time estimation using Moonraker's built-in estimator.
315+
When enabled, Fluidd shows a "Perform Time Analysis" action in the file
316+
browser — available for single files via context menu or in bulk. Results are
317+
stored in file metadata and update the estimated print time displayed in the
318+
file list.
319+
320+
### [job_queue]
321+
322+
Enables the job queue feature. When enabled, Fluidd shows a job queue card on
323+
the dashboard, a queue tab on the Jobs page, and "Add to queue" actions in the
324+
file browser context menu and bulk actions toolbar.
325+
290326
### [update_manager]
291327

292328
Automated updates can be configured by ensuring the following is in your
293-
`moonraker.conf`. Moonraker automatically refreshes update status approximately
294-
every two hours. Update requests are blocked while a print is in progress.
329+
`moonraker.conf`. Update requests are blocked while a print is in progress.
295330

296331
```ini title="moonraker.conf"
297332
[update_manager]
@@ -342,6 +377,10 @@ trusted_clients:
342377

343378
[octoprint_compat]
344379

380+
[analysis]
381+
382+
[job_queue]
383+
345384
[update_manager]
346385

347386
[announcements]

docs/docs/customize.md

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@ and control which components are visible.
1010

1111
## Application Layout
1212

13-
Fluidd allows you to adjust your dashboard layout to your liking. Use the
14-
hamburger menu and click the `adjust layout` option.
13+
Fluidd's dashboard uses a multi-column layout. On desktop, cards are arranged
14+
across left and right columns. On mobile, they collapse into a single column.
1515

16-
Use the drag handles to move cards to / from the left and right columns. You
17-
can also easily disable cards if you have no use for them.
16+
To adjust the layout, open the side menu and click **Adjust Layout**:
1817

19-
Once you're done, click the exit layout mode button. You can reset back to
20-
the default layout by clicking reset layout.
18+
- **Drag** cards between columns or reorder them within a column using the
19+
drag handles.
20+
- **Enable or disable** individual cards using the checkboxes — disabled
21+
cards are hidden from the dashboard.
22+
- Click **Exit Layout** when you are done, or **Reset Layout** to restore
23+
the default arrangement.
2124

2225
![screenshot](/assets/images/layout.png)
2326

@@ -28,16 +31,19 @@ the default layout by clicking reset layout.
2831
Fluidd lets you choose a community preset, apply a color of your
2932
choosing — along with either a dark or light theme.
3033

31-
Community presets are a way for Fluidd to support 3D printing communities. If
32-
you'd like to see your logo supported here, let us know!
34+
Community presets are themed around popular 3D printing brands and
35+
communities. If you'd like to see your logo supported here, let us know!
36+
37+
You can also set any custom primary color and independently toggle between
38+
dark and light mode without using a preset.
3339

3440
![screenshot](/assets/images/theme.png)
3541

36-
### Community Themes
42+
### Custom Themes
3743

38-
Fluidd offers a way for custom stylesheets and background images to be included.
39-
All custom theming is configured through a `.fluidd-theme` folder within your
40-
configuration files.
44+
Fluidd supports custom stylesheets and background images. All custom theming
45+
is configured through a `.fluidd-theme` folder within your configuration
46+
files.
4147

4248
#### Custom Background
4349

@@ -50,12 +56,17 @@ Currently, the following file extensions are supported:
5056
- `.png`
5157
- `.gif`
5258

59+
#### Custom Logo
60+
61+
To replace the Fluidd logo in the sidebar, upload a `logo.svg` or `logo.png`
62+
file to the `.fluidd-theme` folder in your configuration directory. The logo
63+
will appear in the application bar after reloading Fluidd.
64+
5365
#### Custom Styling
5466

55-
Fluidd offers a [curated list of community themes](https://github.com/fluidd-core/themes).
56-
To use a community theme, simply upload the themes `custom.css` file to the
57-
`.fluidd-theme` directory.
58-
After a reload of Fluidd the changes should become visible.
67+
To apply custom CSS, create a `custom.css` file and upload it to the
68+
`.fluidd-theme` directory. After reloading Fluidd the changes should become
69+
visible.
5970

6071
## Hiding Components
6172

docs/docs/development.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ icon: lucide/wrench
88
Fluidd is built using VueJS, and the Vuetify Framework to provide a cohesive,
99
easy to implement UI.
1010

11+
## Contributing
12+
13+
Contributions are welcome! Please review the
14+
[CONTRIBUTING.md](https://github.com/fluidd-core/fluidd/blob/develop/CONTRIBUTING.md)
15+
file before submitting a pull request.
16+
1117
## Dev Container in Visual Studio Code
1218

1319
Fluidd includes a Dev Container configuration to easily open with Visual Studio Code

docs/docs/faq.md

Lines changed: 87 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,40 @@ Answers to common questions about Fluidd, Klipper, and Moonraker.
99

1010
## Setup & Configuration
1111

12+
### How do I use app.fluidd.xyz?
13+
14+
[app.fluidd.xyz](https://app.fluidd.xyz) is a hosted version of Fluidd that
15+
runs entirely in your browser. It communicates directly with your printer on
16+
your local network — no data leaves your network.
17+
18+
To use it, add `*://app.fluidd.xyz` to the `cors_domains` section of your
19+
`moonraker.conf` and restart Moonraker. See
20+
[Getting Started](/getting-started#fluiddxyz) for details.
21+
22+
### Fluidd cannot connect to my printer
23+
24+
Try these steps in order:
25+
26+
1. Verify Moonraker is running by opening
27+
`http://<your-printer>/server/info` in your browser. If this does not
28+
load, Moonraker is not running or not reachable.
29+
2. Check the `cors_domains` section in your `moonraker.conf` — the host you
30+
are connecting from must be listed. See the
31+
[configuration example](/configuration#example-configuration).
32+
3. Check the `trusted_clients` section — your IP range must be included.
33+
4. If you are connecting from a different network or through a VPN, verify
34+
there are no firewall rules blocking the connection.
35+
36+
### My printer shows as disconnected
37+
38+
This usually means Klipper is not running or has encountered a configuration
39+
error. Open the Fluidd console — if there is an error message, it will
40+
describe what went wrong. Common fixes:
41+
42+
- Check your `printer.cfg` for syntax errors.
43+
- Try running `FIRMWARE_RESTART` from the console.
44+
- Restart the Klipper service from the [System page](/features/system).
45+
1246
### Klipper updated and now my printer has an error
1347

1448
Klipper likely has configuration changes. See the
@@ -31,6 +65,22 @@ Updates can sometimes fail and cause this error. Fluidd provides a recovery
3165
option — try that first. If it fails, reach out on
3266
[Discord](https://discord.gg/GZ3D5tqfcF).
3367

68+
### How do I back up my configuration?
69+
70+
Three options:
71+
72+
- **Fluidd settings backup** — go to Settings and use the backup and restore
73+
options to save or load your Fluidd UI settings (layout, theme, presets,
74+
macros, etc.).
75+
- **Moonraker database backup** — go to the
76+
[System page](/features/system), find the database section, and click
77+
Create Backup to save a backup on the host. Use Restore to select and
78+
restore from an existing backup.
79+
- **Config files** — your Klipper and Moonraker configuration files are
80+
stored in `~/printer_data/config`. You can copy this directory manually
81+
via SSH or use the [File Manager](/features/file-manager) to download
82+
individual files.
83+
3484
## Cameras
3585

3686
### How do I turn on my camera?
@@ -54,6 +104,31 @@ A few suggestions:
54104
resolution in your streamer configuration (e.g.
55105
[Crowsnest](https://crowsnest.mainsail.xyz/)). Wired ethernet also helps.
56106

107+
## Printing
108+
109+
### Does Fluidd show a total layer count?
110+
111+
Yes. Fluidd displays the current layer and total layer count during a print,
112+
provided your slicer includes layer information in the G-code file.
113+
114+
### How do I set up Exclude Object?
115+
116+
Exclude Object lets you cancel individual objects mid-print. Three things are
117+
required:
118+
119+
1. Enable **Label Objects** in your slicer.
120+
2. Add an `[exclude_object]` section to your `printer.cfg`.
121+
3. Set `enable_object_processing: True` in the `[file_manager]` section of
122+
your `moonraker.conf`.
123+
124+
Files must be uploaded after enabling these settings. See
125+
[Printing — Exclude Object](/features/printing#exclude-object) for details.
126+
127+
### How do I upload files from my slicer?
128+
129+
See [Slicer Uploads](/features/slicer-uploads) for setup instructions
130+
covering OrcaSlicer, PrusaSlicer, SuperSlicer, and Cura.
131+
57132
## System
58133

59134
### The host reboot / shutdown commands don't work
@@ -73,9 +148,17 @@ following to `/etc/rc.local` and rebooting:
73148
iwconfig wlan0 power off
74149
```
75150

76-
## Printing
151+
## Customization
77152

78-
### Does Fluidd show a total layer count?
153+
### How do I change the dashboard layout?
79154

80-
Yes. Fluidd displays the current layer and total layer count during a print,
81-
provided your slicer includes layer information in the G-code file.
155+
Open the side menu and click **Adjust Layout**. You can drag cards between
156+
columns, reorder them, or disable cards you don't need. Click the exit button
157+
when done, or use **Reset Layout** to restore the defaults. See
158+
[Customize](/customize#application-layout) for more details.
159+
160+
### How do I use a custom theme?
161+
162+
Create a `.fluidd-theme` folder in your configuration directory and upload a
163+
`custom.css` file into it. Fluidd also supports custom backgrounds and logos.
164+
See [Customize — Custom Themes](/customize#custom-themes) for details.

0 commit comments

Comments
 (0)