frontmatter_gen

Module config

Source
Expand description

§Configuration Module

This module provides a robust and type-safe configuration system for the Static Site Generator. It handles validation, serialization, and secure management of all configuration settings.

§Features

  • Type-safe configuration management
  • Comprehensive validation of all settings
  • Secure path handling and normalization
  • Flexible Builder pattern for configuration creation
  • Serialization support via serde
  • Default values for optional settings

§Examples

Basic usage (always available):

use frontmatter_gen::config::Config;

let config = Config::builder()
    .site_name("My Blog")
    .site_title("My Awesome Blog")
    .build()?;

assert_eq!(config.site_name(), "My Blog");

With SSG features (requires “ssg” feature):

use frontmatter_gen::config::Config;

let config = Config::builder()
    .site_name("My Blog")
    .site_title("My Awesome Blog")
    .content_dir("content")      // Requires "ssg" feature
    .template_dir("templates")   // Requires "ssg" feature
    .output_dir("public")        // Requires "ssg" feature
    .build()?;

assert_eq!(config.site_name(), "My Blog");

To use SSG-specific functionality, enable the “ssg” feature in your Cargo.toml:

[dependencies]
frontmatter-gen = { version = "0.0.5", features = ["ssg"] }

Structs§

  • Builder for creating Config instances
  • Core configuration structure.

Enums§

  • Errors specific to configuration operations