Jekyll的静态评论系统

时间:2015-11-16 09:02:43

标签: static jekyll jekyll-extensions

My blog目前运行JekyllMinimal Mistakes主题,并使用主题的内置功能添加Disqus评论系统。

这个基于JavaScript的评论系统对我来说有点挫败了在Jekyll中建立静态博客的目的,考虑到:

  1. 它的JavaScript会创建一个决定性的非静态页面。
  2. 评论不会与网站一起存储。
  3. 评论存储在某些数据库中,而不是平面文件中。
  4. 因此,我的问题是:什么是适合评论的系统尽可能接近Jekyll哲学(理想情况下是在gh-pages上运行)?

    我找到了几个可能的候选人:

    1. Isso是一个评论系统,看起来类似于Disqus,它适用于SQLite数据库
    2. Jekyll::StaticComments似乎非常合适,但这意味着您必须手动添加电子邮件中的评论。
    3. 还有其他选择吗?如果是这样,什么适用于gh-pages,以及什么可以在自托管的Jekyll博客上工作?

2 个答案:

答案 0 :(得分:14)

这是另一个动态且使用JavaScript的解决方案,但不会将评论存储在第三方提供商处:

This guy与Jekyll建立了一个静态网站,但使用GitHub的问题跟踪器来创建他的评论。
他使用GitHub Pages来托管他的博客,并且对于每个新帖子,他在他的博客存储库中创建了一个新问题。 然后,他使用JavaScript从GitHub API获取问题的评论并在页面上显示。

这是一篇博客文章,解释了如何进行设置:
GitHub hosted comments for GitHub hosted blogs

答案 1 :(得分:7)

是否加载了javascript,外部托管的评论系统"是否违背了目的"静态站点是一个意见问题。

对我来说,重点是能够将网站作为完全静态的资源托管,以利用缓存,CDN,分布式托管等。我已经看到了巨大的优势,并且外部托管我的评论并没有#39完全没有冲突。

话虽如此,这是一个有趣的问题。

Isso(如Disqus)在客户端使用JS 需要您必须管理的服务器端软件(基于Python),因此它似乎不再接近你的理想。

Jekyll :: StaticComments是正确的方向,但如果你有GitHub处理你的Jekyll网站,那么gh-pages不支持它(你当然可以自己生成静态网站然后在GitHub页面上托管它) )。

您还需要一种方法让用户提交评论,然后将这些评论放入可供生成过程使用的文件中(不一定通过您认为的电子邮件)。

所以你需要从某个地方,可能是电子邮件,可能还有另一个第三方托管应用程序(SimpleForm)收集评论。

然后您需要手动将它们放入YAML站点,重新生成,然后发布,或者,您可以为您的站点设置自动构建过程,这可以在可用时提取用户提交的内容并自动构建和发布。

除了通过场外媒体手动接受评论外,您还可以在某处处理动态内容。