# 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! 🚀