#![allow(missing_docs)]
use html_generator::{
generator::generate_html,
generator::markdown_to_html_with_extensions, HtmlConfig,
Result as HtmlResult,
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("\n๐งช html-generator Markdown to HTML Examples\n");
generate_html_basic_example()?;
markdown_to_html_with_extensions_example()?;
empty_markdown_example()?;
invalid_markdown_example()?;
complex_markdown_example()?;
markdown_conversion_error_example()?;
println!(
"\n๐ All HTML generation examples completed successfully!"
);
Ok(())
}
fn generate_html_basic_example() -> HtmlResult<()> {
println!("๐ฆ Basic HTML Generation Example");
println!("---------------------------------------------");
let markdown = "# Hello, world!\nThis is a test.";
let config = HtmlConfig::default();
let result = generate_html(markdown, &config);
match result {
Ok(html) => {
println!(" โ
Successfully generated HTML: \n{}", html);
}
Err(e) => {
println!(" โ Failed to generate HTML: {}", e);
}
}
Ok(())
}
fn markdown_to_html_with_extensions_example() -> HtmlResult<()> {
println!("\n๐ฆ Markdown to HTML with Extensions Example");
println!("---------------------------------------------");
let markdown = r#"
~~strikethrough~~
| Header 1 | Header 2 |
| -------- | -------- |
| Row 1 | Row 2 |
"#;
let result = markdown_to_html_with_extensions(markdown);
match result {
Ok(html) => {
println!(" โ
Successfully generated HTML with extensions: \n{}", html);
}
Err(e) => {
println!(
" โ Failed to generate HTML with extensions: {}",
e
);
}
}
Ok(())
}
fn empty_markdown_example() -> HtmlResult<()> {
println!("\n๐ฆ Empty Markdown Example");
println!("---------------------------------------------");
let markdown = "";
let config = HtmlConfig::default();
let result = generate_html(markdown, &config);
match result {
Ok(html) => {
println!(" โ
Successfully handled empty Markdown. Result: \n{}", html);
}
Err(e) => {
println!(" โ Failed to handle empty Markdown: {}", e);
}
}
Ok(())
}
fn invalid_markdown_example() -> HtmlResult<()> {
println!("\n๐ฆ Invalid Markdown Example");
println!("---------------------------------------------");
let markdown = "# Unclosed header\nSome **unclosed bold";
let config = HtmlConfig::default();
let result = generate_html(markdown, &config);
match result {
Ok(html) => {
println!(" โ
Successfully generated HTML from invalid Markdown: \n{}", html);
}
Err(e) => {
println!(" โ Failed to handle invalid Markdown: {}", e);
}
}
Ok(())
}
fn complex_markdown_example() -> HtmlResult<()> {
println!("\n๐ฆ Complex Markdown Example");
println!("---------------------------------------------");
let markdown = r#"
# Header
## Subheader
Some `inline code` and a [link](https://example.com).
```rust
fn main() {
println!("Hello, world!");
}
```
1. First item
2. Second item
"#;
let config = HtmlConfig::default();
let result = generate_html(markdown, &config);
match result {
Ok(html) => {
println!(
" โ
Successfully generated complex HTML: \n{}",
html
);
}
Err(e) => {
println!(" โ Failed to handle complex Markdown: {}", e);
}
}
Ok(())
}
fn markdown_conversion_error_example() -> HtmlResult<()> {
println!("\n๐ฆ Markdown Conversion Error Example");
println!("---------------------------------------------");
let markdown = "# Invalid Markdown with an unhandled case";
let result = markdown_to_html_with_extensions(markdown);
match result {
Ok(_) => {
println!(" โ Unexpected success in converting invalid Markdown");
}
Err(e) => {
println!(" โ
Successfully caught Markdown Conversion Error: {}", e);
}
}
Ok(())
}