Add explicit banner URLs to posts #268
No reviewers
Labels
No labels
activitypub
admin
api
architecture
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
content
database
deployment
design
dev-env
diagnostics
docs
documentation
email
enhancement
feature
federation
feed
health
homepage
implementation
integration
logging
mastodon
media
navigation
npm-packages
openapi
opengraph
packages
passkeys
preview
priority:high
priority:low
priority:medium
production
proof
proxy
public-routes
public-ui
release
safety
slug-api
slug-auth
slug-core
slug-federation
slug-media
slug-template
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
webauthn
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit!268
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/task-6617767a-post-banner-url"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add an explicit nullable banner URL to post persistence and API contracts, use it for template previews and article details, and map article/link import banner metadata without modifying Markdown content.
Task
Task: #task-6617767a
Changes
026_post_banner_url.sqland preserve camelCasebannerUrlacross post create, update, list, and detail API operations.bannerfiles to self-hosted media and store the resulting absolutebannerUrlwithout prepending Markdown images.banner_urlfrontmatter directly tobannerUrlwithout uploading remote media.og:image/Twitter metadata from explicit post banners.Testing
Checklist
./scripts/pre-pr.shpassesReview summary
The PR adds nullable post banner persistence and exposes it as the API's camelCase
bannerUrlfield consistently with existing API naming conventions. Article imports upload banners without changing Markdown content, link imports mapog_image_url, and templates no longer infer preview images from Markdown or source images. Migration, API, CLI, route, OpenAPI, and visual coverage is present. Local pre-PR checks, 27 visual tests, and Forgejo CI pass.Acceptance criteria
bannerUrlwithout inserting Markdown images.og_image_urlfrontmatter maps tobannerUrl.nulland continue to render.Blocking issues
Warnings
Verdict
Approved.
Review summary
The corrected PR uses the established naming boundaries consistently:
banner_urlfor persistence and link-import frontmatter, camelCasebannerUrlfor TypeScript/API objects,--banner-urlfor CLI flags, and standardog:image/Twitter tags only in generated HTML. Article imports upload local banners to self-hosted media; link imports preserve remote banner URLs without uploading. Local pre-PR checks, 27 visual tests, manual re-import, and Forgejo CI pass.Acceptance criteria
bannerUrlis backed by thebanner_urldatabase column and documented in OpenAPI.banner_urlfrontmatter maps directly to APIbannerUrl.bannerUrlrather than Markdown-image inference.nullvalues.Blocking issues
Warnings
Verdict
Approved.
Review summary
The final PR implements explicit post banners consistently across persistence, camelCase API contracts, CLI imports, and public templates. Follow-up import testing is addressed: self-hosted relative media paths become absolute post
bannerUrlvalues, deterministic article banner uploads replace existing media records safely, article detail pages render explicit banners, and link previews no longer include redundant CTA copy. The separate comprehensive Markdown-parser replacement remains tracked intask-9ce89ffarather than expanding this PR.Acceptance criteria
bannerUrlis backed by thebanner_urldatabase column and documented in OpenAPI.banner_urlfrontmatter maps directly to APIbannerUrl.bannerUrlrather than Markdown-image inference.nullvalues.Verification
./scripts/pre-pr.sh: passedBlocking issues
Warnings
Verdict
Approved.