# serum_md v1.7.0 - Table of Contents

## Modules

- Entry Points
  - [Serum](Serum.md): Defines Serum OTP application.
  - [Serum.Build](Serum.Build.md): A module for managing the overall project build procedure.

  - [Serum.DevServer](Serum.DevServer.md): The Serum development server.

  - [Serum.DevServer.Prompt](Serum.DevServer.Prompt.md): Provides access to the Serum development server command line interface.

- Core Types
  - [Serum.File](Serum.File.md): Defines a struct representing a file to be read or written.
  - [Serum.Fragment](Serum.Fragment.md): Defines a struct representing a page fragment.
  - [Serum.Page](Serum.Page.md): Defines a struct describing a normal page.
  - [Serum.Post](Serum.Post.md): Defines a struct representing a blog post page.
  - [Serum.PostList](Serum.PostList.md): Defines a struct representing a list of blog posts.
  - [Serum.Project](Serum.Project.md): This module defines a struct for storing Serum project metadata.

  - [Serum.Result](Serum.Result.md): This module defines types for positive results or errors returned by
functions in this project.

  - [Serum.Tag](Serum.Tag.md): This module defines Tag struct.
  - [Serum.Template](Serum.Template.md): Defines a struct which stores a template and its information.

- Built-in Plugins
  - [Serum.Plugins.ActivityPub](Serum.Plugins.ActivityPub.md): A Serum plugin that generates ActivityPub / Fediverse endpoints:
- `/.well-known/webfinger` for Mastodon handle lookup (e.g. `@blog@yourdomain.com`).
- `/actor.json` for the ActivityStreams 2.0 Person/Service Actor profile.
- `/outbox.json` for the ActivityStreams 2.0 `OrderedCollection` of published blog posts.
  - [Serum.Plugins.LiveReloader](Serum.Plugins.LiveReloader.md): A Serum plugin that injects the live reloader script at the end of HTML files.
  - [Serum.Plugins.PreviewGenerator](Serum.Plugins.PreviewGenerator.md): A Serum plugin that generates preview texts of pages and blog posts.
  - [Serum.Plugins.RssGenerator](Serum.Plugins.RssGenerator.md): A Serum plugin that creates an RSS feed
  - [Serum.Plugins.SitemapGenerator](Serum.Plugins.SitemapGenerator.md): A Serum plugin that create a sitemap so that the search engine can index posts.
  - [Serum.Plugins.StandardSite](Serum.Plugins.StandardSite.md): A Serum plugin that enables Standard.site compliance and publishes blog posts
to AT Protocol (atproto) repositories.
  - [Serum.Plugins.TableOfContents](Serum.Plugins.TableOfContents.md): A Serum plugin that inserts a table of contents.

- AT Protocol Integration
  - [Serum.Atproto](Serum.Atproto.md): AT Protocol HTTP client for interacting with PDS (Personal Data Server) repositories.
Provides authentication and repository record creation/updating according to ATproto lexicons.

- Extension Development
  - [Serum.Plugin](Serum.Plugin.md): A behaviour that all Serum plugin module must implement.
  - [Serum.Theme](Serum.Theme.md): A behaviour that all Serum theme module must implement.

## Mix Tasks

- [mix serum](Mix.Tasks.Serum.md): Prints a list of available Serum tasks.
- [mix serum.build](Mix.Tasks.Serum.Build.md): Builds the Serum project at the specified directory.
- [mix serum.gen.page](Mix.Tasks.Serum.Gen.Page.md): Adds a new page to the current project.
- [mix serum.gen.post](Mix.Tasks.Serum.Gen.Post.md): Adds a new blog post to the current project.
- [mix serum.server](Mix.Tasks.Serum.Server.md): Starts the Serum development server.

