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

Copy Markdown View Source

Public blog post display controller.

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

URL patterns: /:language/:blog_slug/:post_slug - Slug mode post /:language/:blog_slug/:date/:time - Timestamp mode post /:language/:blog_slug - Blog 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/filesystem
  • Listing - Blog 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 blog post, blog listing, or all blogs overview.

Functions

show(conn, params)

Displays a blog post, blog listing, or all blogs overview.

Path parsing determines which action to take:

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