//! 文章内容组件 //! //! 渲染由服务端生成的文章 HTML 内容,并在 WASM 前端初始化交互脚本。 use dioxus::prelude::*; /// 文章内容组件。 /// /// Props: /// - `content_html`:服务端渲染的文章 HTML 字符串 /// /// 关键行为: /// - 在 `target_arch = "wasm32"` 环境下执行 `post-content.js` 并调用初始化函数, /// 用于处理代码块、图片点击等前端交互 #[component] pub fn PostContent(content_html: String) -> Element { #[cfg(target_arch = "wasm32")] use_effect(move || { let _ = js_sys::eval(include_str!("../../../public/js/post-content.js")); let _ = js_sys::eval("window.__initPostContent('.post-content')"); }); rsx! { div { class: "post-content md-content", dangerous_inner_html: "{content_html}" } } }