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 mermaid;
47#[allow(
48 unsafe_code,
49 clippy::all,
50 clippy::pedantic,
51 clippy::nursery,
52 clippy::cargo,
53 missing_docs,
54 dead_code,
55 unused,
56 unexpected_cfgs
57)]
58mod mermaid_renderer;
59pub mod perf;
60pub mod search;
61pub mod ui;
62pub mod watcher;
63
64/// Re-export commonly used types
65pub mod prelude {
66 pub use crate::app::{App, Message, Model};
67 pub use crate::document::Document;
68 pub use crate::ui::viewport::Viewport;
69}