1use gpui::{App, actions};
2use workspace::Workspace;
3
4pub mod markdown_elements;
5mod markdown_minifier;
6pub mod markdown_parser;
7pub mod markdown_preview_view;
8pub mod markdown_renderer;
9
10pub use zed_actions::preview::markdown::{OpenPreview, OpenPreviewToTheSide};
11
12actions!(
13 markdown,
14 [
15 /// Scrolls up by one page in the markdown preview.
16 #[action(deprecated_aliases = ["markdown::MovePageUp"])]
17 ScrollPageUp,
18 /// Scrolls down by one page in the markdown preview.
19 #[action(deprecated_aliases = ["markdown::MovePageDown"])]
20 ScrollPageDown,
21 /// Scrolls up by approximately one visual line.
22 ScrollUp,
23 /// Scrolls down by approximately one visual line.
24 ScrollDown,
25 /// Scrolls up by one markdown element in the markdown preview
26 ScrollUpByItem,
27 /// Scrolls down by one markdown element in the markdown preview
28 ScrollDownByItem,
29 /// Opens a following markdown preview that syncs with the editor.
30 OpenFollowingPreview
31 ]
32);
33
34pub fn init(cx: &mut App) {
35 cx.observe_new(|workspace: &mut Workspace, window, cx| {
36 let Some(window) = window else {
37 return;
38 };
39 markdown_preview_view::MarkdownPreviewView::register(workspace, window, cx);
40 })
41 .detach();
42}