Added ability to override Disqus integration using metadata

This commit is contained in:
squidfunk 2018-02-11 19:04:29 +01:00 committed by Martin Donath
parent 25860b3bbf
commit e55a82b96c
7 changed files with 59 additions and 35 deletions

View File

@ -580,7 +580,7 @@ in your `mkdocs.yml`:
``` yaml ``` yaml
extra: extra:
disqus: 'mkdocs-material' disqus: 'your-shortname'
``` ```
The comments section is inserted on *every page, except the index page*. The comments section is inserted on *every page, except the index page*.

View File

@ -154,8 +154,8 @@
{% endblock %} {% endblock %}
{% endblock %} {% endblock %}
{% block disqus %} {% block disqus %}
{% if config.extra.disqus and not page.is_homepage %} {% if (config.extra.disqus and not page.is_homepage) or
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2> (page and page.meta and page.meta.disqus) %}
{% include "partials/integrations/disqus.html" %} {% include "partials/integrations/disqus.html" %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -1,3 +1,9 @@
{% set disqus = config.extra.disqus %}
{% if page and page.meta and page.meta.disqus is string %}
{% set disqus = page.meta.disqus %}
{% endif %}
{% if disqus %}
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
<div id="disqus_thread"></div> <div id="disqus_thread"></div>
<script> <script>
var disqus_config = function () { var disqus_config = function () {
@ -7,8 +13,9 @@
}; };
(function() { (function() {
var d = document, s = d.createElement("script"); var d = document, s = d.createElement("script");
s.src = "//{{ config.extra.disqus }}.disqus.com/embed.js"; s.src = "//{{ disqus }}.disqus.com/embed.js";
s.setAttribute("data-timestamp", +new Date()); s.setAttribute("data-timestamp", +new Date());
(d.head || d.body).appendChild(s); (d.head || d.body).appendChild(s);
})(); })();
</script> </script>
{% endif %}

View File

@ -17,7 +17,11 @@
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if config.extra.disqus and not page.is_homepage %} {% set disqus = config.extra.disqus %}
{% if page and page.meta and page.meta.disqus is string %}
{% set disqus = page.meta.disqus %}
{% endif %}
{% if disqus %}
<li class="md-nav__item"> <li class="md-nav__item">
<a href="#__comments" title="{{ lang.t('meta.comments') }}" class="md-nav__link md-nav__link--active"> <a href="#__comments" title="{{ lang.t('meta.comments') }}" class="md-nav__link md-nav__link--active">
{{ lang.t("meta.comments") }} {{ lang.t("meta.comments") }}

View File

@ -288,8 +288,8 @@
<!-- Disqus integration --> <!-- Disqus integration -->
{% block disqus %} {% block disqus %}
{% if config.extra.disqus and not page.is_homepage %} {% if (config.extra.disqus and not page.is_homepage) or
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2> (page and page.meta and page.meta.disqus) %}
{% include "partials/integrations/disqus.html" %} {% include "partials/integrations/disqus.html" %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -20,7 +20,15 @@
IN THE SOFTWARE. IN THE SOFTWARE.
--> -->
<!-- Set from config but allow override -->
{% set disqus = config.extra.disqus %}
{% if page and page.meta and page.meta.disqus is string %}
{% set disqus = page.meta.disqus %}
{% endif %}
<!-- Disqus integration --> <!-- Disqus integration -->
{% if disqus %}
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
<div id="disqus_thread"></div> <div id="disqus_thread"></div>
<script> <script>
var disqus_config = function () { var disqus_config = function () {
@ -30,8 +38,9 @@
}; };
(function() { (function() {
var d = document, s = d.createElement("script"); var d = document, s = d.createElement("script");
s.src = "//{{ config.extra.disqus }}.disqus.com/embed.js"; s.src = "//{{ disqus }}.disqus.com/embed.js";
s.setAttribute("data-timestamp", +new Date()); s.setAttribute("data-timestamp", +new Date());
(d.head || d.body).appendChild(s); (d.head || d.body).appendChild(s);
})(); })();
</script> </script>
{% endif %}

View File

@ -55,7 +55,11 @@
{% endif %} {% endif %}
<!-- Disqus integration --> <!-- Disqus integration -->
{% if config.extra.disqus and not page.is_homepage %} {% set disqus = config.extra.disqus %}
{% if page and page.meta and page.meta.disqus is string %}
{% set disqus = page.meta.disqus %}
{% endif %}
{% if disqus %}
<li class="md-nav__item"> <li class="md-nav__item">
<a href="#__comments" title="{{ lang.t('meta.comments') }}" <a href="#__comments" title="{{ lang.t('meta.comments') }}"
class="md-nav__link md-nav__link--active"> class="md-nav__link md-nav__link--active">