From e55a82b96cae8dc466076674b2032aac954c69d3 Mon Sep 17 00:00:00 2001 From: squidfunk <martin.donath@squidfunk.com> Date: Sun, 11 Feb 2018 19:04:29 +0100 Subject: [PATCH] Added ability to override Disqus integration using metadata --- docs/getting-started.md | 2 +- material/base.html | 4 +-- material/partials/integrations/disqus.html | 35 ++++++++++++-------- material/partials/toc.html | 6 +++- src/base.html | 4 +-- src/partials/integrations/disqus.html | 37 ++++++++++++++-------- src/partials/toc.html | 6 +++- 7 files changed, 59 insertions(+), 35 deletions(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index fcac49eb..13d23a34 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -580,7 +580,7 @@ in your `mkdocs.yml`: ``` yaml extra: - disqus: 'mkdocs-material' + disqus: 'your-shortname' ``` The comments section is inserted on *every page, except the index page*. diff --git a/material/base.html b/material/base.html index a1650e0a..428f38be 100644 --- a/material/base.html +++ b/material/base.html @@ -154,8 +154,8 @@ {% endblock %} {% endblock %} {% block disqus %} - {% if config.extra.disqus and not page.is_homepage %} - <h2 id="__comments">{{ lang.t("meta.comments") }}</h2> + {% if (config.extra.disqus and not page.is_homepage) or + (page and page.meta and page.meta.disqus) %} {% include "partials/integrations/disqus.html" %} {% endif %} {% endblock %} diff --git a/material/partials/integrations/disqus.html b/material/partials/integrations/disqus.html index 5f003ca4..666ca08c 100644 --- a/material/partials/integrations/disqus.html +++ b/material/partials/integrations/disqus.html @@ -1,14 +1,21 @@ -<div id="disqus_thread"></div> -<script> - var disqus_config = function () { - this.page.url = "{{ page.canonical_url }}"; - this.page.identifier = - "{{ page.canonical_url | replace(config.site_url, "") }}"; - }; - (function() { - var d = document, s = d.createElement("script"); - s.src = "//{{ config.extra.disqus }}.disqus.com/embed.js"; - s.setAttribute("data-timestamp", +new Date()); - (d.head || d.body).appendChild(s); - })(); -</script> +{% 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> + <script> + var disqus_config = function () { + this.page.url = "{{ page.canonical_url }}"; + this.page.identifier = + "{{ page.canonical_url | replace(config.site_url, "") }}"; + }; + (function() { + var d = document, s = d.createElement("script"); + s.src = "//{{ disqus }}.disqus.com/embed.js"; + s.setAttribute("data-timestamp", +new Date()); + (d.head || d.body).appendChild(s); + })(); + </script> +{% endif %} diff --git a/material/partials/toc.html b/material/partials/toc.html index f268ac0c..482d6798 100644 --- a/material/partials/toc.html +++ b/material/partials/toc.html @@ -17,7 +17,11 @@ </a> </li> {% 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"> <a href="#__comments" title="{{ lang.t('meta.comments') }}" class="md-nav__link md-nav__link--active"> {{ lang.t("meta.comments") }} diff --git a/src/base.html b/src/base.html index 092b6adc..edefba32 100644 --- a/src/base.html +++ b/src/base.html @@ -288,8 +288,8 @@ <!-- Disqus integration --> {% block disqus %} - {% if config.extra.disqus and not page.is_homepage %} - <h2 id="__comments">{{ lang.t("meta.comments") }}</h2> + {% if (config.extra.disqus and not page.is_homepage) or + (page and page.meta and page.meta.disqus) %} {% include "partials/integrations/disqus.html" %} {% endif %} {% endblock %} diff --git a/src/partials/integrations/disqus.html b/src/partials/integrations/disqus.html index f8a458e2..1cdfec83 100644 --- a/src/partials/integrations/disqus.html +++ b/src/partials/integrations/disqus.html @@ -20,18 +20,27 @@ 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 --> -<div id="disqus_thread"></div> -<script> - var disqus_config = function () { - this.page.url = "{{ page.canonical_url }}"; - this.page.identifier = - "{{ page.canonical_url | replace(config.site_url, "") }}"; - }; - (function() { - var d = document, s = d.createElement("script"); - s.src = "//{{ config.extra.disqus }}.disqus.com/embed.js"; - s.setAttribute("data-timestamp", +new Date()); - (d.head || d.body).appendChild(s); - })(); -</script> +{% if disqus %} + <h2 id="__comments">{{ lang.t("meta.comments") }}</h2> + <div id="disqus_thread"></div> + <script> + var disqus_config = function () { + this.page.url = "{{ page.canonical_url }}"; + this.page.identifier = + "{{ page.canonical_url | replace(config.site_url, "") }}"; + }; + (function() { + var d = document, s = d.createElement("script"); + s.src = "//{{ disqus }}.disqus.com/embed.js"; + s.setAttribute("data-timestamp", +new Date()); + (d.head || d.body).appendChild(s); + })(); + </script> +{% endif %} diff --git a/src/partials/toc.html b/src/partials/toc.html index 5a37edf1..7265119f 100644 --- a/src/partials/toc.html +++ b/src/partials/toc.html @@ -55,7 +55,11 @@ {% endif %} <!-- 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"> <a href="#__comments" title="{{ lang.t('meta.comments') }}" class="md-nav__link md-nav__link--active"> -- GitLab