Summary
Rounds out #6: writing for the blog no longer feels like writing a tweet.
- Selecting the Blog target reveals a title field (heading-styled, 200-char cap); deselecting hides it
- The explicit title flows through publish and queue-save →
PublishContent.title/posts.title BlogServiceuses the explicit title verbatim and keeps the full text as the body (the first-line-as-title fallback still applies when no title is given)- Character limits already adapt per selected target, so blog-only posts get the 10,000-char ceiling automatically — no clamp changes needed
Known gap: scheduled blog posts publish via the queue path, which doesn't carry content yet, so they fall back to the first-line title. Noted for the queue-content follow-up.
Verification
- Live publish with explicit title → markdown frontmatter carries the title, body keeps all lines, post renders at
/blog/<slug> - In-browser: field toggles with the Blog provider, counter reads
0 / 10000when blog-only pickierclean,tsc --noEmitexit 0
Refs #6