kitian616 / jekyll-TeXt-theme

💎 🐳 A super customizable Jekyll theme for personal site, team site, blog, project, documentation, etc.
https://kitian616.github.io/jekyll-TeXt-theme/
MIT License
3.17k stars 2.57k forks source link

Feature request: Add staticman commenting system #49

Open maddovr opened 6 years ago

maddovr commented 6 years ago

I think a good number of people that choose a static site are not too happy with Disqus&co., as such since we have a great alternative like staticman, it's worth adding this feature. I'm personally working on it and might do a pull request, however that would happen only after I finish my exams(next month).

kitian616 commented 6 years ago

Looking forward to your pull request : )

With so many features, maybe I should work out a plugin system.

kitian616 commented 6 years ago

So no plugin system🙃( too complex for a theme ), but I change the _includes's directory structure. now the commenting systems are placed under the _include/comment-providers directory.

And also the next version would add a provider setting entry to comment, analytics and pageview settings in config.yml. That means the new settings is not compatibility to the former version...

maddovr commented 6 years ago

I'm still busy with my exams, which should finish around next week. Personally speaking I think a plugin system is another layer of complexity which would be a mess to both maintain and develop overtime, let alone this feature basically requires 2-3 html files with some Liquid, no reason to go as far as creating another superset on top of Jekyll. So about commenting systems:

Disqus

Pros

Cons

Staticman

Pros

Cons

I think that's about it, more or less. Gitalk requires you to have a Github account to post a comment, which is fine for developer oriented websites, but many aren't and the login barrier is always a bad thing imho for the general audience. Opinions? Or an alternative to staticman?

kitian616 commented 6 years ago

thx for the long analysis about commenting systems.

It's necessary to add support for a commenting system like "staticman".

VincentTam commented 5 years ago

I'm still busy with my exams, which should finish around next week. Personally speaking I think a plugin system is another layer of complexity which would be a mess to both maintain and develop overtime, let alone this feature basically requires 2-3 html files with some Liquid, no reason to go as far as creating another superset on top of Jekyll. So about commenting systems:

Disqus

Pros

  • Easy to install(literally 5 mins setup time)
  • Okay-ish spam detection(it mostly works)
  • No ads on no-profit websites
  • Free* (paid plans offer some nice features)
  • Allows Login through many services(Facebook, Twitter, etc...)

Cons

  • 3rd party host(Comments are owned by Disqus, there goes your privacy)
  • Bad performance(although it's lazy loaded, Disqus is still a snail compared to the whole website, which is the whole point about static websites)
  • Ads(if you have even a donation button on your website, you will get them)
  • Threads are *#@!(good luck keeping up with a nestled discussion on Disqus, it sucks, it's evil)
  • No theming(on free plans, you can't style Disqus to fit your theme/tastes)
  • Guest comments tend to be recognized as spam even when they're not

Staticman

Pros

  • Free and open source
  • Comments can be themed however you wish
  • Comments are static files, thus no need for javascript madness and loading from 3rd parties. It's fast
  • No login required(that's a big pro imho, because not everyone might want to register only for commenting something on a single website)
  • Fully integrated with Github(in manual moderation, comments are PRs to the site basically)
  • Comments can be styled using markdown(another big pro imho)

Cons

  • Setup is a bit involved(you have to set permission rights to staticbot in your repo, and you have to edit some stuff)
  • Moderation can be a problem(you can choose to approve every single comment manually, or let akimset recognize the spam, it generally works)
  • Notification emails need to be forwarded through third party services like Mailgun(which is capped at 10k emails per month on free plan, not a big issue for me tho)
  • As comments are static files linked to your repo, this can take its toll on building time, not by much however since they are basically text only files
  • Github only, at the time of writing Bitbucket and Gitlab are not supported

I think that's about it, more or less. Gitalk requires you to have a Github account to post a comment, which is fine for developer oriented websites, but many aren't and the login barrier is always a bad thing imho for the general audience. Opinions? Or an alternative to staticman?

@maddovr Detailed analysis :+1:. After a year of development, some points about Staticman have to be updated.

Pros

Cons