
Static Site Generator
Genesis is a versatile static site generator crafted in Swift, specifically designed to cater to individual needs rather than a one-size-fits-all solution. This tool excels in maintainability and customization, making it appealing for users who prioritize long-term flexibility over a quick setup. While it may not be the simplest option for beginners, Genesis provides a robust framework that empowers developers to fully control their content generation process.
With Genesis, users can leverage its procedural approach, allowing for straightforward function calls without the need for complicated rules or systems. It's an excellent choice for those who are looking for a generator that allows for deep customization and integration without the constraints of hardcoded features.
Flexible Content Loading: Define your own ContentLoaders for dynamic content, allowing you to load data from various sources like files, databases, or external CMS.
Markdown Compatibility: Utilize GenesisMarkdown, which maintains the Markdown tree until you're ready to generate HTML, providing opportunities for inspection and manipulation during the process.
Dynamic Page Instantiation: Use PageProvider to create instances of loaded content, such as blog posts, making it easy to manage multiple content types dynamically.
No Hardcoded Themes: Enjoy a clean slate with no predetermined themes or web dependencies, allowing you to fully customize your look and feel.
Simple HTML Generation: Generate HTML with ease, whether you prefer returning inline Swift interpolated strings, using templates, or employing typed Swift HTML libraries.
Accessibility to Context: Pages can access the Context, facilitating the creation of index pages or individual static pages with all necessary data.
No Declarative Complexity: The procedural nature supports a direct and unencumbered approach to site generation, letting you call functions as desired without any pre-defined steps.
Swift Package Integration: Easily include Genesis into your Swift projects by adding it as a dependency, streamlining your development workflow.
