diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 49f10003..efea8172 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -1,12 +1,28 @@
+# Site specific:
site_name: 'Docker Mailserver'
site_description: 'A fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) using Docker.'
site_author: 'docker-mailserver (Github Organization)'
+copyright: '
© Docker Mailserver Organization
This project is licensed under the MIT license.
'
+
+# Project source specific:
repo_name: 'docker-mailserver'
repo_url: 'https://github.com/docker-mailserver/docker-mailserver'
-copyright: '© Docker Mailserver Organization
This project is licensed under the MIT license.
'
+
+# All docs `edit` button will go to this subpath of the `repo_url`:
+# For versioned docs, this may be a little misleading for a user not viewing the `edge` docs which match the `master` branch.
edit_uri: 'edit/master/docs/content'
+
+# The main docs content lives here, any files will be copied over to the deployed version,
+# unless the file or directory name is prefixed with a `.`
docs_dir: 'content/'
-site_url: 'https://docker-mailserver.github.io/docker-mailserver'
+
+# Canonical URL (HTML content instructs search engines that this is where the preferred version of the docs is located, useful when we have duplicate content like versioned docs)
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs#using_%3Clink_relcanonical%3E
+# Also required for `sitemap.xml` generation at build time; which bots use to assist them crawling and indexing a website,
+# the `mkdocs-material` 'Instant Navigation' feature utilizes the sitemap data to work.
+site_url: 'https://docker-mailserver.github.io/docker-mailserver/edge'
+
+# Anything related to the `mkdocs-material` theme config goes here:
theme:
name: 'material'
favicon: assets/logo/favicon-32x32.png
@@ -18,6 +34,7 @@ theme:
- navigation.expand
- navigation.instant
+# We make some minor style adjustments or resolve issues that upstream `mkdocs-material` would not accept a PR for:
extra_css:
- assets/css/customizations.css
@@ -28,6 +45,7 @@ extra:
version:
provider: mike
+# Various extensions for `mkdocs` are enabled and configured here to extend supported markdown syntax/features.
markdown_extensions:
- toc:
anchorlink: true
@@ -35,6 +53,11 @@ markdown_extensions:
- attr_list
- admonition
- pymdownx.details
+ - pymdownx.superfences
+ - pymdownx.magiclink
+ - pymdownx.emoji:
+ emoji_index: !!python/name:materialx.emoji.twemoji
+ emoji_generator: !!python/name:materialx.emoji.to_svg
- pymdownx.highlight:
extend_pygments_lang:
- name: yml
@@ -53,12 +76,12 @@ markdown_extensions:
lang: txt
- name: caddyfile
lang: txt
- - pymdownx.superfences
- - pymdownx.magiclink
- - pymdownx.emoji:
- emoji_index: !!python/name:materialx.emoji.twemoji
- emoji_generator: !!python/name:materialx.emoji.to_svg
+# Hard-coded navigation list. Key(UI label): Value(relative filepath from `docs_dir`).
+# - If referencing a file more than once, the URLs will all point to the nav hierarchy of the last file reference entry. That usually breaks UX, try avoid it.
+# - The top-level elements are presented as tabs (due to `theme.features.navigation.tabs`).
+# - Nested elements appear in the sidebar (left) of each tabs page.
+# - 3rd level and beyond are automatically expanded in the sidebar instead of collapsed (due to `theme.features.navigation.expand`)
nav:
- 'Home': index.md
- 'Introduction': introduction.md