{"slug": "i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic", "title": "I've made posting here with a companion thread on PopsicleBoat automatic", "summary": "A developer has automated posting blog entries with companion comment threads on PopsicleBoat, using a script that scaffolds a Hugo page bundle and a git commit hook to wire the thread URL into the post. The tooling, which relies on a POPSICLEBOAT_TOKEN and a template, was broken by writing this post but the gate now ignores fenced code.", "body_md": "[I've made posting here with a companion thread on PopsicleBoat automatic](/weblog/ive-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic/)\n\nI asked AI to draft this for me. I've edited it. Any surviving AI smells are my oversight.\n\nI have had scripts to make things easier for a while, but I’m writing now because I’ve wired them all together to make posting here with a companion PopsicleBoat comment thread easier than ever.\n\nIt’s basically one script with a few prompts. (I used it to create this post, for instance):\n\n```\nscripts/new-post\nTitle: I've made posting here with a companion thread on PopsicleBoat automatic\nSlug [ive-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic]:\nMedia for this post (scaffolds a page bundle)? [Y/n]: y\nDescription (meta/OG line; blank to fill in later): Automatic comment section for any new blog post here\nSummary (list-page line; blank to fill in later): I have scripts in place to start a fully connected blog post, complete with a companion comments section on PopsicleBoat\nCategories, comma-separated [Projects]: Projects\nTags, comma-separated (e.g. popsicleboat, hugo): popsicleboat, hugo\n\nCreated content/weblog/ive-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic/index.md — write the essay.\nCommitting it will prompt for its companion thread (empty space answer skips).\n```\n\nI’ll commit in a moment, and then name the companion thread. I (and you, if you’re reading) will see the result.\n\nThe main point of this is to demonstrate how easy it could be for you too, if you want it.\n\nMost of each is YAML quoting and error handling. The two bits are the actual idea.\n\nThe scaffold defaults to a Hugo page bundle, so a post always has somewhere to put images:\n\n```\nread -r -p \"Media for this post (scaffolds a page bundle)? [Y/n]: \" bundle\ncase $bundle in\n  [nN]*) post=\"content/weblog/$slug.md\" ;;\n  *) post=\"content/weblog/$slug/index.md\" ;;\nesac\n```\n\nAnd the commit hook re-stages the post after wiring the thread URL into it, which is why the thread arrives in the same commit instead of a follow-up:\n\n```\nif scripts/companion-thread \"$post\"; then\n  git add \"$post\"\nfi\n```\n\nOne caveat if you want to copy this: it leans on three things I set up once and forgot about. A `POPSICLEBOAT_TOKEN`\n\nin my shell, a `companion-thread.template.md`\n\nwritten in my own words that the command fills in per post, and `scripts/setup`\n\nhaving turned the git hooks on. Without those the scaffold still works, the hook just shrugs and tells you to wire the thread later.\n\nWorth admitting: writing this post broke the tooling it describes. Pasting the scaffold script in dragged along the review marker from its own comments, and the gate that keeps unreviewed copy off the site saw it and blocked the commit. Nothing to rewrite, the marker was the subject. The gate ignores fenced code now.", "url": "https://wpnews.pro/news/i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic", "canonical_source": "https://jva.lol/weblog/ive-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic/", "published_at": "2026-08-05 17:34:43+00:00", "updated_at": "2026-08-20 01:13:57.431561+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["PopsicleBoat", "Hugo"], "alternates": {"html": "https://wpnews.pro/news/i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic", "markdown": "https://wpnews.pro/news/i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic.md", "text": "https://wpnews.pro/news/i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic.txt", "jsonld": "https://wpnews.pro/news/i-ve-made-posting-here-with-a-companion-thread-on-popsicleboat-automatic.jsonld"}}