diaryx_core/lib.rs
1#![doc = include_str!(concat!(env!("OUT_DIR"), "/README.md"))]
2#![warn(missing_docs)]
3
4/// Workspace appearance: theme colors, typography, and favicon resolution
5pub mod appearance;
6
7/// Authentication module for sync server
8pub mod auth;
9
10/// Billing tier model and feature gates
11pub mod billing;
12
13/// Command pattern API for unified command execution
14pub mod command;
15pub use command::{Command, Response};
16
17/// Unified Diaryx API - the main entry point
18pub mod diaryx;
19
20/// Command handler - execute() implementation for Diaryx
21mod command_handler;
22
23/// Configuration options
24pub mod config;
25
26/// Entry docs
27pub mod entry;
28
29/// Error (common error types)
30pub mod error;
31
32/// Export (for backup or filtering by audience property)
33pub mod export;
34
35/// Filesystem abstraction
36pub mod fs;
37
38/// Search (query frontmatter or search content)
39pub mod search;
40
41/// Frontmatter parsing and manipulation utilities
42pub mod frontmatter;
43
44/// Audience visibility directive filtering for markdown bodies
45pub mod visibility;
46
47/// Metadata-to-frontmatter conversion and file writing utilities
48pub mod metadata_writer;
49
50/// Validate (check workspace link integrity)
51pub mod validate;
52
53/// Portable path link parsing and formatting for frontmatter link properties
54/// (e.g., part_of/contents/attachments)
55pub mod link_parser;
56
57/// Utility functions (date parsing, path calculations)
58pub mod utils;
59
60/// Workspace (specify a directory to work in)
61pub mod workspace;
62
63/// Multi-workspace registry types shared across frontends
64pub mod workspace_registry;
65
66/// Core data types (FileMetadata, BinaryRef, CrdtStorage trait, history types)
67pub mod types;
68
69/// Plugin architecture for modular feature composition
70pub mod plugin;
71
72/// Minimal YAML value type for dynamic frontmatter manipulation
73pub mod yaml_value;
74pub use yaml_value::YamlValue;
75
76// Re-exports for backwards compatibility
77pub use utils::date;
78pub use utils::path as path_utils;
79
80/// Re-export uuid so downstream crates don't need a separate dependency.
81#[cfg(feature = "uuid")]
82pub use uuid;
83
84#[cfg(test)]
85pub mod test_utils;