Skip to main content

max / makenotwork

787 B · 19 lines History Blame Raw
1 //! Markdown rendering helpers for creator content.
2 //!
3 //! Wraps `docengine` with media URL rewriting so relative image/video
4 //! references in markdown (`![](folder/file.png)`) resolve to CDN URLs.
5
6 use crate::db::UserId;
7
8 /// Render creator-authored markdown to HTML with media URL resolution.
9 ///
10 /// Pipeline:
11 /// 1. Rewrite relative `![](path)` references to absolute CDN URLs
12 /// 2. Render markdown to HTML via `docengine::render_permissive`
13 /// 3. Convert `<img>` tags with video extensions to `<video>` elements
14 pub fn render_creator_markdown(markdown: &str, user_id: UserId, cdn_base: &str) -> String {
15 let md = docengine::rewrite_media_paths(markdown, cdn_base, &user_id.to_string());
16 let html = docengine::render_permissive(&md);
17 docengine::img_to_video(&html)
18 }
19