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 /// Scrolls to the top of the markdown preview.
30 ScrollToTop,
31 /// Scrolls to the bottom of the markdown preview.
32 ScrollToBottom,
33 /// Opens a following markdown preview that syncs with the editor.
34 OpenFollowingPreview
35 ]
36);
37
38pub fn init(cx: &mut App) {
39 cx.observe_new(|workspace: &mut Workspace, window, cx| {
40 let Some(window) = window else {
41 return;
42 };
43 markdown_preview_view::MarkdownPreviewView::register(workspace, window, cx);
44 })
45 .detach();
46}