Render Markdown into HTML, while having custom RSCx components inside.
```rust use rscx::{component, html, props}; use rscx_mdx::mdx::{Mdx, MdxComponentProps, MdxProps};
async fn main() { let source = r#"---
This is a markdown file with some content, but also custom RSCx components!
"#;
let res = html! {
<Mdx source=source handler=handle />
};
println!("{}", res);
// output ->
//
// <h1>Hello, world!</h1>
// <p>This is a <strong>markdown</strong> file with some <em>content</em>, but also custom RSCx components!</p>
// <h1>Some custom title!</h1>
// <div class="layout">
// <h2>subtitle</h2>
// </div>
}
/// handle is called everytime a custom component is encountered.
/// The props are standardized in the MdxComponentProps struct and can be later parsed and used
/// to render the component.
async fn handle(name: String, props: MdxComponentProps) -> String {
match name.as_str() {
"CustomTitle" => html! {
// below we define some custom components that can be used in the markdown file
fn CustomTitle() -> String { html! {
pub struct LayoutProps { children: String, }
fn Layout(props: LayoutProps) -> String { html! {