Skip to main content

markless/
lib.rs

1// Only allow lints that are either transitive-dependency noise or
2// genuinely opinionated style choices that don't indicate real issues.
3#![allow(
4    // Transitive dependency version mismatches we can't control
5    clippy::multiple_crate_versions,
6    // module_name_repetitions is pure style preference (e.g. image::ImageRef)
7    clippy::module_name_repetitions
8)]
9
10//! # Markless
11//!
12//! A terminal markdown viewer with image support.
13//!
14//! Markless renders markdown files in the terminal with:
15//! - Syntax-highlighted code blocks
16//! - Image support (Kitty, Sixel, half-block fallback)
17//! - Table of contents sidebar
18//! - File watching for live preview
19//!
20//! ## Architecture
21//!
22//! Markless uses The Elm Architecture (TEA) pattern:
23//! - **Model**: Application state
24//! - **Message**: Events and actions
25//! - **Update**: Pure state transitions
26//! - **View**: Render to terminal
27//!
28//! ## Modules
29//!
30//! - [`app`]: Main application loop and state
31//! - [`document`]: Markdown parsing and rendering
32//! - [`ui`]: Terminal UI components
33//! - [`input`]: Event handling and keybindings
34//! - [`highlight`]: Syntax highlighting
35//! - [`image`]: Image loading and rendering
36//! - [`watcher`]: File watching
37//! - [`search`]: Search functionality
38
39pub mod app;
40pub mod config;
41pub mod document;
42pub mod editor;
43pub mod highlight;
44pub mod image;
45pub mod input;
46pub mod math;
47pub mod mermaid;
48pub mod perf;
49pub mod search;
50pub mod svg;
51pub mod ui;
52pub mod watcher;
53
54/// Re-export commonly used types
55pub mod prelude {
56    pub use crate::app::{App, Message, Model};
57    pub use crate::document::Document;
58    pub use crate::ui::viewport::Viewport;
59}