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 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}