{"id":50467252,"url":"https://github.com/fastcomments/fastcomments-jekyll","last_synced_at":"2026-06-06T13:00:42.737Z","repository":{"id":361562237,"uuid":"1254787009","full_name":"FastComments/fastcomments-jekyll","owner":"FastComments","description":"Live Commenting System For Jekyll","archived":false,"fork":false,"pushed_at":"2026-06-01T03:15:25.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T08:26:26.947Z","etag":null,"topics":["comments","fastcomments","gem","jekyll","jekyll-plugin","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FastComments.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T02:14:19.000Z","updated_at":"2026-06-01T03:15:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/FastComments/fastcomments-jekyll","commit_stats":null,"previous_names":["fastcomments/fastcomments-jekyll"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/FastComments/fastcomments-jekyll","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastComments%2Ffastcomments-jekyll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastComments%2Ffastcomments-jekyll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastComments%2Ffastcomments-jekyll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastComments%2Ffastcomments-jekyll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FastComments","download_url":"https://codeload.github.com/FastComments/fastcomments-jekyll/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastComments%2Ffastcomments-jekyll/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33814312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comments","fastcomments","gem","jekyll","jekyll-plugin","ruby"],"created_at":"2026-06-01T08:02:19.304Z","updated_at":"2026-06-02T09:01:04.585Z","avatar_url":"https://github.com/FastComments.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fastcomments-jekyll\n\nA fast, full-featured live commenting widget for [Jekyll](https://jekyllrb.com), powered by [FastComments](https://fastcomments.com).\n\nAdds Liquid tags like `{% raw %}{% fastcomments %}{% endraw %}` that you drop straight into your templates and posts.\n\n## Live Demo\n\nTry every widget live at \u003chttps://fastcomments.com/commenting-system-for-jekyll\u003e.\n\n## Live Showcase\n\nTo see every tag running locally against the public `demo` tenant, clone the repo and run:\n\n```bash\ncd example\nbundle install\nbundle exec jekyll serve\n```\n\nEach widget has its own page under `example/` that you can copy straight into your own Jekyll site.\n\n## Install\n\n[![Gem](https://img.shields.io/gem/v/fastcomments-jekyll?logo=rubygems\u0026label=gem\u0026color=e9573f)](https://rubygems.org/gems/fastcomments-jekyll)\n\nAdd the gem to the `:jekyll_plugins` group in your site's `Gemfile`:\n\n```ruby\ngroup :jekyll_plugins do\n  gem \"fastcomments-jekyll\"\nend\n```\n\nThen:\n\n```bash\nbundle install\n```\n\n(Compatible with Jekyll 3.7+ and 4.x.)\n\n## Quick Start\n\nSet your tenant id once in `_config.yml`:\n\n```yaml\nfastcomments:\n  tenant_id: demo\n```\n\nThen add a tag wherever you want the widget, in a layout, a post, or a page:\n\n```liquid\n{% raw %}{% fastcomments %}{% endraw %}\n```\n\nThat's it. Replace `demo` with your FastComments tenant id (find it under\n[Settings \u003e API/SSO](https://fastcomments.com/auth/my-account/api)).\n\n## Tags\n\n| Tag | Description |\n| --- | --- |\n| `fastcomments` | Live commenting with replies, voting, moderation, and realtime updates |\n| `fastcomments_comment_count` | Comment count for the current page |\n| `fastcomments_comment_count_bulk` | Comment counts for many pages on one list/index page |\n| `fastcomments_live_chat` | Realtime streaming chat widget |\n| `fastcomments_collab_chat` | Collaborative inline commenting (text annotations) |\n| `fastcomments_image_chat` | Image annotation comments |\n| `fastcomments_recent_comments` | Recent comments across the site |\n| `fastcomments_recent_discussions` | Recently active discussion threads |\n| `fastcomments_reviews_summary` | Star-rating reviews summary |\n| `fastcomments_top_pages` | Most-discussed pages |\n| `fastcomments_user_activity_feed` | Per-user activity feed |\n\n### Examples\n\n```liquid\n{% raw %}{# Comment count. The widget renders its own label, e.g. \"0 comments\" #}\n{% fastcomments_comment_count %}\n\n{# Live chat #}\n{% fastcomments_live_chat %}\n\n{# Collab chat. Point it at a content element with a CSS selector #}\n\u003carticle id=\"post-body\"\u003e\n  \u003cp\u003eHighlight me to leave a comment.\u003c/p\u003e\n\u003c/article\u003e\n{% fastcomments_collab_chat target=\"#post-body\" %}\n\n{# Image chat. Point it at an image element with a CSS selector #}\n\u003cimg id=\"hero\" src=\"/hero.jpg\" alt=\"Hero image\"\u003e\n{% fastcomments_image_chat target=\"#hero\" %}\n\n{# Reviews summary #}\n{% fastcomments_reviews_summary %}\n\n{# User activity feed. Requires a user id #}\n{% fastcomments_user_activity_feed user_id=\"demo:demo-user\" %}\n\n{# Bulk comment counts for a blog index #}\n{% for post in site.posts %}\n  \u003ca href=\"{{ post.url }}\"\u003e{{ post.title }}\u003c/a\u003e\n  \u003cspan class=\"fast-comments-count\" data-fast-comments-url-id=\"{{ post.url }}\"\u003e\u003c/span\u003e\n{% endfor %}\n{% fastcomments_comment_count_bulk %}{% endraw %}\n```\n\n## Configuration\n\nConfig comes from three places. Later sources win:\n\n1. **Global defaults** in `_config.yml` under the `fastcomments:` key.\n2. **Page context**, derived automatically for page-scoped widgets (see below).\n3. **Tag attributes** written on the tag itself.\n\nSo a `url_id` on the tag overrides the page-derived value, which overrides any global default.\n\n### Attribute syntax\n\nAttributes are `key=value` pairs in `snake_case`:\n\n```liquid\n{% raw %}{% fastcomments url_id=\"my-stable-id\" readonly=true count=20 %}{% endraw %}\n```\n\n- **Quoted** values (`\"...\"` or `'...'`) are literal strings.\n- **Unquoted** `true`/`false` become booleans, and numbers become numbers.\n- **Unquoted** anything else is resolved as a Liquid variable from the page context, e.g.\n  `url_id=page.slug`. (Liquid does not expand `{% raw %}{{ ... }}{% endraw %}` inside a tag's\n  attributes, so use the bare `page.slug` form rather than `\"{% raw %}{{ page.slug }}{% endraw %}\"`.)\n\nSnake_case attribute and config keys are mapped automatically to the camelCase keys FastComments\nexpects (`tenant_id` → `tenantId`, `url_id` → `urlId`, `page_title` → `pageTitle`,\n`has_dark_background` → `hasDarkBackground`, and so on). Any other option from the\n[widget configuration](https://docs.fastcomments.com/guide-customizations-and-configuration.html)\npasses straight through the same way.\n\n### Page-derived values\n\nFor the page-scoped widgets (`fastcomments`, `fastcomments_comment_count`, `fastcomments_live_chat`,\n`fastcomments_collab_chat`, `fastcomments_image_chat`) these are filled in automatically from the\ncurrent page unless you set them yourself:\n\n- `url_id` ← `page.url` (a stable identifier independent of the visiting domain)\n- `url` ← `site.url` + `page.url` (only when `url` is set in `_config.yml`)\n- `page_title` ← `page.title`\n\nSite-wide widgets (recent comments/discussions, top pages, reviews summary, user activity feed,\nbulk count) are not tied to a page and do not derive these.\n\n### EU data residency\n\nEU customers add `region: eu`, either globally:\n\n```yaml\nfastcomments:\n  tenant_id: your-tenant-id\n  region: eu\n```\n\nor per tag: `{% raw %}{% fastcomments region=\"eu\" %}{% endraw %}`. Widgets then load from the EU CDN.\n\n## Links\n\n- [FastComments Documentation](https://docs.fastcomments.com)\n- [Customization \u0026 Configuration](https://docs.fastcomments.com/guide-customizations-and-configuration.html)\n- [Jekyll Documentation](https://jekyllrb.com/docs/)\n\n## License\n\nMIT\n\n## Maintenance Status\n\nThese components are wrappers around our core VanillaJS components. We can automatically update those components (fix bugs, add features) without publishing this library, so while it may not be published for a while that does not mean FastComments is not under active development! Feel free to check [our blog](https://blog.fastcomments.com/) for updates. Breaking API changes or features will never be shipped to the underlying core library without a version bump in this library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastcomments%2Ffastcomments-jekyll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastcomments%2Ffastcomments-jekyll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastcomments%2Ffastcomments-jekyll/lists"}