From 36c33d9ce2d75b32e2216882613a4e9eccb15059 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 22 Feb 2026 09:40:19 +0000 Subject: [PATCH] Use full post body in AP notes, not just excerpt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Federated content has no character limit — use the complete plaintext body so followers see the full post in their timeline. Co-Authored-By: Claude Opus 4.6 --- bp/blog/ghost/ghost_sync.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/bp/blog/ghost/ghost_sync.py b/bp/blog/ghost/ghost_sync.py index 5780d40..25c00b2 100644 --- a/bp/blog/ghost/ghost_sync.py +++ b/bp/blog/ghost/ghost_sync.py @@ -1006,14 +1006,10 @@ def _build_ap_post_data(post, post_url: str, tag_objs: list) -> dict: if post.title: parts.append(f"

{html_escape(post.title)}

") - excerpt = post.custom_excerpt or post.excerpt or "" - if not excerpt and post.plaintext: - excerpt = post.plaintext[:500] - if len(post.plaintext) > 500: - excerpt = excerpt.rsplit(" ", 1)[0] + "\u2026" + body = post.plaintext or post.custom_excerpt or post.excerpt or "" - if excerpt: - for para in excerpt.split("\n\n"): + if body: + for para in body.split("\n\n"): para = para.strip() if para: parts.append(f"

{html_escape(para)}

")