# KOGRAL Documentation
Welcome to the KOGRAL documentation! This directory contains comprehensive documentation for KOGRAL (**KO**wledge **GRA**phs, **L**ocal-first), built with [mdBook](https://rust-lang.github.io/mdBook/).
## ๐ Reading the Documentation
You have several options for reading the documentation:
### Option 1: Serve Locally with mdBook (Recommended)
The best reading experience with navigation, search, and live reload:
```bash
# Serve documentation at http://localhost:3000
just docs::serve
```
This will:
- Build the mdBook
- Start a local web server on port 3000
- Open your browser automatically
- Watch for changes and auto-reload
### Option 2: Build Static HTML
Generate static HTML files you can browse offline:
```bash
# Build mdBook to docs/book/
just docs::build
```
Then open `docs/book/index.html` in your browser.
### Option 3: Read Markdown Files Directly
All documentation is written in Markdown and can be read directly:
- Browse via GitHub/GitLab web interface
- Use your editor's Markdown preview
- Read from terminal with `bat`, `glow`, or similar tools
**Navigation**: See [SUMMARY.md](SUMMARY.md) for the complete table of contents.
## ๐ ๏ธ Documentation Commands
We use `just` recipes for documentation tasks. All commands assume you're in the project root directory.
### Build and Serve
```bash
# Serve documentation locally (recommended)
just docs::serve
# Build static HTML
just docs::build
# Watch and rebuild on file changes
just docs::watch
```
### Validation
```bash
# Test code examples in documentation
just docs::test
# Check for broken links
just docs::check-links
```
### Cleanup
```bash
# Remove build artifacts
just docs::clean
```
### View All Documentation Commands
```bash
just docs::help
```
## ๐ฆ Installing mdBook
mdBook is required to build and serve the documentation.
### Install via Cargo
```bash
cargo install mdbook
```
### Install Optional Tools
For enhanced functionality:
```bash
# Link checker (validates internal/external links)
cargo install mdbook-linkcheck
# Mermaid diagram support
cargo install mdbook-mermaid
# PlantUML diagram support
cargo install mdbook-plantuml
```
### Verify Installation
```bash
mdbook --version
# Should output: mdbook v0.4.x or later
```
## ๐ Documentation Structure
The documentation is organized into the following sections:
### 1. **KOGRAL Definition** (`kogral/`)
- What is KOGRAL and why it exists
- Core concepts (nodes, edges, graphs)
- Design philosophy
### 2. **Guides** (`guides/`)
- Quick start (5 minutes)
- Installation guide
- Use cases with examples
### 3. **Architecture** (`architecture/`)
- System overview with diagrams
- Config-driven architecture
- Graph model details
- ADRs (Architectural Decision Records)
### 4. **Setup** (`setup/`)
- Initial setup
- Development environment
- Production deployment
- Testing environment
- CI/CD integration
### 5. **Configuration** (`config/`)
- Configuration overview
- Nickel schema reference
- Runtime configuration
- Environment modes (dev/prod/test)
### 6. **Storage** (`storage/`)
- Storage architecture (hybrid strategy)
- Filesystem backend
- SurrealDB backend
- In-memory backend
- Sync mechanism
### 7. **AI & Embeddings** (`ai/`)
- Semantic search
- Embedding providers
- Provider comparison
- Configuration examples
### 8. **Templates** (`templates/`)
- Template system (Tera)
- Document templates
- Export templates
- Custom templates
### 9. **CLI Reference** (`cli/`)
- All kogral-cli commands
- Common workflows
- Advanced usage
- Troubleshooting
### 10. **Apps & Integrations** (`apps/`)
- MCP quick guide (Claude Code)
- Logseq integration
- Vapora integration
### 11. **API Reference** (`api/`)
- MCP tools specification
- Storage trait
- Embedding trait
- REST API (future)
### 12. **Contributing** (`contributing/`)
- Development setup
- Code guidelines
- Testing standards
- Documentation guidelines
## ๐จ Visual Diagrams
The documentation includes SVG diagrams for visual understanding:
- **[architecture-overview.svg](diagrams/architecture-overview.svg)** - Complete system architecture
- **[core-concepts.svg](diagrams/core-concepts.svg)** - Node types and relationships
- **[config-composition.svg](diagrams/config-composition.svg)** - Configuration flow (Nickel โ JSON โ Rust)
- **[storage-architecture.svg](diagrams/storage-architecture.svg)** - Hybrid storage strategy
These diagrams are embedded in relevant documentation pages and can be viewed standalone in a browser.
## ๐ Searching the Documentation
When using `just docs::serve`, you get a built-in search feature:
1. Click the search icon (๐) in the top-left corner
2. Type your query
3. Press Enter to navigate results
The search indexes all documentation content including:
- Page titles
- Headers
- Body text
- Code examples (optionally)
## โ๏ธ Editing Documentation
### File Format
All documentation is written in **GitHub Flavored Markdown** with mdBook extensions.
See [contributing/documentation.md](contributing/documentation.md) for detailed editing guidelines.
### Adding a New Page
1. Create the markdown file in the appropriate directory
2. Add it to `SUMMARY.md` for navigation
3. Build to verify: `just docs::build`
### Adding a New Section
1. Create the directory
2. Add a `README.md` for the section landing page
3. Add section to `SUMMARY.md`
## ๐งช Testing Documentation
### Test Code Examples
```bash
just docs::test
```
This runs all Rust code examples in the documentation to ensure they compile.
### Check Links
```bash
just docs::check-links
```
This validates all internal and external links.
## ๐ Documentation Standards
When contributing to documentation:
1. **Use clear, concise language** - Write for developers and AI agents
2. **Include code examples** - Show, don't just tell
3. **Add diagrams where helpful** - Visual aids improve understanding
4. **Link related concepts** - Help readers discover related content
5. **Test code examples** - Ensure code compiles and works
6. **Use consistent formatting** - Follow existing page structure
7. **Update SUMMARY.md** - New pages must be in navigation
8. **Run checks before committing**:
```bash
just docs::build
just docs::test
just docs::check-links
```
## ๐ก Tips
### Live Reload While Writing
```bash
just docs::watch
```
This watches for changes and rebuilds automatically. Open in your browser to see updates in real-time.
### Markdown Preview in Editor
Most editors have Markdown preview:
- **VS Code**: `Ctrl+Shift+V` (Cmd+Shift+V on Mac)
- **IntelliJ/CLion**: Preview pane (right side)
- **Vim/Neovim**: Use plugins like `markdown-preview.nvim`
### Quick Reference
- **SUMMARY.md** - Table of contents (edit to add/remove pages)
- **book.toml** - mdBook configuration
- **theme/** - Custom CSS/JS (if needed)
- **diagrams/** - SVG diagrams
## ๐ Troubleshooting
### mdbook command not found
```bash
# Install mdBook
cargo install mdbook
# Verify installation
mdbook --version
```
### Port 3000 already in use
```bash
# Serve on different port
cd docs
mdbook serve --port 3001
```
### Links broken after moving files
```bash
# Check all links
just docs::check-links
# Update internal links in affected files
# Then rebuild
just docs::build
```
## ๐ Resources
- [mdBook User Guide](https://rust-lang.github.io/mdBook/)
- [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)
- [Markdown Guide](https://www.markdownguide.org/)
## ๐ค Contributing to Documentation
Documentation improvements are always welcome! To contribute:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test with `just docs::build` and `just docs::test`
5. Submit a pull request
See [contributing/documentation.md](contributing/documentation.md) for detailed guidelines.
---
**Happy documenting! ๐**
If you have questions or need help, please open an issue or reach out to the maintainers.