How qingbird1983/keel-markdown works
KeelMd is a cross-platform Markdown desktop editor with preview and streamed translation. The main path is launch and open files, edit or preview documents, then optionally translate selected or document prose and review translation writeback. The graph also preserves Git, terminal, settings, and rendering capabilities documented or represented in the tree. Edges are limited to relationships visible in excerpts, the source index, or README; unsampled subsystem links are omitted rather than inferred.
Main entry points: app.rs App state and events · main.rs Application entry · engine.rs Translation engine · worker.rs Translation UI
Components 23
Desktop application
- Application entry
crates/winc-app/src/main.rs - Window coordinator
crates/winc-app/src/winc.rs - App state and events
crates/winc-app/src/app.rs - Window layout
crates/winc-app/src/layout.rs - Keyboard bindings
crates/winc-app/src/keymap.rs - Settings and state
crates/winc-config/src/state.rs
Documents and editing
- Document editor
crates/winc-editor/src/document.rs - Editing operations
crates/winc-editor/src/editing/search.rs - Git workflows
crates/winc-editor/src/git.rs - Workspace search
crates/winc-editor/src/workspace/project_search.rs
Preview and rendering
- Markdown preview
crates/winc-preview/src/markdown.rs - Syntax highlighting
crates/winc-syntax/src/lexer.rs - Rendering and display
crates/winc-render/src/lib.rs
Translation engine
- Translation UI
crates/winc-app/src/app/translate/worker.rs - Translation engine
crates/keel-translate/src/engine.rs - Translation policy
crates/keel-translate/src/policy.rs - Provider dispatch
crates/keel-translate/src/providers/mod.rs - LLM provider
crates/keel-translate/src/providers/llm.rs - Translation cache
crates/keel-translate/src/cache.rs
Platform services
- Terminal process support
crates/winc-pty/src/host/client.rs - macOS integration
crates/winc-app/src/macos.rs
Other components
- User
- Translation services
Connections 27
- User → Application entry: launches
crates/winc-app/src/main.rs - Application entry → Window coordinator: starts
crates/winc-app/src/main.rs - Window coordinator → App state and events: dispatches events
crates/winc-app/src/winc.rs - App state and events → Window layout: uses geometry
crates/winc-app/src/app.rs - App state and events → Keyboard bindings: maps input
crates/winc-app/src/app.rs - App state and events → Markdown preview: presents preview
- App state and events → Document editor: edits documents
- App state and events → Git workflows: offers Git workflows
- App state and events → Terminal process support: hosts terminal
- Application entry → Settings and state: loads state
crates/winc-app/src/main.rs - Markdown preview → Rendering and display: draws content
- Document editor → Editing operations: supports search
crates/winc-editor/src/editing/search.rs - Workspace search → Editing operations: reuses search
crates/winc-editor/src/workspace/project_search.rs - Translation UI → App state and events: returns results
crates/winc-app/src/app/translate/worker.rs - Translation UI → Window coordinator: sends events
crates/winc-app/src/app/translate/worker.rs - Translation UI → Translation engine: requests translation
- Translation engine → Translation policy: checks policy
crates/keel-translate/src/engine.rs - Translation engine → Provider dispatch: dispatches providers
crates/keel-translate/src/engine.rs - Translation engine → Translation cache: uses cache
crates/keel-translate/src/engine.rs - Translation policy → Translation cache: builds cache keys
crates/keel-translate/src/policy.rs - Translation policy → Workspace search: splits translation units
crates/keel-translate/src/policy.rs - Provider dispatch → LLM provider: selects provider
crates/keel-translate/src/providers/mod.rs - LLM provider → Translation services: streams requests
- User → Translation UI: requests translation
- Application entry → macOS integration: uses platform APIs
crates/winc-app/src/main.rs - Document editor → Markdown preview: provides preview input
- Markdown preview → Syntax highlighting: uses highlighting