PhoenixKit.Modules.Publishing.Web.Controller (phoenix_kit v1.7.71)

Copy Markdown View Source

Public post display controller.

Handles public-facing routes for viewing published posts with multi-language support.

URL patterns: /:language/:group_slug/:post_slug - Slug mode post /:language/:group_slug/:date/:time - Timestamp mode post /:language/:group_slug - Group listing

Architecture

This controller delegates to specialized submodules:

  • Routing - URL path parsing and segment building
  • Language - Language detection and resolution
  • SlugResolution - URL slug resolution and redirects
  • PostFetching - Post retrieval from cache/database
  • Listing - Group listing rendering and pagination
  • PostRendering - Post rendering and version handling
  • Translations - Translation link building
  • Fallback - 404 handling and smart fallback chain

Summary

Functions

Displays a post, group listing, or all groups overview.

Functions

show(conn, params)

Displays a post, group listing, or all groups overview.

Path parsing determines which action to take:

  • [] -> Invalid request (no group specified)
  • [group_slug] -> Group listing
  • [group_slug, post_slug] -> Slug mode post
  • [group_slug, date] -> Date-only timestamp (resolves to single post or first post)
  • [group_slug, date, time] -> Timestamp mode post