Add mdBook documentation with Ghostty-style sidebar
This commit is contained in:
+261
@@ -0,0 +1,261 @@
|
||||
# socktop Documentation
|
||||
|
||||
This directory contains the source for socktop's comprehensive documentation built with [mdBook](https://rust-lang.github.io/mdBook/) and styled with the Catppuccin Frappe theme.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Install and build documentation
|
||||
./setup-docs.sh
|
||||
|
||||
# Or manually:
|
||||
cargo install mdbook mdbook-catppuccin
|
||||
cd docs && mdbook-catppuccin install && mdbook build
|
||||
|
||||
# Serve with live reload
|
||||
mdbook serve --open
|
||||
```
|
||||
|
||||
## What's Included
|
||||
|
||||
📚 **6,400+ lines** of comprehensive documentation covering:
|
||||
|
||||
- **Installation**: Quick start, prerequisites, Cargo, APT, systemd service, upgrading
|
||||
- **Usage**: General usage, connection profiles, keyboard controls, configuration
|
||||
- **Security**: Authentication tokens, TLS/SSL setup
|
||||
- **Advanced**: tmux/Zellij integration, agent library, connector API
|
||||
|
||||
## Building the Documentation
|
||||
|
||||
### Automated Setup (Recommended)
|
||||
|
||||
```bash
|
||||
./setup-docs.sh
|
||||
```
|
||||
|
||||
This script will:
|
||||
- Check for Rust/Cargo installation
|
||||
- Install mdbook and mdbook-catppuccin
|
||||
- Install Catppuccin theme assets
|
||||
- Build the documentation
|
||||
- Provide next steps
|
||||
|
||||
### Manual Setup
|
||||
|
||||
1. **Install tools:**
|
||||
```bash
|
||||
cargo install mdbook
|
||||
cargo install mdbook-catppuccin
|
||||
```
|
||||
|
||||
2. **Install theme:**
|
||||
```bash
|
||||
cd docs
|
||||
mdbook-catppuccin install
|
||||
```
|
||||
|
||||
3. **Build:**
|
||||
```bash
|
||||
mdbook build
|
||||
```
|
||||
|
||||
4. **Serve locally:**
|
||||
```bash
|
||||
mdbook serve
|
||||
```
|
||||
Open http://localhost:3000
|
||||
|
||||
### Automatic Build (During Compilation)
|
||||
|
||||
Documentation builds automatically when compiling the project:
|
||||
|
||||
```bash
|
||||
# From project root
|
||||
cargo build
|
||||
```
|
||||
|
||||
Built docs are copied to `static/docs/` and served at `/assets/docs/`
|
||||
|
||||
## Documentation Structure
|
||||
|
||||
```
|
||||
docs/
|
||||
├── book.toml # mdBook configuration with Catppuccin
|
||||
├── README.md # This file
|
||||
├── CONTRIBUTING.md # Contributor guidelines
|
||||
├── setup-docs.sh # Automated setup script
|
||||
├── .gitignore # Ignore build artifacts
|
||||
└── src/
|
||||
├── SUMMARY.md # Table of contents
|
||||
├── introduction.md # Project overview
|
||||
├── installation/ # Installation guides (6 pages)
|
||||
│ ├── quick-start.md
|
||||
│ ├── prerequisites.md
|
||||
│ ├── cargo.md
|
||||
│ ├── apt.md
|
||||
│ ├── agent-service.md
|
||||
│ └── upgrading.md
|
||||
├── usage/ # Usage guides (4 pages)
|
||||
│ ├── general.md
|
||||
│ ├── connection-profiles.md
|
||||
│ ├── keyboard-mouse.md
|
||||
│ └── configuration.md
|
||||
├── security/ # Security documentation (2 pages)
|
||||
│ ├── token.md
|
||||
│ └── tls.md
|
||||
└── advanced/ # Advanced topics (4 pages)
|
||||
├── tmux.md
|
||||
├── zellij.md
|
||||
├── agent-integration.md
|
||||
└── connector.md
|
||||
```
|
||||
|
||||
## Adding New Pages
|
||||
|
||||
1. **Create the file** in the appropriate directory:
|
||||
```bash
|
||||
touch src/installation/new-guide.md
|
||||
```
|
||||
|
||||
2. **Add to SUMMARY.md** in the correct section:
|
||||
```markdown
|
||||
# Installation
|
||||
- [Quick Start](./installation/quick-start.md)
|
||||
- [New Guide](./installation/new-guide.md) # Add here
|
||||
```
|
||||
|
||||
3. **Write content** following the [CONTRIBUTING.md](./CONTRIBUTING.md) guidelines
|
||||
|
||||
4. **Test:**
|
||||
```bash
|
||||
mdbook serve
|
||||
```
|
||||
|
||||
5. **Commit:**
|
||||
```bash
|
||||
git add src/installation/new-guide.md src/SUMMARY.md
|
||||
git commit -m "docs: Add new installation guide"
|
||||
```
|
||||
|
||||
## Writing Guidelines
|
||||
|
||||
### Style
|
||||
- ✅ Clear and concise language
|
||||
- ✅ Active voice ("Run the command" not "The command should be run")
|
||||
- ✅ Include working code examples
|
||||
- ✅ Add `<!-- TODO: -->` comments for incomplete sections
|
||||
- ✅ Link to related pages
|
||||
|
||||
### Code Examples
|
||||
Always specify the language:
|
||||
|
||||
````markdown
|
||||
```bash
|
||||
cargo install socktop
|
||||
```
|
||||
|
||||
```rust
|
||||
use socktop_connector::*;
|
||||
```
|
||||
|
||||
```toml
|
||||
[profiles.server]
|
||||
url = "ws://localhost:3000"
|
||||
```
|
||||
````
|
||||
|
||||
### Structure
|
||||
Each page should have:
|
||||
- Clear title
|
||||
- Brief introduction
|
||||
- Logical sections with headings
|
||||
- Code examples
|
||||
- "Next Steps" section with related links
|
||||
- TODO comments for future improvements
|
||||
|
||||
See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines.
|
||||
|
||||
## Catppuccin Theme
|
||||
|
||||
The documentation uses the [Catppuccin Frappe](https://github.com/catppuccin/catppuccin) theme to match socktop's TUI color scheme.
|
||||
|
||||
**Features:**
|
||||
- Dark theme optimized for readability
|
||||
- Syntax highlighting for code blocks
|
||||
- Beautiful, consistent color palette
|
||||
- Matches socktop terminal UI
|
||||
|
||||
**Installation:**
|
||||
```bash
|
||||
mdbook-catppuccin install
|
||||
```
|
||||
|
||||
## Accessing the Documentation
|
||||
|
||||
### Via Web Interface
|
||||
1. Start webterm server: `cargo run`
|
||||
2. Open http://localhost:8082
|
||||
3. Click "Docs" button
|
||||
4. Documentation opens in browser
|
||||
|
||||
### Direct File Access
|
||||
Open `docs/book/index.html` in any browser
|
||||
|
||||
### Published Online
|
||||
- Production: https://socktop.io/docs/ (when deployed)
|
||||
- Local dev: http://localhost:8082/assets/docs/
|
||||
|
||||
## Maintenance
|
||||
|
||||
### Update Theme
|
||||
```bash
|
||||
cd docs
|
||||
mdbook-catppuccin install
|
||||
```
|
||||
|
||||
### Clean Build
|
||||
```bash
|
||||
rm -rf book/
|
||||
mdbook build
|
||||
```
|
||||
|
||||
### Check for Broken Links
|
||||
```bash
|
||||
mdbook build
|
||||
# Navigate through all pages in browser
|
||||
# Click all internal links to verify
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed contributor guidelines.
|
||||
|
||||
**Quick tips:**
|
||||
- Focus on TODO-marked sections first
|
||||
- Test all code examples before committing
|
||||
- Include screenshots when helpful
|
||||
- Cross-reference related topics
|
||||
- Keep examples minimal and focused
|
||||
|
||||
## Documentation Statistics
|
||||
|
||||
- **Total Pages**: 18 (including SUMMARY and introduction)
|
||||
- **Total Lines**: 6,400+ lines of Markdown
|
||||
- **Code Examples**: 200+ code blocks
|
||||
- **Sections**: 4 major sections
|
||||
- **Topics**: 31+ distinct topics covered
|
||||
|
||||
## Support
|
||||
|
||||
- **Questions?** Open a GitHub discussion
|
||||
- **Found errors?** Open an issue with "documentation" label
|
||||
- **Want to contribute?** See [CONTRIBUTING.md](./CONTRIBUTING.md)
|
||||
|
||||
## Recognition
|
||||
|
||||
All documentation contributors are acknowledged in:
|
||||
- Git commit history
|
||||
- Contributors list
|
||||
- Release notes (for significant contributions)
|
||||
|
||||
Thank you for helping improve socktop documentation! 🚀
|
||||
Reference in New Issue
Block a user