Consolidate Utterances integration into single PR using Ferretosan/web-blog-comments#17
Merged
Ferretosan merged 2 commits intomainfrom Mar 21, 2026
Merged
Conversation
✅ Deploy Preview for ferretosan-web ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Copilot
AI
changed the title
[WIP] Resolve confusion from two existing PRs for Utterances integration
Consolidate Utterances integration into single PR using Ferretosan/web-blog-comments
Mar 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two conflicting Utterances PRs existed: #15 (wrong repo
Ferretosan/web, had CSS) and #16 (correct repoFerretosan/web-blog-comments, better JS, no CSS). Neither was a complete superset of the other. This PR merges both into one correct, complete implementation.Changes
js/markdown-parser.jsUTTERANCES_REPO = 'Ferretosan/web-blog-comments',UTTERANCES_THEME = 'photon-dark'injectUtterances(targetEl, postId)— builds<script>viacreateElement(survivesinnerHTMLpopup resets); usesdocument.titleswap for stable per-post issue mapping (blog/<filename>), restores onload/error#utterances-containerinside the existingsetTimeoutinloadBlogPost()so the widget mounts after the popup rendersstyle/popup.css#utterances-container:border-topseparator,width: 100%overrides to prevent Utterances iframe from overflowing the popupREADME.mdFerretosan/web-blog-commentswith install link for the Utterances GitHub AppSupersedes
Ferretosan/web)Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/graphqlWhat this PR had:
Why it is being closed:
Original prompt
Resolve confusion from two existing PRs created for Utterances integration in Ferretosan/web.
Task:
Acceptance:
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: i use starlink.
Assistant: Starlink is your internet provider, not your website host. For comments, what matters is where the site is hosted and whether you can run a small server.
Tell me which one you use:
What to do depending on your answer
loadBlogPost().Reply with the host (pick a number) and, if you have it, your site URL. Then I’ll give you the exact embed code to paste into
js/markdown-parser.js.User: netlify
Assistant: Netlify is a good fit for ad-free comments using a self-hosted system like Remark42 or Isso. Netlify will host your static site; the comments “server” must run somewhere else (a small VPS), then you embed it in your popup.
Recommended setup: Remark42 (no ads)
loadBlogPost()injs/markdown-parser.js.Patch (what to change in your repo)
Add a helper that appends a Remark42 widget to the post HTML, using the filename as a stable page id.
Then update
loadBlogPost():Important note about your current popup code
Many popup implementations set
innerHTML. Ifpopupwindowstart()usesinnerHTML, scripts inside the HTML string may not execute automatically. If that happens, the fix is to:<div id="remark42"></div>in the HTML, and<script>tags withdocument.createElement('script')after the popup opens.If you show me
js/popup.js(specificallypopupwindowstart()), I’ll tailor the embed so it works 100% with your popup.What you need to tell me
popupwindowstart()function fromjs/popup.jsso I can confirm whether inline scripts will run.User: im not spending a dime
Assistant: If you won’t spend any money, you cannot run a real “Disqus alternative” backend (Remark42/Isso/Commento) because they need a server you control.
So your realistic $0 options are:
Option A (best $0): Comments via GitHub Issues (no ads)
Works on Netlify + static site. Downsides: commenters need a GitHub account.
How it fits your code: after
popupwindowstart(html)you embed a small widget that shows/creates a GitHub Issue per post.Two ways:
This pull request was created from Copilot chat.
📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.