
语言 🇨🇳 简体中文
文档
入门
配置
向你的 Jekyll 站点添加评论
这是 FastComments 的官方 Jekyll 库。
在你的 Jekyll 站点中嵌入实时评论、聊天和评审小部件。
仓库
实时展示 
要在本地查看针对公共 demo 租户运行的所有标签,请克隆仓库并运行:
cd example
bundle install
bundle exec jekyll serve
每个小部件在 example/ 下都有自己的页面,你可以将其直接复制到你自己的 Jekyll 站点中。
快速开始 
在 _config.yml 中设置一次您的租户 ID:
fastcomments:
tenant_id: demo
然后在布局、文章或页面的任意位置添加一个标签以放置小部件:
{% raw %}{% fastcomments %}{% endraw %}
就这么简单。将 demo 替换为您的 FastComments 租户 ID(可在
设置 > API/SSO 中找到)。
标签 
| 标签 | 描述 |
|---|---|
fastcomments | 实时评论,支持回复、投票、审核和实时更新 |
fastcomments_comment_count | 当前页面的评论数量 |
fastcomments_comment_count_bulk | 用于列表/索引页上多个页面的评论数量 |
fastcomments_live_chat | 实时流式聊天小部件 |
fastcomments_collab_chat | 协作式内联评论(文本注释) |
fastcomments_image_chat | 图像注释评论 |
fastcomments_recent_comments | 整个站点的最新评论 |
fastcomments_recent_discussions | 最近活跃的讨论线程 |
fastcomments_reviews_summary | 星级评分汇总 |
fastcomments_top_pages | 讨论最多的页面 |
fastcomments_user_activity_feed | 每个用户的活动动态 |
示例
{% raw %}{# 评论数量。该小部件会自行渲染标签,例如 "0 comments" #}
{% fastcomments_comment_count %}
{# 实时聊天 #}
{% fastcomments_live_chat %}
{# 协作聊天。通过 CSS 选择器将其指向某个内容元素 #}
<article id="post-body">
<p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}
{# 图像聊天。通过 CSS 选择器将其指向某个图像元素 #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}
{# 评价摘要 #}
{% fastcomments_reviews_summary %}
{# 用户活动动态。需要一个用户 ID #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}
{# 博客索引页的批量评论计数 #}
{% for post in site.posts %}
<a href="\{{ post.url }}">\{{ post.title }}</a>
<span class="fast-comments-count" data-fast-comments-url-id="\{{ post.url }}"></span>
{% endfor %}
{% fastcomments_comment_count_bulk %}{% endraw %}
配置 
配置来自三个来源。较后的来源优先:
- 全局默认值 位于
_config.yml的fastcomments:键下。 - 页面上下文,为页面作用域的小部件自动派生(见下文)。
- 标签属性 写在标签自身上。
因此,标签上的 url_id 会覆盖页面派生值,而页面派生值会覆盖任何全局默认值。
属性语法
属性是以 snake_case 的 key=value 对:
{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
- 带引号的 值 (
"..."或'...') 是字面字符串。 - 不带引号的
true/false会成为布尔值,数字会成为数字。 - 不带引号的 其他任何内容会作为页面上下文中的 Liquid 变量解析,例如
url_id=page.slug。 (Liquid 不会在标签的属性内展开{% raw %}\{{ ... }}{% endraw %},因此请使用裸形式page.slug,而不是"{% raw %}\{{ page.slug }}{% endraw %}"。)
snake_case 的属性和配置键会被自动映射到 FastComments 所期望的 camelCase 键(tenant_id → tenantId,url_id → urlId,page_title → pageTitle,has_dark_background → hasDarkBackground,等等)。来自 小部件配置 的任何其他选项也会以相同方式直接传递。
页面派生值
对于页面作用域的小部件(fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat)这些值会自动从当前页面填充,除非您自行设置:
url_id←page.url(一个独立于访问域名的稳定标识符)url←site.url+page.url(仅当在_config.yml中设置了url时)page_title←page.title
站点范围的小部件(最近评论/讨论、热门页面、评论汇总、用户活动提要、批量计数)不与页面绑定,也不会派生这些值。
欧盟数据驻留
欧盟客户添加 region: eu,可全局设置:
fastcomments:
tenant_id: your-tenant-id
region: eu
或按标签设置:{% raw %}{% fastcomments region="eu" %}{% endraw %}。小部件随后将从欧盟 CDN 加载。
维护状态 
这些组件是我们核心 VanillaJS 组件的包装器。我们可以自动更新这些组件(修复错误、添加功能)而无需发布此库,因此即便它可能有一段时间未发布,也不代表 FastComments 并未处于积极开发中!欢迎查看我们的博客以获取更新。在未对本库进行版本提升的情况下,破坏性 API 更改或功能绝不会被发布到底层核心库。
需要帮助?
如果在使用 Jekyll 库时遇到任何问题或有疑问,请:
贡献
欢迎贡献!请访问 GitHub 仓库 获取贡献指南。