Repository source: docs/concepts/post_presentation.md
Post presentation and visibility
Purpose: Present public contributions with existing author attribution, readable content and links to their source conversation.
Scenario: A Recent preview reuses shared author/time metadata and plain-text title/excerpt handling, then links to the thread, anchored to the reply; a post whose thread is unavailable links to its own page. Visible replies can remain readable after their thread root becomes unavailable; the preview does not expose excluded root text.
Signals: Every thread root and reply card carries one server-rendered line, Liked by a, b, c +N · Flagged by d · Title set by e, naming the reactions the score counts and the identity behind the current title; it is hidden when empty and identical for every viewer, and the viewer's own saved, counted reaction appends their name in place.
Sources: signals partial (source unavailable), signal actors (source unavailable), Recent entry (source unavailable), renderer metadata helpers (source unavailable), title handling (source unavailable), thread reader (source unavailable), Recent eligibility (source unavailable).
Boundary: Recent does not change attribution, approval, post deletion or retraction policy. Profile-history counting rules are not a public-contribution membership filter.
Thumbnails: on the board's list rows and Recent rows, a post with a stored attached image shows it as a small thumbnail as tall as the row, linking where the title does. The page's image references come from one lookup by post ID; a retracted post, a missing file, images turned off (FORUM_IMAGE_CONTENT_ENABLED), or list thumbnails turned off (FORUM_LIST_THUMBNAILS_ENABLED) show none. The whole image is shown, letterboxed rather than cropped. Rows link small cached copies (fitting 64 x 128 px, plus a 2x copy) at /images/thumbs/<sha256>-<size>.<ext> (1x, 2x), generated with GD on first request into <image root>-thumbs and served only while the original is present; without GD, or when the original is already that small, the original is used. Sources: list thumbnails (source unavailable), row thumbnail (source unavailable), thumbnail store (source unavailable).
Gallery: /gallery/ lists the same posts as Recent that carry a stored image, newest first, as tiles in justified rows that keep each image's proportions (clamped between 0.6 and 2.2). A tile shows a preview, the thread title and the thread's reply count, and opens the post in its thread. Previews are the thumbnail store's tile copies (fitting 480 x 480 px) at /images/thumbs/<sha256>-tile.<ext>, generated and served like row thumbnails. The page and its nav item follow FORUM_IMAGE_GALLERY_ENABLED, which requires image attachments. Sources: gallery (source unavailable), thumbnail store (source unavailable).
Formatting: full-post views render a post's body according to its recorded format (post body formatting); previews, quotes and titles always use plain words.