The start was about starting

Almost two years ago I’ve started this project as an attempt of an alternative approach to teaching “advaned C++ facilities by the example of optional”. At that time I was mostly concerned with getting started at all - setting up reasonably well working blog-like web page can be quite challanging if you do it the first time.

I ended up with using GitHub Pages as may hosting solution basically because it is free and offers an easy to use git-based deployment system. The fact that GitHub Pages uses Jekyll as a Markdown-based static side generator is also quite nice as Markdown is a really well suited for the purposes of this project.

From the beginning on this project lagged a comment section below each post. The main reason I didn’t bother myself with setting up such a system was that I wanted to start. I didn’t want to waste more time with setting up such a comment system. My workaround for not having proper comment sections were these two sentences on the about page:

If you have any feedback, suggestions or critique, please feel free to create an issue on the github project page. You can also write me a mail.

That solution hasn’t been particularly awsome but was sufficient at the time. But now it’s time to change that.

Surveying potential solutions

There are at least three potential solutions out there:

  1. Probably the most widley used option is Disqus - a third party solution for comment systems. It requires commentors to make a accound at Disqus which I don’t particularly like. I would like to avoid for you guys to have to create another account just to comment at this page (although you might already have a Disqus account).
  2. Another option is utterance which uses Gitlab Issues for the comments. I instantly liked this solution as it comes quite close to my workaround but has the upside of showing the comment and “add comment” field right below the posts - which is really nice. Commenters need only their Github-Account to authorize the utterance app via GitHubs OAuth feature. Most readers of the project should have an GitHub-Account already, so that shouldn’t be that much of an issue.
  3. Last but not least there is Giscus which is basically like utterance but instead of relying on GitHub issues it relies on GitHub Discussions. GitHub Discussions are a relatively new feature fo GitHub; they basically act like an internet forum attached to an github project. As may other blogs or media outlets use forums as their comments system it seems only natural to me to use GitHub Discussions for hosting the comments to a blog hosted on github pages. This is the main reason I’ve decided to chose Giscus for this project.

Using Giscus with minima

I’m using a Jekyll theme called minima. Jekyll themes are really nice because you don’t need to design your blog by yourself; you can just setup Jekyll so that it uses a certain theme and you are ready to go.

Unfortunatly minima does only support Disqus out of the box as a commenting system. But luckly there is a PR on minimas github project which adds support for utterance and Giscus to minima. At the time of writing this post, this PR is unfortunatly not yet merged.

However, luckily Jekyll themes are usually highly customizable so that it is not that hard to introduce the feature to an existing project:

  1. Checkout the patched version of minima which includes this feature: https://github.com/YURLAK/minima.git
  2. Copy the following files from this repository to your project
    • _includes/comments.html
    • _layouts/base.html
    • _layouts/post.html
  3. Setup the comment system of your choice like discribed here.

Conclusion

So much for this little detour to the blog part of this project. I just wanted to explain

  1. Why I didn’t have comments sections here in this project in the first place and
  2. Why and how I ended up using Giscus for that.

I hope you find this new feature of the project appealing and that you make frequent use of it.