Serum.Plugins.StandardSite (serum_md v1.7.0)

Copy Markdown View Source

A Serum plugin that enables Standard.site compliance and publishes blog posts to AT Protocol (atproto) repositories.

Features:

  • Generates /.well-known/site.standard.publication containing the AT-URI of the publication record.
  • Injects <link rel="site.standard.document" href="at://..."> tags in <head> for blog post HTML pages.
  • Publishes site.standard.publication and site.standard.document records to an AT Protocol PDS.

Usage in serum.exs:

%{
  plugins: [
    {Serum.Plugins.StandardSite,
     handle: "user.bsky.social",
     app_password: "xxxx-xxxx-xxxx-xxxx",
     pds: "https://bsky.social", # Optional, defaults to https://bsky.social
     publication_rkey: "self",   # Optional, defaults to "self"
     publish: true              # Optional, defaults to true if handle & app_password set
    }
  ]
}

Summary

Functions

Generates /.well-known/site.standard.publication file and publishes ATproto records.

Callback implementation for Serum.Plugin.description/0.

Callback implementation for Serum.Plugin.elixir/0.

Callback implementation for Serum.Plugin.implements/0.

Callback implementation for Serum.Plugin.name/0.

Injects <link rel="site.standard.document" href="..."> into post HTML pages.

Callback implementation for Serum.Plugin.serum/0.

Callback implementation for Serum.Plugin.version/0.

Functions

build_succeeded(src, dest, args)

Generates /.well-known/site.standard.publication file and publishes ATproto records.

description()

Callback implementation for Serum.Plugin.description/0.

elixir()

Callback implementation for Serum.Plugin.elixir/0.

implements()

Callback implementation for Serum.Plugin.implements/0.

name()

Callback implementation for Serum.Plugin.name/0.

rendered_page(file, args)

@spec rendered_page(Serum.File.t(), term()) :: {:ok, Serum.File.t()}

Injects <link rel="site.standard.document" href="..."> into post HTML pages.

serum()

Callback implementation for Serum.Plugin.serum/0.

version()

Callback implementation for Serum.Plugin.version/0.