Skip to content

Commit e967f3f

Browse files
Merge pull request #8 from raythurman2386/docs/mkdocs-setup
docs: add comprehensive mkdocs documentation with Ravenwood theme
2 parents 0bc1529 + f8457af commit e967f3f

File tree

21 files changed

+5015
-0
lines changed

21 files changed

+5015
-0
lines changed

.github/workflows/docs.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- 'mkdocs.yml'
10+
pull_request:
11+
paths:
12+
- 'docs/**'
13+
- 'mkdocs.yml'
14+
workflow_dispatch:
15+
16+
permissions:
17+
contents: read
18+
pages: write
19+
id-token: write
20+
21+
concurrency:
22+
group: "pages"
23+
cancel-in-progress: false
24+
25+
jobs:
26+
build:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
32+
- name: Setup Python
33+
uses: actions/setup-python@v5
34+
with:
35+
python-version: '3.11'
36+
37+
- name: Install dependencies
38+
run: |
39+
python -m pip install --upgrade pip
40+
pip install mkdocs-material
41+
pip install mkdocs-minify-plugin
42+
43+
- name: Build documentation
44+
run: mkdocs build --strict
45+
46+
- name: Upload artifact
47+
if: github.event_name != 'pull_request'
48+
uses: actions/upload-pages-artifact@v3
49+
with:
50+
path: ./site
51+
52+
deploy:
53+
if: github.event_name != 'pull_request'
54+
needs: build
55+
runs-on: ubuntu-latest
56+
environment:
57+
name: github-pages
58+
url: ${{ steps.deployment.outputs.page_url }}
59+
steps:
60+
- name: Deploy to GitHub Pages
61+
id: deployment
62+
uses: actions/deploy-pages@v4

Dockerfile.docs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM python:3.11-slim
2+
3+
WORKDIR /docs
4+
5+
RUN pip install --no-cache-dir mkdocs-material mkdocs-minify-plugin
6+
7+
COPY mkdocs.yml .
8+
COPY docs/ ./docs/
9+
10+
EXPOSE 8000
11+
12+
CMD ["mkdocs", "serve", "--dev-addr", "0.0.0.0:8000"]

docs/changelog.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Changelog
2+
3+
All notable changes to Straw will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial documentation site with MkDocs
12+
- Comprehensive user guides and reference documentation
13+
14+
## [1.0.0] - 2024-XX-XX
15+
16+
### Added
17+
- Initial release of Straw file automation system
18+
- Background daemon (`strawd`) for filesystem monitoring
19+
- Interactive TUI client (`straw`) for real-time monitoring
20+
- Rule-based file processing engine
21+
- Support for glob and regex pattern matching
22+
- File attribute matching (extension, size, age, hidden)
23+
- Four action types: move, copy, trash, shell
24+
- Cross-platform support (Linux, macOS, Windows)
25+
- JSON-RPC IPC over Unix sockets
26+
- Live configuration reloading
27+
- Systemd service support on Linux
28+
- Interactive Rule Wizard in TUI
29+
- Event logging and monitoring
30+
- Multi-directory watching with recursive support
31+
32+
### Features
33+
34+
#### Daemon (strawd)
35+
- Filesystem watching using fsnotify
36+
- Rule evaluation and action execution
37+
- Configuration management
38+
- IPC server for client communication
39+
- Signal-based configuration reloading
40+
- Comprehensive logging
41+
42+
#### TUI Client (straw)
43+
- Real-time event monitoring
44+
- Rule management interface
45+
- Interactive Rule Wizard
46+
- Configuration editing
47+
- Status monitoring
48+
- Keyboard-driven interface
49+
50+
#### Configuration
51+
- TOML-based configuration
52+
- Platform-specific default paths
53+
- Watch directory configuration
54+
- Rule definition with multiple criteria
55+
- Multiple actions per rule
56+
57+
#### Actions
58+
- `move`: Move files to target directory
59+
- `copy`: Copy files to target directory
60+
- `trash`: Move files to system trash
61+
- `shell`: Execute custom shell commands
62+
63+
#### IPC API
64+
- JSON-RPC 2.0 protocol
65+
- Methods: GetStatus, GetEvents, GetRules, AddRule, RemoveRule, EnableRule, DisableRule, ReloadConfig, GetWatches, TriggerAction
66+
- Unix Domain Sockets (named pipes on Windows)
67+
68+
### Platform Support
69+
- Linux with systemd integration
70+
- macOS with launchd support
71+
- Windows 10 1803+ with Task Scheduler support
72+
73+
### Performance
74+
- Minimal resource footprint (~7MB RAM, <0.1% CPU idle)
75+
- Efficient event-driven architecture
76+
- Concurrent action execution
77+
- Scalable to hundreds of watched directories
78+
79+
[Unreleased]: https://github.com/raythurman2386/straw/compare/v1.0.0...HEAD
80+
[1.0.0]: https://github.com/raythurman2386/straw/releases/tag/v1.0.0

0 commit comments

Comments
 (0)