Jekyll 的静态评论系统
Static Comments System for Jekyll
My blog currently runs Jekyll and the Minimal Mistakes theme, and uses the theme's built in functionality to add the Disqus评论系统。
这个基于 JavaScript 的评论系统,对我来说有点违背了在 Jekyll 中拥有静态博客的目的,考虑到:
- 它的 JavaScript 创建了一个绝对非静态的页面。
- 评论不会与网站一起存储。
- 评论存储在某些数据库中而不是纯文本文件中。
因此,我的问题是:什么是尽可能接近 Jekyll 哲学的合适评论系统(理想情况下在 gh-pages 上运行)?
我找到了几个可能的候选人:
- Isso 是一个类似于 Disqus 的评论系统,它使用 SQLite 数据库
- Jekyll::StaticComments貌似挺合适的,不过这意味着你得手动添加邮件中的评论。
还有其他选择吗?如果是这样,什么适用于 gh-pages,什么适用于自托管的 Jekyll 博客?
静态站点的 javascript 加载、外部托管的评论系统 "defeats the purpose" 是否是一个见仁见智的问题。
对我来说,关键是能够将站点作为完全静态资源托管,利用缓存、CDN、分布式托管等。我已经看到了巨大的优势,并且外部托管我的评论没有'根本不冲突。
话虽如此,这是一个有趣的问题。
Isso(如 Disqus)在客户端使用 JS 并且 需要您必须管理的服务器端软件(Python),因此它不需要看起来这更接近你的理想。
Jekyll::StaticComments 的方向是正确的,但如果你有 GitHub 处理你的 Jekyll 站点(你当然可以自己生成静态站点,然后将其托管在GitHub 页)。
您还需要一种方式让用户提交评论,然后将这些评论放入生成过程可以使用的文件中(但不一定像您想象的那样通过电子邮件)。
因此您需要从某个地方获取评论,可能是电子邮件,也可能是另一个第三方托管应用程序(SimpleForm 可能)。
然后你需要手动将它们放入YAML站点,重新生成,然后发布,或者,你可以为你的站点设置一个自动构建过程,它可以在可用时拉取用户提交的内容并构建和发布自动。
除了通过站外媒体手动接受评论外,您还需要在某处处理一些动态的事情。
这是另一个动态解决方案,使用 JavaScript,但不在第 3 方提供商处存储评论:
This guy 使用 Jekyll 制作了一个静态网站,但使用 GitHub 的问题跟踪器来创建他的评论。
他使用 GitHub 页面来托管他的博客,并且对于每个新 post,他都会在他的博客存储库中创建一个新问题。
然后,他使用 JavaScript 从 GitHub API 获取问题的评论并将其显示在页面上。
这是一篇博客 post,其中介绍了如何进行设置:
GitHub hosted comments for GitHub hosted blogs
My blog currently runs Jekyll and the Minimal Mistakes theme, and uses the theme's built in functionality to add the Disqus评论系统。
这个基于 JavaScript 的评论系统,对我来说有点违背了在 Jekyll 中拥有静态博客的目的,考虑到:
- 它的 JavaScript 创建了一个绝对非静态的页面。
- 评论不会与网站一起存储。
- 评论存储在某些数据库中而不是纯文本文件中。
因此,我的问题是:什么是尽可能接近 Jekyll 哲学的合适评论系统(理想情况下在 gh-pages 上运行)?
我找到了几个可能的候选人:
- Isso 是一个类似于 Disqus 的评论系统,它使用 SQLite 数据库
- Jekyll::StaticComments貌似挺合适的,不过这意味着你得手动添加邮件中的评论。
还有其他选择吗?如果是这样,什么适用于 gh-pages,什么适用于自托管的 Jekyll 博客?
静态站点的 javascript 加载、外部托管的评论系统 "defeats the purpose" 是否是一个见仁见智的问题。
对我来说,关键是能够将站点作为完全静态资源托管,利用缓存、CDN、分布式托管等。我已经看到了巨大的优势,并且外部托管我的评论没有'根本不冲突。
话虽如此,这是一个有趣的问题。
Isso(如 Disqus)在客户端使用 JS 并且 需要您必须管理的服务器端软件(Python),因此它不需要看起来这更接近你的理想。
Jekyll::StaticComments 的方向是正确的,但如果你有 GitHub 处理你的 Jekyll 站点(你当然可以自己生成静态站点,然后将其托管在GitHub 页)。
您还需要一种方式让用户提交评论,然后将这些评论放入生成过程可以使用的文件中(但不一定像您想象的那样通过电子邮件)。
因此您需要从某个地方获取评论,可能是电子邮件,也可能是另一个第三方托管应用程序(SimpleForm 可能)。
然后你需要手动将它们放入YAML站点,重新生成,然后发布,或者,你可以为你的站点设置一个自动构建过程,它可以在可用时拉取用户提交的内容并构建和发布自动。
除了通过站外媒体手动接受评论外,您还需要在某处处理一些动态的事情。
这是另一个动态解决方案,使用 JavaScript,但不在第 3 方提供商处存储评论:
This guy 使用 Jekyll 制作了一个静态网站,但使用 GitHub 的问题跟踪器来创建他的评论。
他使用 GitHub 页面来托管他的博客,并且对于每个新 post,他都会在他的博客存储库中创建一个新问题。
然后,他使用 JavaScript 从 GitHub API 获取问题的评论并将其显示在页面上。
这是一篇博客 post,其中介绍了如何进行设置:
GitHub hosted comments for GitHub hosted blogs