Skip to main content

scrybe_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 Shawn Hartsock and contributors
3
4//! Scrybe core — foundational types for the Scrybe Markdown editor.
5//!
6//! Provides the building blocks all other scrybe crates depend on:
7//!
8//! - [`Document`] — the central editing unit: parsed AST + metadata
9//! - [`ContentId`] — BLAKE3 content identifier (CIDv1, raw codec)
10//! - [`ContentAddressable`] — trait for content-addressed storage
11//! - [`Plugin`] — trait for Python and native plugins
12//! - [`Workspace`] — collection of open documents + shared state
13//! - [`Ast`] / [`Node`] — Markdown AST types
14//! - [`DocumentChange`] / [`DocumentHistory`] / [`TextRange`] — change tracking
15
16pub mod ast;
17pub mod change;
18pub mod content;
19pub mod document;
20pub mod error;
21pub mod plugin;
22pub mod workspace;
23
24pub use ast::{Ast, Node};
25pub use change::{DocumentChange, DocumentHistory, TextRange};
26pub use content::{ContentAddressable, ContentId};
27pub use document::Document;
28pub use error::ScrybeError;
29pub use plugin::Plugin;
30pub use workspace::Workspace;