T21a: Documents, editing

- markdown read with pulldown-cmark: marks for live styling, blocks, links, words
- forms::Highlight gains weight, slant and strike; measure and paint share runs
- Inter Italic embedded, so emphasis reads slanted
- forms::mention's popup and keys become Suggestions, shared with the editors
- RichTextEditor with FixedFormatToolbar, the floating toolbar, LinkEditor,
  @ and : suggestions, WordCount and ReadingTime
- MarkdownEditor: visual (a pressed block opens as source), source, split
- BlockEditor: prose, lists, to-dos, quotes, callouts, toggles, code, math,
  diagrams the app draws, dividers, tables that grow and merge, pictures to
  resize and align, cards for video and pages, columns, synced text; slash menu,
  markdown shortcuts, handles that drag and open a menu, one undo for all
- TodoItem and Checklist
- icons: heading-1..3, workflow, merge
- gallery: the Documents page with scripted states
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 03:32:24 -04:00
1 parent 05e764304d
commit 9edd0a8612
46 files changed
+5635 -193

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
mod blocks;
mod counts;
mod format;
mod link;
mod markdown;
mod modes;
mod render;
mod rich;
mod suggest;
#[cfg(all(test, feature = "test-support"))]
mod tests;
mod todo;
mod toolbar;
mod tree;
use gpui::App;
pub use blocks::{Align, BlockData, BlockEditor, BlockEvent, BlockKind, Media};
pub use counts::{ReadingTime, WordCount};
pub use format::{Format, format};
pub use link::LinkEditor;
pub use markdown::markdown_highlights;
pub use modes::{MarkdownEditor, MarkdownMode};
pub use render::MarkdownRenderer;
pub use rich::RichTextEditor;
pub use todo::{Checklist, TodoItem};
pub use toolbar::FixedFormatToolbar;
/// Binds the documents keys. `init` calls it.
pub(crate) fn bind_keys(cx: &mut App) {
rich::bind_keys(cx);
}