use crate::{set_meta_tags, Route}; use dioxus::{logger::tracing, prelude::*}; use reqwest; use serde::{Deserialize, Serialize}; // const BLOG_CSS: Asset = asset!("/assets/styling/blog.css"); /// The Blog page component that will be rendered when the current route is `[Route::Blog]` /// /// The component takes a `id` prop of type `i32` from the route enum. Whenever the id changes, the component function will be /// re-run and the rendered HTML will be updated. #[component] pub fn Blog(blog_title: String) -> Element { let blog_content = use_signal(move || { "
In blog #{blog_title}, we show how the Dioxus router works and how URL parameters can be passed as props to our route components.
" .to_string() }); // let blog_content = use_signal(move || BlogContent { // blog_file_name: "blog_title".to_string(), // blog_title: "This is a blog #blog_title".to_string(), // date_last_edit: "2025-5-20".to_string(), // tags: "#test".to_string(), // html_blog_content: "// In blog #{blog_title}, we show how the Dioxus router works and // how URL parameters can be passed as props to our route components. //
" // .to_string(), // }); let blog = blog_content(); // let last_edit = &blog.date_last_edit; // let tag = &blog.tags; rsx! { document::Stylesheet { href: asset!("/assets/styling/blog.css") } document::Title { "Brock Tomlinson - {blog_title}" } set_meta_tags { description: "{blog_title}", keywords: "blog software engineer webdev {blog_title}", } div { id: "blog", // Content // h1 { "This is blog #{blog_title}!" } // p { // "In blog #{blog_title}, we show how the Dioxus router works and how URL parameters can be passed as props to our route components." // } // // Navigation links // // The `Link` component lets us link to other routes inside our app. It takes a `to` prop of type `Route` and // // any number of child nodes. // Link { // // The `to` prop is the route that the link should navigate to. We can use the `Route` enum to link to the // // blog page with the id of -1. Since we are using an enum instead of a string, all of the routes will be checked // // at compile time to make sure they are valid. // to: Route::Blog { id: id - 1 }, // "Previous" // } // span { " <---> " } Link { to: Route::Blogs { page_num: 0 }, "Go Back" } // div { dangerous_inner_html: *&blog.html_blog_content.as_str(), // h1 { "{blog_title}" } // div { // p { "{&blog.tags}" } // p { "{&blog.date_last_edit}" } // } // } div { dangerous_inner_html: blog_content } } } } async fn get_blog(blog_name: String) { let res = reqwest::get("https://www.rust-lang.org") .await .unwrap() .text() .await .unwrap_or("".to_string()); tracing::info!("{}", res); } #[component] pub fn Blogs(page_num: u32) -> Element { let mut _num_limit: Signal