Skip to content

Commit 5d3e742

Browse files
authored
Publish usage guides on Read the Docs; merge docs into doc/ (#107)
Issue: #106
1 parent 1aa6db9 commit 5d3e742

17 files changed

Lines changed: 156 additions & 25 deletions

.github/workflows/docs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
paths:
88
- ".github/workflows/docs.yml"
99
- ".readthedocs.yaml"
10-
- "docs/**"
10+
- "doc/**"
1111
- "usage.md"
1212
- "usage-*.md"
1313
- "scripting.md"
@@ -18,7 +18,7 @@ on:
1818
paths:
1919
- ".github/workflows/docs.yml"
2020
- ".readthedocs.yaml"
21-
- "docs/**"
21+
- "doc/**"
2222
- "usage.md"
2323
- "usage-*.md"
2424
- "scripting.md"
@@ -36,7 +36,7 @@ jobs:
3636
python-version: "3.13"
3737

3838
- name: Install doc dependencies
39-
run: pip install -r docs/requirements.txt
39+
run: pip install -r doc/requirements.txt
4040

4141
- name: Build HTML (warnings are errors; matches Read the Docs)
42-
run: sphinx-build -b html -W --keep-going docs docs/_build
42+
run: sphinx-build -b html -W --keep-going doc doc/_build

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/build*
2-
/docs/_build
2+
/doc/_build
33
/.vscode/settings.json
44
# Legacy name; some toolchains write here. Primary vendored deps live in third_party/.
55
/thirdParty

.readthedocs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ build:
1717
python: "3.13"
1818

1919
sphinx:
20-
configuration: docs/conf.py
20+
configuration: doc/conf.py
2121
fail_on_warning: true
2222

2323
python:
2424
install:
25-
- requirements: docs/requirements.txt
25+
- requirements: doc/requirements.txt

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,7 @@ if(MSVC)
594594
set(DOC_FILES
595595
${CMAKE_CURRENT_SOURCE_DIR}/README.md
596596
${CMAKE_CURRENT_SOURCE_DIR}/ezycad_code_style.md
597+
${CMAKE_CURRENT_SOURCE_DIR}/ezycad_doc_style.md
597598
${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md
598599
${CMAKE_CURRENT_SOURCE_DIR}/usage.md
599600
${CMAKE_CURRENT_SOURCE_DIR}/usage-settings.md

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# EzyCad
22

3+
![EzyCad splash screen](res/AI-gen-splashscreen_05_01_2026_512.png)
4+
35
EzyCad (Easy CAD) is a CAD application for hobbyist machinists to design and edit 2D and 3D models for machining projects. It supports creating precise parts with tools for sketching, extruding, and applying geometric operations, using OpenGL, ImGui, and Open CASCADE Technology (OCCT). Export models to formats like STEP or STL for CNC machines or 3D printers, or [run EzyCad in your browser (WebAssembly)](https://trailcode.github.io/EzyCad/EzyCad.html).
46

57
## Features
@@ -88,7 +90,7 @@ Ensure the following dependencies are installed:
8890
### We need development help
8991
EzyCad is maintained by a small team and we would love more contributors. If you can help with features, bug fixes, documentation, or testing - please jump in. Every contribution helps move the project forward.
9092

91-
**Code style:** When contributing, please follow the project's style guide: [ezycad_code_style.md](ezycad_code_style.md). Both human developers and AI coding agents (e.g. Cursor, GitHub Copilot, ChatGPT) should adhere to it so that patches stay consistent and reviewable. Optional assistant-oriented snippets live under [agents/](agents/) (the repo does not commit `.cursor/`).
93+
**Style guides:** [ezycad_code_style.md](ezycad_code_style.md) for C++ in `src/`; [ezycad_doc_style.md](ezycad_doc_style.md) for user guides and [Read the Docs](https://ezycad.readthedocs.io/). Both human developers and AI coding agents should follow the relevant guide. Optional assistant-oriented snippets live under [agents/](agents/) (the repo does not commit `.cursor/`).
9294

9395
## In-tree third-party libraries
9496

agents/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ To use a note in **Cursor**, copy or symlink the relevant file into your user or
77
| File | Intent |
88
| --- | --- |
99
| [ezycad-ascii-source.md](ezycad-ascii-source.md) | ASCII-only comments and strings in `src/`; points at `ezycad_code_style.md` and `scripts/check-nonascii-src.ps1`. |
10+
| *(repo root)* [ezycad_doc_style.md](../ezycad_doc_style.md) | User guides, Read the Docs, images, in-app doc URLs. |
File renamed without changes.

docs/conf.py renamed to doc/conf.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Sphinx configuration for EzyCad user documentation (Read the Docs).
2-
# User guides live at the repository root; they are synced into docs/ at build time
2+
# User guides live at the repository root; they are synced into doc/ at build time
33
# so cross-links (usage.md, usage-sketch.md, ...) and res/icons/ paths keep working.
44

55
from __future__ import annotations
@@ -26,8 +26,15 @@ def _sync_user_docs() -> None:
2626
if src.is_file():
2727
shutil.copy2(src, DOCS_DIR / name)
2828

29+
res_dst = DOCS_DIR / "res"
30+
res_dst.mkdir(exist_ok=True)
31+
32+
splash_src = PROJECT_ROOT / "res" / "AI-gen-splashscreen_05_01_2026_512.png"
33+
if splash_src.is_file():
34+
shutil.copy2(splash_src, res_dst / splash_src.name)
35+
2936
icons_src = PROJECT_ROOT / "res" / "icons"
30-
icons_dst = DOCS_DIR / "res" / "icons"
37+
icons_dst = res_dst / "icons"
3138
if icons_src.is_dir():
3239
shutil.copytree(icons_src, icons_dst, dirs_exist_ok=True)
3340

File renamed without changes.

0 commit comments

Comments
 (0)