2020-07-22 13:37:14 +02:00
|
|
|
---
|
|
|
|
template: overrides/main.html
|
|
|
|
---
|
|
|
|
|
2020-07-22 11:57:41 +02:00
|
|
|
# Adding a comment system
|
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
Material for MkDocs allows to easily add the third-party comment system of your
|
|
|
|
choice to the footer of every page by using [theme extension]. As an example,
|
|
|
|
we'll be integrating [Disqus] a wildly popular comment provider, but others
|
|
|
|
can be integrate with the same principles
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-10-10 21:04:22 +02:00
|
|
|
[Disqus]: https://disqus.com/
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
## Customization
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
### Disqus integration
|
|
|
|
|
|
|
|
In order to integrate a third-party comment provider offering a JavaScript-based
|
|
|
|
solution, follow the guide on [theme extension], copy the contents from the
|
|
|
|
[`page-footer.html`][page-footer partial] partial and create a file
|
|
|
|
at the same location in the `overrides` folder:
|
|
|
|
|
|
|
|
=== ":octicons-file-code-16: overrides/partials/page-footer.html"
|
|
|
|
|
|
|
|
``` html
|
|
|
|
<!-- Add copied contents from original page-footer.html here -->
|
|
|
|
|
|
|
|
<!-- Get setting from mkdocs.yml, but allow page-level overrides -->
|
|
|
|
{% set disqus = config.extra.disqus %}
|
|
|
|
{% if page and page.meta and page.meta.disqus is string %}
|
|
|
|
{% set disqus = page.meta.disqus %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- Inject Disqus into current page -->
|
|
|
|
{% if not page.is_homepage and 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, '') }}" // (1)
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Set up for the first time */
|
|
|
|
if (typeof DISQUS === "undefined") {
|
|
|
|
var script = document.createElement("script")
|
|
|
|
script.async = true
|
|
|
|
script.src = "https://{{ disqus }}.disqus.com/embed.js"
|
|
|
|
script.setAttribute("data-timestamp", Date.now())
|
|
|
|
|
|
|
|
/* Inject script tag */
|
|
|
|
document.body.appendChild(script)
|
|
|
|
|
|
|
|
/* Set up on navigation (instant loading) */
|
|
|
|
} else {
|
|
|
|
DISQUS.reset({
|
|
|
|
reload: true,
|
|
|
|
config: disqus_config
|
|
|
|
})
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
{% endif %}
|
|
|
|
```
|
2020-07-22 13:37:14 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
1. Ensure you've set [`site_url`][site_url] in `mkdocs.yml`.
|
2020-07-23 15:34:43 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
=== ":octicons-file-code-16: mkdocs.yml"
|
2020-07-22 13:37:14 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
``` yaml
|
|
|
|
extra:
|
|
|
|
disqus: <shortname> # (1)
|
|
|
|
```
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
1. Add your Disqus [shortname] here.
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
[theme extension]: ../customization.md#extending-the-theme
|
|
|
|
[page-footer partial]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/page-footer.html
|
2021-10-10 21:04:22 +02:00
|
|
|
[shortname]: https://help.disqus.com/en/articles/1717111-what-s-a-shortname
|
2020-07-22 11:57:41 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
#### on a single page
|
2020-07-22 13:37:14 +02:00
|
|
|
|
2021-11-13 16:07:06 +01:00
|
|
|
When [Metadata] is enabled, Disqus can be enabled or disabled for a single page
|
2021-10-10 21:04:22 +02:00
|
|
|
with custom front matter. Add the following lines at the top of a Markdown file:
|
2020-07-23 15:34:43 +02:00
|
|
|
|
2021-10-10 21:04:22 +02:00
|
|
|
=== ":octicons-check-circle-fill-16: Enabled"
|
2020-07-22 13:37:14 +02:00
|
|
|
|
2021-05-30 15:59:13 +02:00
|
|
|
``` bash
|
2020-07-22 13:37:14 +02:00
|
|
|
---
|
|
|
|
disqus: <shortname>
|
|
|
|
---
|
2020-11-15 22:25:11 +01:00
|
|
|
|
2021-05-30 15:59:13 +02:00
|
|
|
# Document title
|
2020-11-15 22:25:11 +01:00
|
|
|
...
|
2020-07-22 13:37:14 +02:00
|
|
|
```
|
|
|
|
|
2021-10-10 21:04:22 +02:00
|
|
|
=== ":octicons-skip-16: Disabled"
|
2020-07-22 13:37:14 +02:00
|
|
|
|
2021-05-30 15:59:13 +02:00
|
|
|
``` bash
|
2020-07-22 13:37:14 +02:00
|
|
|
---
|
|
|
|
disqus: ""
|
|
|
|
---
|
2020-11-15 22:25:11 +01:00
|
|
|
|
2021-05-30 15:59:13 +02:00
|
|
|
# Document title
|
2020-11-15 22:25:11 +01:00
|
|
|
...
|
2020-07-22 13:37:14 +02:00
|
|
|
```
|
|
|
|
|
2021-10-10 21:04:22 +02:00
|
|
|
[Metadata]: extensions/python-markdown.md#metadata
|