Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"We were unable to load Disqus." with jekyll's default minima theme

When setting up my personal blog with jekyll, I found that I cannot get the comments section shown. It kept telling me:

We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Relevant code: (For the complete code, please visit my repo: https://github.com/sunqingyao/sunqingyao.github.io)

_config.yml

disqus:
  shortname: sled-dog

_layouts/post.html

{% if site.disqus.shortname %}
  {% include disqus_comments.html %}
{% endif %}

disqus_comments.html

{% if page.comments != false and jekyll.environment == "production" %}

  <div id="disqus_thread"></div>
  <script>
    var disqus_config = function () {
      this.page.url = '{{ page.url | absolute_url }}';
      this.page.identifier = '{{ page.url | absolute_url }}';
    };
    (function() {
      var d = document, s = d.createElement('script');
      s.src = 'https://{{ site.disqus.shortname }}.disqus.com/embed.js';
      s.setAttribute('data-timestamp', +new Date());
      (d.head || d.body).appendChild(s);
    })();
  </script>
  <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
{% endif %}

I've read through the troubleshooting guide several times and checked every possible situation, but the comments are still not appearing.

A few things to note:

  1. I'm using minima, jekyll's default theme, and following its document.
  2. I've registered a Disqus account and verified email address.
  3. My website shortname is sled-dog.
  4. github.io has been added to "Trusted Domains".
like image 666
nalzok Avatar asked Jan 12 '17 12:01

nalzok


2 Answers

I'm surprised that the best answer is to disable discus.config.

If you have issues to enable disqus on your website with default jekyll theme, please check parameters.

_config.yml should include:

disqus: shortname: test-shortname

url: http://yourwebsite.com

JEKYLL_ENV should be set to "production"

export JEKYLL_ENV=production

That's all you need. Good luck.

like image 184
unuservize Avatar answered Nov 19 '22 20:11

unuservize


There is an error in the this.page.identifier variable.

It should contain the page's unique identifier, but it is currently setting the page's url: this.page.identifier = '{{ page.url | absolute_url }}';

You should change it to:

this.page.identifier = {{ site.disqus.shortname }}';

再见

  • Update

Surround var disqus_config with comment tags: /* var disqus_config = ...*/.

like image 21
marcanuy Avatar answered Nov 19 '22 20:11

marcanuy