提问人:Bastiaan Quast 提问时间:11/16/2015 最后编辑:Bastiaan Quast 更新时间:11/6/2016 访问量:5016
Jekyll 的静态评论系统 [已关闭]
Static Comments System for Jekyll [closed]
问:
我们不允许向读者、工具、软件库等寻求推荐的问题。您可以编辑问题,以便用事实和引文来回答。
7年前关闭。
我的博客目前运行 Jekyll 和 Minimal Mistakes 主题,并使用该主题的内置功能来添加 Disqus 评论系统。
在我看来,这个基于 JavaScript 的评论系统有点违背了在 Jekyll 中拥有静态博客的目的,考虑到:
- 它的 JavaScript 创建了一个决定性的非静态页面。
- 评论不会存储在网站上。
- 注释存储在某个数据库中,而不是纯文本文件中。
因此,我的问题是:什么是合适的评论系统,尽可能接近 Jekyll 哲学(理想情况下在 gh 页面上运行)?
我找到了几个可能的候选人:
- Isso 是一个看起来类似于 Disqus 的评论系统,它与 SQLite 数据库一起工作
- Jekyll::StaticComments 似乎很合适,但这意味着您必须手动添加电子邮件中的评论。
还有其他选择吗?如果是这样,什么适用于gh-pages,什么适用于自托管的Jekyll博客?
答:
加载了 javascript 的、外部托管的评论系统是否“违背了静态网站的目的”是一个见仁见智的问题。
对我来说,重点是能够将站点托管为完全静态的资源,以利用缓存、CDN、分布式托管等。我已经看到了这样做的巨大优势,并且外部托管我的评论完全不冲突。
话虽如此,这是一个有趣的问题。
Isso(像 Disqus 一样)在客户端使用 JS,并且需要您必须管理的服务器端软件(基于 Python),因此这似乎并不接近您的理想。
Jekyll::StaticComments 的方向是正确的,但如果 GitHub 处理 Jekyll 站点,则 gh-pages 不支持它(当然,您可以自己生成静态站点,然后将其托管在 GitHub Pages 上)。
您还需要一种让用户提交评论的方法,然后将这些评论放入可供生成过程使用的文件中(但不一定像您想象的那样通过电子邮件)。
因此,您需要从某个地方(可能是电子邮件)获取评论,也可能是另一个第三方托管的应用程序(可能是 SimpleForm)。
然后,您需要手动将它们放入 YAML 站点,重新生成,然后发布,或者,您可以为您的站点设置一个自动构建过程,该过程可以在可用时提取用户提交的内容并自动构建和发布。
除了通过场外媒体手动接受评论外,您还将在某个地方处理一些动态的东西。
评论
这是另一个解决方案,它是动态的,使用 JavaScript,但不将评论存储在第三方提供商处:
这家伙用 Jekyll 做了一个静态网站,但使用 GitHub 的问题跟踪器来创建他的评论。
他使用 GitHub Pages 来托管他的博客,对于每个新帖子,他都会在博客的存储库中创建一个新问题。
然后,他使用 JavaScript 从 GitHub API 获取问题的评论,并将其显示在页面上。
下面是一篇博客文章,其中解释了如何设置此功能:
GitHub 托管博客的 GitHub 托管评论
评论
_comments
_comments
评论