Skip to content

Commit c6c10c0

Browse files
committed
Document contributor workflow
1 parent 18df23e commit c6c10c0

1 file changed

Lines changed: 278 additions & 0 deletions

File tree

README.md

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,281 @@ Helpful contributions include:
6161
- adding new troubleshooting pages that match the existing style
6262

6363
Your contribution can help other Webuzo users solve server issues faster.
64+
65+
### Project Structure
66+
67+
Use the existing project files when contributing:
68+
69+
- `docs/*.md` - documentation pages
70+
- `docs/index.md` - documentation homepage
71+
- `mkdocs.yml` - MkDocs configuration, sidebar navigation, theme settings, and plugins
72+
- `docs/sitemap.xml` - published sitemap for `https://webuzo.cornq.net/sitemap.xml`
73+
- `docs/llms.txt` - published AI discovery file for `https://webuzo.cornq.net/llms.txt`
74+
- `llms.txt` - repository-level AI discovery file
75+
- `docs/robots.txt` - robots file with sitemap reference
76+
- `docs/img/` - screenshots, favicon, and image assets
77+
- `docs/css/style.css` - custom site styling
78+
- `docs/CNAME` - custom GitHub Pages domain
79+
- `.github/workflows/deploy.yml` - GitHub Pages deployment workflow
80+
81+
### Fork and Clone
82+
83+
1. Fork the repository on GitHub if you do not have write access.
84+
2. Clone your fork or the main repository:
85+
86+
```bash
87+
git clone https://github.com/cornQ/webuzo-server-setup.git
88+
cd webuzo-server-setup
89+
```
90+
91+
3. If you cloned a fork, keep the upstream repository available:
92+
93+
```bash
94+
git remote add upstream https://github.com/cornQ/webuzo-server-setup.git
95+
git fetch upstream
96+
```
97+
98+
### Create a Branch
99+
100+
Create a new branch before editing files:
101+
102+
```bash
103+
git checkout -b docs/short-description
104+
```
105+
106+
Recommended branch naming:
107+
108+
- `docs/add-topic-name`
109+
- `docs/update-topic-name`
110+
- `docs/fix-topic-name`
111+
- `seo/update-metadata-topic-name`
112+
- `assets/add-screenshot-topic-name`
113+
114+
Examples:
115+
116+
- `docs/add-webuzo-ssl-guide`
117+
- `docs/update-mailbaby-config`
118+
- `docs/fix-ftp-passive-ports`
119+
- `seo/update-openlitespeed-metadata`
120+
121+
### Create a New Documentation Page
122+
123+
1. Create a new markdown file in `docs/`.
124+
2. Use lowercase words separated by hyphens.
125+
3. Add SEO front matter at the top.
126+
4. Add the page to `mkdocs.yml` under the correct `nav` section.
127+
5. Add the page URL to `docs/sitemap.xml`.
128+
6. Update `docs/llms.txt` and `llms.txt` if the new page introduces a new major topic.
129+
7. Update `docs/index.md` only if the new page should be featured on the homepage.
130+
131+
Sample filename:
132+
133+
```txt
134+
docs/webuzo-example-topic.md
135+
```
136+
137+
Complete sample documentation file:
138+
139+
````md
140+
---
141+
title: Example Webuzo Documentation Page
142+
description: Short description of the Webuzo task, issue, or setup covered by this page.
143+
focus_keyword: Example Webuzo Topic
144+
keywords: Webuzo, Webuzo Documentation, Webuzo Tutorial, Server Administration
145+
canonical: https://webuzo.cornq.net/webuzo-example-topic/
146+
author: CORNQ Technical Team
147+
lastUpdated: 2026-06-20
148+
---
149+
150+
# Example Webuzo Documentation Page
151+
152+
Briefly describe the issue, task, or setup this page covers.
153+
154+
## Steps
155+
156+
1. First step.
157+
2. Second step.
158+
3. Third step.
159+
160+
```bash
161+
example-command
162+
```
163+
164+
!!! note
165+
Add safety notes only when they are useful and accurate.
166+
````
167+
168+
### Edit an Existing Documentation Page
169+
170+
1. Open the relevant file in `docs/`.
171+
2. Keep commands, paths, screenshots, warnings, notes, and examples accurate.
172+
3. Do not change technical guidance unless you have tested or verified the change.
173+
4. If the page title, URL, or intent changes, update the front matter metadata.
174+
5. If screenshots change, place replacement images in `docs/img/` and update image references.
175+
176+
### Rename a Documentation Page
177+
178+
1. Rename the markdown file in `docs/`.
179+
2. Update the matching page entry in `mkdocs.yml`.
180+
3. Update the old URL in `docs/sitemap.xml`.
181+
4. Update any links in `README.md`, `docs/index.md`, or other docs pages that point to the old file.
182+
5. Update the page `canonical` value in the markdown front matter.
183+
6. Update `docs/llms.txt` and `llms.txt` if the renamed page changes a major topic label.
184+
185+
### Delete a Documentation Page
186+
187+
Only delete a page when the information is obsolete, duplicated, unsafe, or intentionally retired.
188+
189+
1. Delete the markdown file from `docs/`.
190+
2. Remove the page from `mkdocs.yml`.
191+
3. Remove the URL from `docs/sitemap.xml`.
192+
4. Remove links to the page from `README.md`, `docs/index.md`, and any other docs pages.
193+
5. Update `docs/llms.txt` and `llms.txt` if the deleted page represented a major topic.
194+
195+
### Update Navigation and Sidebar
196+
197+
The sidebar is controlled by the `nav` section in `mkdocs.yml`.
198+
199+
When adding, renaming, moving, or deleting a page:
200+
201+
1. Find the correct section in `mkdocs.yml`.
202+
2. Add or update the page label and markdown filename.
203+
3. Keep labels short and clear.
204+
4. Do not create a new section unless the topic does not fit an existing section.
205+
206+
Current navigation sections:
207+
208+
- `Home`
209+
- `System Setup`
210+
- `Database & Cache`
211+
- `User & Resources`
212+
- `Mail & FTP`
213+
- `Migrations`
214+
- `Others`
215+
216+
### Update sitemap.xml
217+
218+
The sitemap file is `docs/sitemap.xml`.
219+
220+
When adding a page, add a new URL entry:
221+
222+
```xml
223+
<url>
224+
<loc>https://webuzo.cornq.net/webuzo-example-topic/</loc>
225+
<lastmod>2026-06-20</lastmod>
226+
<priority>0.8</priority>
227+
</url>
228+
```
229+
230+
When renaming or deleting a page, update or remove the matching `<url>` block.
231+
232+
### Update llms.txt
233+
234+
This project has two AI discovery files:
235+
236+
- `docs/llms.txt` for the published website
237+
- `llms.txt` for the repository
238+
239+
Update both files only when a contribution adds, removes, or renames a major documentation topic. Do not add every small page title to `llms.txt`.
240+
241+
### Update Documentation Index Files
242+
243+
The documentation homepage is:
244+
245+
```txt
246+
docs/index.md
247+
```
248+
249+
Update it only when:
250+
251+
- a new page should be featured under homepage cards
252+
- a resource link changes
253+
- the homepage description no longer reflects the docs
254+
255+
The image folder also has:
256+
257+
```txt
258+
docs/img/README.md
259+
```
260+
261+
Do not edit it unless you are documenting image assets.
262+
263+
### Test Locally
264+
265+
Install MkDocs Material if needed:
266+
267+
```bash
268+
pip install mkdocs-material
269+
```
270+
271+
Build the site:
272+
273+
```bash
274+
mkdocs build --strict
275+
```
276+
277+
Run a local server:
278+
279+
```bash
280+
mkdocs serve
281+
```
282+
283+
Open:
284+
285+
```txt
286+
http://127.0.0.1:8000
287+
```
288+
289+
Before submitting, check:
290+
291+
- the page appears in the sidebar
292+
- internal links work
293+
- code blocks render correctly
294+
- screenshots load correctly
295+
- sitemap changes are valid XML
296+
- no unrelated files changed
297+
298+
### Commit Message Examples
299+
300+
Use short, specific commit messages:
301+
302+
```txt
303+
Add Webuzo SSL documentation
304+
Update MailBaby configuration guide
305+
Fix FTP passive port instructions
306+
Add screenshot for Backuply delete option
307+
Update sitemap for new Webuzo guide
308+
Fix metadata for OpenLiteSpeed page
309+
```
310+
311+
### Create a Pull Request
312+
313+
1. Push your branch:
314+
315+
```bash
316+
git push origin docs/short-description
317+
```
318+
319+
2. Open a pull request on GitHub.
320+
3. In the pull request, explain:
321+
- what page changed
322+
- why the change is needed
323+
- whether commands or screenshots were tested
324+
- which files were added, renamed, or deleted
325+
4. Wait for review and address feedback.
326+
327+
### Contributor Checklist
328+
329+
Before opening a pull request, confirm:
330+
331+
- [ ] I edited only the files required for this change.
332+
- [ ] I used the existing `docs/` structure.
333+
- [ ] I added or updated front matter metadata when needed.
334+
- [ ] I updated `mkdocs.yml` if navigation changed.
335+
- [ ] I updated `docs/sitemap.xml` if URLs changed.
336+
- [ ] I updated `docs/llms.txt` and `llms.txt` if major topics changed.
337+
- [ ] I updated `docs/index.md` only if the homepage needed the change.
338+
- [ ] I placed images in `docs/img/` if screenshots were added.
339+
- [ ] I verified commands and technical guidance where possible.
340+
- [ ] I ran `mkdocs build --strict` or explained why I could not.
341+
- [ ] I checked that no unrelated files were modified.

0 commit comments

Comments
 (0)