# Sayfa v0.5.0 - Table of Contents

> A simple, extensible static site generator built in Elixir

## Pages

- [Sayfa](readme.md)
- [Changelog](changelog.md)
- [Contributing to Sayfa](contributing.md)
- [LICENSE](license.md)

## Modules

- [Sayfa.Blocks.TOC](Sayfa.Blocks.TOC.md): Table of contents block.
- [Sayfa.Builder.Result](Sayfa.Builder.Result.md): Result of a successful build.

- [Sayfa.Pagination.Page](Sayfa.Pagination.Page.md): A single page of paginated results.

- [Sayfa.TOC](Sayfa.TOC.md): Extracts table of contents from rendered HTML.
- [Sayfa.Tailwind](Sayfa.Tailwind.md): TailwindCSS integration for compiling theme styles.

- Core
  - [Sayfa](Sayfa.md): Sayfa — a simple, extensible static site generator built in Elixir.
  - [Sayfa.Builder](Sayfa.Builder.md): Orchestrates the full site build pipeline.
  - [Sayfa.Config](Sayfa.Config.md): Configuration handling for Sayfa sites.
  - [Sayfa.Content](Sayfa.Content.md): Content struct and parsing functions.
  - [Sayfa.Content.Raw](Sayfa.Content.Raw.md): Intermediate representation of parsed content before Markdown rendering.
  - [Sayfa.ContentType](Sayfa.ContentType.md): Registry and lookup functions for content types.
  - [Sayfa.Validator](Sayfa.Validator.md): Validates content front matter fields during build.

- Content Types
  - [Sayfa.ContentTypes.Article](Sayfa.ContentTypes.Article.md): Content type for articles.
  - [Sayfa.ContentTypes.Base](Sayfa.ContentTypes.Base.md): Base macro for content types.
  - [Sayfa.ContentTypes.Note](Sayfa.ContentTypes.Note.md): Content type for short notes.
  - [Sayfa.ContentTypes.Page](Sayfa.ContentTypes.Page.md): Content type for standalone pages.
  - [Sayfa.ContentTypes.Project](Sayfa.ContentTypes.Project.md): Content type for project showcases.
  - [Sayfa.ContentTypes.Talk](Sayfa.ContentTypes.Talk.md): Content type for conference talks and presentations.

- Templates &amp; Blocks
  - [Sayfa.Block](Sayfa.Block.md): Registry and lookup functions for blocks.
  - [Sayfa.Template](Sayfa.Template.md): EEx template rendering with three-layer composition.
  - [Sayfa.Theme](Sayfa.Theme.md): Theme loading and layout resolution with inheritance.

- Blocks
  - [Sayfa.Blocks.Analytics](Sayfa.Blocks.Analytics.md): Analytics tracking block.
  - [Sayfa.Blocks.Breadcrumb](Sayfa.Blocks.Breadcrumb.md): Back-link block with JSON-LD structured data.
  - [Sayfa.Blocks.CategoryCloud](Sayfa.Blocks.CategoryCloud.md): Category cloud block.
  - [Sayfa.Blocks.Cloud](Sayfa.Blocks.Cloud.md): Shared implementation for tag and category clouds.
  - [Sayfa.Blocks.CodeCopy](Sayfa.Blocks.CodeCopy.md): Code copy button block.
  - [Sayfa.Blocks.CopyLink](Sayfa.Blocks.CopyLink.md): Copy link button block.
  - [Sayfa.Blocks.Footer](Sayfa.Blocks.Footer.md): Site footer block.
  - [Sayfa.Blocks.Header](Sayfa.Blocks.Header.md): Site header block.
  - [Sayfa.Blocks.Helpers](Sayfa.Blocks.Helpers.md): Shared helper functions for blocks.
  - [Sayfa.Blocks.LanguageSwitcher](Sayfa.Blocks.LanguageSwitcher.md): Language switcher block.
  - [Sayfa.Blocks.ReadingTime](Sayfa.Blocks.ReadingTime.md): Reading time block.
  - [Sayfa.Blocks.RecentContent](Sayfa.Blocks.RecentContent.md): Dynamic recent content block.
  - [Sayfa.Blocks.RelatedContent](Sayfa.Blocks.RelatedContent.md): Related content block.
  - [Sayfa.Blocks.SocialLinks](Sayfa.Blocks.SocialLinks.md): Social links block.
  - [Sayfa.Blocks.TagCloud](Sayfa.Blocks.TagCloud.md): Tag cloud block.

- Features
  - [Sayfa.DateFormat](Sayfa.DateFormat.md): Locale-aware date formatting.
  - [Sayfa.Excerpt](Sayfa.Excerpt.md): Excerpt generation from content body.
  - [Sayfa.Feed](Sayfa.Feed.md): Generates Atom feeds from content.
  - [Sayfa.Hooks.ResponsiveImages](Sayfa.Hooks.ResponsiveImages.md): After-render hook that rewrites `<img>` tags to `<picture>` elements.
  - [Sayfa.I18n](Sayfa.I18n.md): Multilingual support using subdirectory-based language detection.
  - [Sayfa.Image](Sayfa.Image.md): Image helper functions for templates.
  - [Sayfa.Markdown](Sayfa.Markdown.md): Wrapper around MDEx for rendering Markdown to HTML.
  - [Sayfa.Pagination](Sayfa.Pagination.md): Pagination for content lists.
  - [Sayfa.ReadingTime](Sayfa.ReadingTime.md): Calculates estimated reading time from HTML content.
  - [Sayfa.SEO](Sayfa.SEO.md): Generates SEO meta tags for HTML pages.
  - [Sayfa.Sitemap](Sayfa.Sitemap.md): Generates XML sitemaps for search engine discovery.

- Behaviours
  - [Sayfa.Behaviours.Block](Sayfa.Behaviours.Block.md): Behaviour for defining reusable template blocks.
  - [Sayfa.Behaviours.ContentType](Sayfa.Behaviours.ContentType.md): Behaviour for defining content types.
  - [Sayfa.Behaviours.Hook](Sayfa.Behaviours.Hook.md): Behaviour for defining build pipeline hooks.

- Dev Server
  - [Sayfa.DevServer.Plug](Sayfa.DevServer.Plug.md): HTTP server plug for the Sayfa dev server.
  - [Sayfa.DevServer.Rebuilder](Sayfa.DevServer.Rebuilder.md): GenServer that manages debounced site rebuilds.
  - [Sayfa.DevServer.Supervisor](Sayfa.DevServer.Supervisor.md): Supervisor for the Sayfa dev server components.
  - [Sayfa.DevServer.Watcher](Sayfa.DevServer.Watcher.md): GenServer that watches the filesystem for content changes.

## Mix Tasks

- Mix Tasks
  - [mix sayfa.build](Mix.Tasks.Sayfa.Build.md): Builds the static site from content files.
  - [mix sayfa.clean](Mix.Tasks.Sayfa.Clean.md): Removes the build output directory.
  - [mix sayfa.gen.block](Mix.Tasks.Sayfa.Gen.Block.md): Generates a custom block module scaffold.
  - [mix sayfa.gen.content](Mix.Tasks.Sayfa.Gen.Content.md): Generates a new content file with front matter scaffolding.
  - [mix sayfa.gen.content_type](Mix.Tasks.Sayfa.Gen.ContentType.md): Generates a custom content type module scaffold.
  - [mix sayfa.gen.images](Mix.Tasks.Sayfa.Gen.Images.md): Scaffolds an image optimization pipeline into your project.
  - [mix sayfa.gen.lang](Mix.Tasks.Sayfa.Gen.Lang.md): Adds a new language to an existing Sayfa site.
  - [mix sayfa.gen.layout](Mix.Tasks.Sayfa.Gen.Layout.md): Copies a default layout to your project for customization.
  - [mix sayfa.new](Mix.Tasks.Sayfa.New.md): Generates a new Sayfa site project.
  - [mix sayfa.serve](Mix.Tasks.Sayfa.Serve.md): Starts a development server with live reload.
  - [mix sayfa.upgrade](Mix.Tasks.Sayfa.Upgrade.md): Upgrade your Sayfa site by syncing new theme files from the package.

