html-generator

Crates.iohtml-generator
lib.rshtml-generator
version
sourcesrc
created_at2024-10-07 19:38:27.789421
updated_at2024-12-01 22:15:09.644953
descriptionA robust Rust library designed for transforming Markdown into SEO-optimized, accessible HTML. Featuring front matter extraction, custom header processing, table of contents generation, and performance optimization for web projects of any scale.
homepagehttps://html-generator.co/
repositoryhttps://github.com/sebastienrousseau/html-generator
max_upload_size
id1400397
Cargo.toml error:TOML parse error at line 35, column 1 | 35 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Sebastien Rousseau (sebastienrousseau)

documentation

https://doc.html-generator.co/html_generator/

README

HTML Generator logo

HTML Generator (html-generator)

A comprehensive Rust library for transforming Markdown into optimised, accessible HTML.

Made With Love Crates.io lib.rs Docs.rs Codecov Build Status GitHub

WebsiteDocumentationReport BugRequest FeatureContributing Guidelines

Overview 🎯

The html-generator library simplifies the process of transforming Markdown into SEO-optimised, accessible HTML. This library provides tools for processing front matter, generating semantic headers, validating accessibility, and optimising performance for modern web applications.

Features ✨

Markdown to HTML Conversion

  • Standard and Custom Extensions: Supports GFM and extensible custom syntax.
  • Front Matter Parsing: Processes YAML/TOML/JSON front matter seamlessly.
  • Header Customisation: Generates semantic headers with custom IDs and classes.

SEO and Accessibility

  • SEO Utilities: Automatically generates meta tags and JSON-LD structured data.
  • Accessibility Enhancements: Validates against WCAG standards and supports ARIA attributes.
  • Semantic HTML: Ensures well-structured, readable markup.

Performance Optimisations

  • Asynchronous Processing: Handles large documents efficiently with async support.
  • HTML Minification: Reduces file sizes while maintaining functionality.
  • Lightweight: Optimised for minimal memory usage and fast execution.

Developer-Friendly

  • Configurable API: Extensively configurable options for flexible use cases.
  • Detailed Errors: Comprehensive error types for easier debugging.
  • Rich Documentation: Includes examples and detailed usage guides.

Installation 🚀

Add the following to your Cargo.toml:

[dependencies]
html-generator = "0.0.2"

Usage 💻

Basic Example

use html_generator::{generate_html, HtmlConfig};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = HtmlConfig::default();

    let markdown = "# Welcome to HTML Generator

This library makes HTML creation effortless.";
    let html = generate_html(markdown, &config)?;

    println!("Generated HTML:
{}", html);
    Ok(())
}

Advanced Example

use html_generator::{
    accessibility::validate_wcag,
    seo::{generate_meta_tags, generate_structured_data},
    HtmlConfig,
};

async fn advanced_example() -> Result<String, Box<dyn std::error::Error>> {
    let config = HtmlConfig::builder()
        .with_language("en-GB")
        .with_syntax_highlighting(true, Some("dracula".to_string()))
        .build()?;

    let markdown = "# Advanced Example

Features include syntax highlighting and WCAG validation.";
    let html = generate_html(markdown, &config)?;

    validate_wcag(&html, &config, None)?;
    let meta_tags = generate_meta_tags(&html)?;
    let structured_data = generate_structured_data(&html, None)?;

    Ok(format!("{}
{}
{}", meta_tags, structured_data, html))
}

Examples 💡

Run examples from the repository:

git clone https://github.com/sebastienrousseau/html-generator.git
cd html-generator
cargo run --example basic

Documentation 📚

Contributing 🤝

We welcome contributions of all kinds! Please read our Contributing Guidelines for instructions on:

  • Reporting issues
  • Requesting features
  • Submitting code

License 📜

This project is licensed under either of the following at your choice:

Acknowledgements 🙏

Heartfelt thanks to all contributors who have supported the development of html-generator.

Commit count: 53

cargo fmt