Skip to content

Commit 4983b81

Browse files
committed
Structural re-organization
1 parent 6511ed0 commit 4983b81

File tree

81 files changed

+581
-387
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+581
-387
lines changed

README.md

Lines changed: 193 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,50 @@ Each driver entry consists of two files: a Markdown (`.md`) file for the main co
88

99
### File Structure
1010

11-
All driver documentation resides within `src/content/docs/`, organized by category and manufacturer:
11+
All driver documentation resides within `src/content/docs/`, organized by category, manufacturer, and driver. Each driver has its own directory containing all documentation and images:
1212

1313
```
1414
src/content/docs/
15-
├── mounts/ # Category (lowercase slug)
16-
│ ├── sky-watcher/ # Manufacturer (lowercase slug)
17-
│ │ ├── eqmod.md # Driver documentation
18-
│ │ └── eqmod.yaml # Driver metadata
19-
│ └── ikarus-technologies/
20-
│ ├── stellarmate-pro.md
21-
│ └── stellarmate-pro.yaml
22-
├── cameras/
23-
│ └── altair-astro/
24-
│ ├── altair.md
25-
│ └── altair.yaml
15+
├── mounts/ # Category (lowercase slug)
16+
│ └── sky-watcher/ # Manufacturer (lowercase slug)
17+
│ └── eqmod/ # Driver (lowercase slug)
18+
│ ├── eqmod.yaml # Driver metadata
19+
│ ├── eqmod.md # Driver documentation
20+
│ ├── eqmod.webp # Thumbnail image
21+
│ └── images/ # Additional screenshots (optional)
22+
│ ├── connection.webp
23+
│ └── features.webp
24+
├── dustcaps/
25+
│ └── deep-sky-dad/
26+
│ └── deep-sky-dad-fp1/
27+
│ ├── deep-sky-dad-fp1.yaml
28+
│ ├── deep-sky-dad-fp1.md
29+
│ ├── deep-sky-dad-fp1.webp
30+
│ └── images/ # All additional images
31+
│ └── operation.webp
2632
└── ...
2733
```
2834

2935
**Directory Naming Convention:**
30-
- Use **lowercase** with **hyphens** for directory names (e.g., `sky-watcher`, `ikarus-technologies`)
31-
- Category directories: `mounts`, `cameras`, `focusers`, etc.
32-
- Manufacturer directories: `sky-watcher`, `zwo`, `qhyccd`, etc.
33-
- Driver filenames: `eqmod.md`, `altair.md`, etc.
36+
- Use **lowercase** with **hyphens** for directory names (e.g., `sky-watcher`, `deep-sky-dad`, `ikarus-technologies`)
37+
- Category directories: `mounts`, `cameras`, `dustcaps`, `lightboxes`, etc.
38+
- Manufacturer directories: `sky-watcher`, `deep-sky-dad`, `zwo`, `qhyccd`, etc.
39+
- Driver directories: `eqmod`, `deep-sky-dad-fp1`, etc.
40+
- Driver filenames must match directory: `eqmod/eqmod.md`, `deep-sky-dad-fp1/deep-sky-dad-fp1.md`, etc.
41+
42+
**Supported INDI Driver Categories:**
43+
- `adaptive-optics` - Adaptive Optics systems
44+
- `auxiliaries` - Auxiliary devices
45+
- `cameras` - CCD/CMOS cameras
46+
- `domes` - Observatory domes
47+
- `dustcaps` - Dust cap controllers
48+
- `filter-wheels` - Filter wheel controllers
49+
- `focusers` - Focuser controllers
50+
- `lightboxes` - Flat panel/light box devices
51+
- `mounts` - Telescope mounts
52+
- `power-controllers` - Power distribution and control
53+
- `rotators` - Camera rotators
54+
- `weather-stations` - Weather monitoring stations
3455

3556
### YAML Metadata File
3657

@@ -39,25 +60,40 @@ The YAML file contains driver metadata with both human-friendly display names an
3960
```yaml
4061
# Display Names (Human-Friendly - Required)
4162
driver_name: EQMod Mount
42-
category_name: Mounts
4363
manufacturer_name: Sky Watcher
4464

65+
# Categories (Required - can be multiple)
66+
categories:
67+
- mounts
68+
4569
# Additional Metadata (Optional)
4670
website: www.indlib.org
4771
executable: indi_eqmod_telescope
48-
family: Telescopes
4972
platforms: Linux, BSD, OSX
5073
author: Jean-Luc Levaire
5174
version: 1.0
5275
```
5376
5477
**Key Fields:**
5578
- `driver_name`: Human-friendly driver name (displayed on the website)
56-
- `category_name`: Human-friendly category name (e.g., "Mounts", "Cameras")
5779
- `manufacturer_name`: Human-friendly manufacturer name (e.g., "Sky Watcher", "Ikarus Technologies")
80+
- `categories`: Array of category slugs the driver belongs to (e.g., `["mounts"]`, `["dustcaps", "lightboxes"]`)
5881
- Additional fields: You can add any custom metadata that will be displayed in the driver information sidebar
5982

60-
**Important:** The human-friendly names in the YAML file are what users will see on the website, while the directory structure uses SEO-friendly slugs for URLs.
83+
**Multi-Category Support:**
84+
Drivers can belong to multiple categories by specifying multiple category slugs in the `categories` array. For example, a device that functions as both a dust cap and a light box:
85+
86+
```yaml
87+
driver_name: Deep Sky Dad FP1
88+
manufacturer_name: Deep Sky Dad
89+
categories:
90+
- dustcaps
91+
- lightboxes
92+
```
93+
94+
This driver will appear in both the "Dust Caps" and "Light Boxes" categories in the sidebar navigation, with both entries linking to the same driver page.
95+
96+
**Important:** The human-friendly names will be automatically looked up from the central category configuration, while the directory structure and category slugs use SEO-friendly formats for URLs.
6197

6298
### Markdown Documentation File
6399

@@ -66,9 +102,9 @@ The Markdown file contains the main driver documentation:
66102
```markdown
67103
---
68104
title: EQMod Mount
69-
category: Mounts
105+
categories: ["mounts"]
70106
description: The EQMod driver for Sky Watcher mounts.
71-
thumbnail: /images/drivers/mounts/eqmod/eqmod.webp
107+
thumbnail: ./eqmod.webp
72108
---
73109
74110
# EQMod Driver
@@ -77,6 +113,8 @@ This is the documentation for the EQMod driver...
77113
78114
## Features
79115
116+
![Features](./images/features.webp)
117+
80118
* Feature 1
81119
* Feature 2
82120
@@ -87,71 +125,96 @@ Installation instructions...
87125

88126
**Frontmatter Fields:**
89127
- `title`: The driver name (should match `driver_name` in YAML)
90-
- `category`: Category name (should match `category_name` in YAML)
128+
- `categories`: Array of category slugs matching those in the YAML file (e.g., `["mounts"]` or `["dustcaps", "lightboxes"]`)
91129
- `description`: Brief description for SEO and previews
92-
- `thumbnail`: (Optional) Path to the driver's main image
130+
- `thumbnail`: (Optional) Relative path to the driver's thumbnail image (e.g., `./eqmod.webp`)
131+
132+
**Multi-Category Example:**
133+
```markdown
134+
---
135+
title: Deep Sky Dad FP1
136+
categories: ["dustcaps", "lightboxes"]
137+
description: A flat panel for both dust cap and light box functionality.
138+
thumbnail: ./deep-sky-dad-fp1.webp
139+
---
140+
```
141+
142+
**Image References:**
143+
- Use **relative paths** for all images: `./image.webp` or `./images/image.webp`
144+
- Never use absolute paths like `/images/...`
93145

94146
## 2. Image Guidelines
95147

96-
To maintain a consistent look and feel across the documentation, please adhere to the following image guidelines.
148+
All driver images are co-located with their documentation in the driver's directory. This makes it easy for contributors to submit everything in one place.
97149

98-
### Driver Images
150+
### Driver Images Structure
99151

100152
**Path Structure:**
101153
```
102-
/public/images/drivers/<category-slug>/<manufacturer-slug>/<driver-slug>/<image-name>.webp
154+
src/content/docs/<category>/<manufacturer>/<driver>/
155+
├── <driver>.webp # Thumbnail (required)
156+
└── images/ # All additional images (optional)
157+
├── feature1.webp
158+
├── screenshot1.webp
159+
└── diagram1.webp
103160
```
104161
105162
**Example:**
106163
```
107-
/public/images/drivers/mounts/eqmod/eqmod.webp
108-
/public/images/drivers/cameras/altair-astro/altair.webp
164+
src/content/docs/mounts/sky-watcher/eqmod/
165+
├── eqmod.webp # Thumbnail
166+
└── images/ # All screenshots and diagrams
167+
├── connection.webp
168+
├── features.webp
169+
└── options.webp
109170
```
110171
111172
**Requirements:**
112173
- **Format**: Must be `.webp`
113-
- **Recommended Size**: 200x200 pixels for thumbnails
114-
- **Styling**: Images are automatically styled to fit within 200x200px while maintaining aspect ratio
174+
- **Thumbnail**: Named same as driver (e.g., `eqmod.webp`) at root of driver directory
175+
- **Additional Images**: All other images must be in the `images/` subdirectory
176+
- **Recommended Size**: 200x200 pixels for thumbnails, larger for screenshots
177+
- **References**: Use relative paths in markdown:
178+
- Thumbnail: `./eqmod.webp`
179+
- Other images: `./images/features.webp`
115180
116-
### Manufacturer Logos
181+
### Shared Assets (Manufacturer Logos & Category Icons)
117182
118-
**Path:**
183+
These are stored in `public/images/` as they are shared across multiple drivers:
184+
185+
**Manufacturer Logos:**
119186
```
120-
/public/images/manufacturers/<manufacturer-slug>.webp
187+
public/images/manufacturers/<manufacturer-slug>.webp
121188
```
122189
123190
**Examples:**
124191
```
125-
/public/images/manufacturers/sky-watcher.webp
126-
/public/images/manufacturers/ikarus-technologies.webp
127-
/public/images/manufacturers/altair-astro.webp
192+
public/images/manufacturers/sky-watcher.webp
193+
public/images/manufacturers/deep-sky-dad.webp
128194
```
129195
130-
**Requirements:**
131-
- **Format**: Must be `.webp`
132-
- **Recommended Size**: 200x200 pixels
133-
- **Styling**: Logos are automatically styled to fit within 200x200px
134-
135-
### Category Icons
136-
137-
**Path:**
196+
**Category Icons:**
138197
```
139-
/public/images/categories/<category-slug>.webp
198+
public/images/categories/<category-slug>.webp
140199
```
141200
142201
**Examples:**
143202
```
144-
/public/images/categories/mounts.webp
145-
/public/images/categories/cameras.webp
203+
public/images/categories/mounts.webp
204+
public/images/categories/cameras.webp
146205
```
147206
207+
**Requirements:**
208+
- **Format**: Must be `.webp`
209+
- **Recommended Size**: 200x200 pixels
210+
148211
## 3. URL Structure
149212
150213
The site automatically generates clean, SEO-friendly URLs based on the directory structure:
151214
152215
**Directory Structure:**
153216
```
154-
src/content/docs/mounts/sky-watcher/eqmod.md
217+
src/content/docs/mounts/sky-watcher/eqmod/eqmod.md
155218
```
156219
157220
**Generated URL:**
@@ -193,55 +256,120 @@ These callouts are rendered with custom styling to draw attention to specific co
193256

194257
### Adding a New Driver
195258

196-
1. **Create the directory structure:**
259+
1. **Create the driver directory:**
197260
```bash
198-
mkdir -p src/content/docs/<category-slug>/<manufacturer-slug>
261+
mkdir -p src/content/docs/<category>/<manufacturer>/<driver>/images
199262
```
200263
Example:
201264
```bash
202-
mkdir -p src/content/docs/mounts/sky-watcher
265+
mkdir -p src/content/docs/mounts/sky-watcher/eqmod/images
203266
```
204267

205268
2. **Create the YAML metadata file:**
206269
```bash
207-
touch src/content/docs/mounts/sky-watcher/eqmod.yaml
270+
touch src/content/docs/mounts/sky-watcher/eqmod/eqmod.yaml
208271
```
209-
Add your metadata with human-friendly names:
272+
Add your metadata with human-friendly names and categories:
210273
```yaml
211274
driver_name: EQMod Mount
212-
category_name: Mounts
213275
manufacturer_name: Sky Watcher
214-
website: www.indlib.org
276+
categories:
277+
- mounts
278+
website: www.indilib.org
279+
executable: indi_eqmod_telescope
215280
# ... other fields
216281
```
217282

218283
3. **Create the Markdown documentation file:**
219284
```bash
220-
touch src/content/docs/mounts/sky-watcher/eqmod.md
285+
touch src/content/docs/mounts/sky-watcher/eqmod/eqmod.md
221286
```
222-
Add your documentation with frontmatter:
287+
Add your documentation with frontmatter (categories must match YAML):
223288
```markdown
224289
---
225290
title: EQMod Mount
226-
category: Mounts
291+
categories: ["mounts"]
227292
description: Driver description here
228-
thumbnail: /images/drivers/mounts/eqmod/eqmod.webp
293+
thumbnail: ./eqmod.webp
229294
---
230295

296+
## Features
297+
![Features](./images/features.webp)
298+
231299
Your documentation content...
232300
```
233301

234-
4. **Add images:**
235-
- Driver images: `public/images/drivers/mounts/sky-watcher/`
236-
- Manufacturer logo: `public/images/manufacturers/sky-watcher.webp`
302+
4. **Add images to the driver directory:**
303+
- Thumbnail: `src/content/docs/mounts/sky-watcher/eqmod/eqmod.webp`
304+
- Screenshots: `src/content/docs/mounts/sky-watcher/eqmod/images/features.webp`
305+
- If manufacturer logo doesn't exist: `public/images/manufacturers/sky-watcher.webp`
306+
307+
5. **Convert images to WebP format:**
308+
```bash
309+
# Using cwebp (recommended)
310+
cwebp -q 80 input.png -o output.webp
311+
312+
# Using ImageMagick
313+
convert input.png -quality 80 output.webp
314+
```
237315

238-
5. **Test locally:**
316+
6. **Test locally:**
239317
```bash
240318
npm run dev
241319
```
242320
Visit `http://localhost:4321/mounts/sky-watcher/eqmod`
243321

244-
6. **Submit a pull request** with your changes.
322+
7. **Submit a pull request** with your changes.
323+
324+
### Adding a Multi-Category Driver
325+
326+
For drivers that belong to multiple categories (e.g., a device that functions as both a dust cap and light box):
327+
328+
1. **Create the driver directory in the PRIMARY category:**
329+
```bash
330+
mkdir -p src/content/docs/dustcaps/deep-sky-dad/deep-sky-dad-fp1/images
331+
```
332+
333+
2. **Create the YAML metadata file with multiple categories:**
334+
```bash
335+
touch src/content/docs/dustcaps/deep-sky-dad/deep-sky-dad-fp1/deep-sky-dad-fp1.yaml
336+
```
337+
```yaml
338+
driver_name: Deep Sky Dad FP1
339+
manufacturer_name: Deep Sky Dad
340+
categories:
341+
- dustcaps
342+
- lightboxes
343+
website: www.deepskydad.com
344+
executable: indi_deepskydad_fp1
345+
# ... other fields
346+
```
347+
348+
3. **Create the Markdown file with matching categories:**
349+
```bash
350+
touch src/content/docs/dustcaps/deep-sky-dad/deep-sky-dad-fp1/deep-sky-dad-fp1.md
351+
```
352+
```markdown
353+
---
354+
title: Deep Sky Dad FP1
355+
categories: ["dustcaps", "lightboxes"]
356+
description: A flat panel that functions as both dust cap and light box
357+
thumbnail: ./deep-sky-dad-fp1.webp
358+
---
359+
360+
# Deep Sky Dad FP1
361+
362+
This device serves dual purposes...
363+
```
364+
365+
4. **Add images:**
366+
- Thumbnail: `src/content/docs/dustcaps/deep-sky-dad/deep-sky-dad-fp1/deep-sky-dad-fp1.webp`
367+
- Screenshots: `src/content/docs/dustcaps/deep-sky-dad/deep-sky-dad-fp1/images/operation.webp`
368+
369+
5. **Result:**
370+
- The driver appears in both "Dust Caps" and "Light Boxes" sidebar categories
371+
- Both entries link to: `/dustcaps/deep-sky-dad/deep-sky-dad-fp1`
372+
- Metadata displays: "Categories: Dust Caps, Light Boxes"
245373

246374
## 6. Important Notes
247375

File renamed without changes.
-8.14 KB
Binary file not shown.
-4.14 KB
Binary file not shown.
-3.38 KB
Binary file not shown.
-8.93 KB
Binary file not shown.

0 commit comments

Comments
 (0)