html-generator

Crates.iohtml-generator
lib.rshtml-generator
version0.0.1
sourcesrc
created_at2024-10-07 19:38:27.789421
updated_at2024-10-07 19:38:27.789421
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
size216,329
Sebastien Rousseau (sebastienrousseau)

documentation

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

README

HTML Generator logo

HTML Generator (html-generator)

A Rust-based HTML generation and optimization library.

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

WebsiteDocumentationReport BugRequest FeatureContributing Guidelines

Overview

The html-generator is a 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.

Features

  • Markdown to HTML Conversion: Convert Markdown content to HTML with support for custom extensions.
  • Front Matter Extraction: Extract and process front matter from Markdown content.
  • Advanced Header Processing: Automatically generate id and class attributes for headers.
  • Table of Contents Generation: Create a table of contents from HTML content.
  • SEO Optimization: Generate meta tags and structured data (JSON-LD) for improved search engine visibility.
  • Accessibility Enhancements: Add ARIA attributes and validate against WCAG guidelines.
  • Performance Optimization: Minify HTML output and support asynchronous generation for large sites.
  • Flexible Configuration: Customize the HTML generation process through a comprehensive set of options.

Installation

Add this to your Cargo.toml:

[dependencies]
html-generator = "0.0.1"

Usage

Here's a basic example of how to use html-generator:

use html_generator::utils::{extract_front_matter, format_header_with_id_class, generate_table_of_contents};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Extract front matter
    let content = "---\ntitle: My Page\n---\n# Hello, world!\n\nThis is a test.";
    let content_without_front_matter = extract_front_matter(content)?;
    println!("Content without front matter:\n{}", content_without_front_matter);

    // Format header with ID and class
    let header = "<h2>Hello, World!</h2>";
    let formatted_header = format_header_with_id_class(header, None, None)?;
    println!("Formatted header:\n{}", formatted_header);

    // Generate table of contents
    let html = "<h1>Title</h1><p>Some content</p><h2>Subtitle</h2><p>More content</p>";
    let toc = generate_table_of_contents(html)?;
    println!("Table of contents:\n{}", toc);

    Ok(())
}

Documentation

For full API documentation, please visit docs.rs/html-generator.

Examples

To run the examples, clone the repository and use the following command:

cargo run --example example_name

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under either of

at your option.

Acknowledgements

Special thanks to all contributors who have helped build the html-generator library.

Commit count: 6

cargo fmt