diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
index 9a838ee54..fff22529e 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -16,6 +16,8 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # full history so git-revision-date-localized can read last-modified dates
- uses: actions/setup-python@v5
with:
diff --git a/docs-requirements.txt b/docs-requirements.txt
index 99207a854..8bd08954a 100644
--- a/docs-requirements.txt
+++ b/docs-requirements.txt
@@ -2,6 +2,8 @@ mkdocs
mkdocs-get-deps
mkdocs-material
mkdocs-material-extensions
+mkdocs-callouts
+mkdocs-git-revision-date-localized-plugin
pymdown-extensions
mkdocstrings
mkdocstrings-python
diff --git a/docs/assets/biodiversity-banner.png b/docs/assets/biodiversity-banner.png
new file mode 100644
index 000000000..d75e9b55d
Binary files /dev/null and b/docs/assets/biodiversity-banner.png differ
diff --git a/docs/assets/cat.png b/docs/assets/cat.png
new file mode 100644
index 000000000..696b06d83
Binary files /dev/null and b/docs/assets/cat.png differ
diff --git a/docs/index.md b/docs/index.md
index 1c5ec287d..7c7c32419 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,16 +1,17 @@
---
-description: "PyTorch-Wildlife: open-source AI platform for wildlife monitoring. MegaDetector, MegaDetector-Acoustic, MegaDetector-Overhead, SPARROW Studio. pip install PytorchWildlife."
+title: "Microsoft Biodiversity: Open-Source Conservation AI Hub"
+description: "Microsoft AI for Good Lab's open-source conservation AI hub for biodiversity and wildlife monitoring: MegaDetector, PyTorch-Wildlife, SPARROW, and more."
tags:
+ - Microsoft biodiversity AI
+ - open source conservation AI
+ - wildlife monitoring AI tools
+ - AI for Good biodiversity
- MegaDetector
- - camera trap AI
- - wildlife detection
- PyTorch-Wildlife
- conservation AI
- - bioacoustics
- - overhead detection
---
-
+
Open-source AI for camera traps, bioacoustics, and wildlife monitoring
diff --git a/mkdocs.yml b/mkdocs.yml
index 79dd4d124..602039b18 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,6 +1,6 @@
site_name: Microsoft Biodiversity
site_url: https://microsoft.github.io/Biodiversity/
-site_description: "PyTorch-Wildlife — open-source AI for camera traps, bioacoustics, and wildlife monitoring. Includes MegaDetector, MegaDetector-Acoustic, MegaDetector-Overhead, and SPARROW Studio."
+site_description: "Microsoft AI for Good Lab Biodiversity hub: open-source conservation AI for wildlife monitoring. Home of MegaDetector, PyTorch-Wildlife, SPARROW, and MegaDetector-Acoustic."
docs_dir: docs
site_dir: site
repo_url: https://github.com/microsoft/Biodiversity
@@ -9,8 +9,9 @@ copyright: Copyright (c) 2023 Microsoft Corporation
theme:
name: material
- favicon: https://zenodo.org/records/15376499/files/cat.png
- logo: https://zenodo.org/records/15376499/files/cat.png
+ custom_dir: overrides
+ favicon: assets/cat.png
+ logo: assets/cat.png
icon:
menu: material/menu
alternate: material/translate
@@ -181,9 +182,14 @@ markdown_extensions:
plugins:
+ - callouts
- search
- meta
- tags
+ - git-revision-date-localized:
+ type: date
+ enable_creation_date: true
+ fallback_to_build_date: true
- mkdocstrings:
handlers:
python:
diff --git a/overrides/main.html b/overrides/main.html
new file mode 100644
index 000000000..5fb314235
--- /dev/null
+++ b/overrides/main.html
@@ -0,0 +1,106 @@
+{% extends "base.html" %}
+
+{#
+ Theme override for SEO structured data and a clean homepage
.
+ Schema is gated on page.file.src_path (unique per page, cannot be copied
+ between pages by accident) rather than a front-matter flag.
+
+ This is the cluster hub, so the homepage carries an Organization entity for
+ the Microsoft AI for Good Lab Biodiversity initiative plus an ItemList that
+ enumerates the sub-projects — the entity anchor that ties the cluster's five
+ documentation sites together for search engines. Interior pages carry a
+ BreadcrumbList. The pattern mirrors microsoft/MegaDetector/overrides/main.html.
+#}
+
+{% block htmltitle %}
+ {%- if page and page.file and page.file.src_path == "index.md" -%}
+ Microsoft Biodiversity: Open-Source AI for Conservation | AI for Good Lab
+ {%- else -%}
+ {{ super() }}
+ {%- endif -%}
+{% endblock %}
+
+{% block extrahead %}
+ {{ super() }}
+
+ {#- Open Graph / Twitter Card social metadata (per-page title/description, local share image) -#}
+ {%- set social_title = page.meta.title if page and page.meta and page.meta.title else (page.title if page and page.title else config.site_name) -%}
+ {%- set social_desc = page.meta.description if page and page.meta and page.meta.description else config.site_description -%}
+
+
+
+
+
+
+
+
+
+
+
+
+ {#- TODO(design): swap in a 1200x630 banner + add og:image:width/height when delivered -#}
+
+ {%- if page and page.file and page.file.src_path == "index.md" %}
+ {#- Homepage: a connected @graph. The page's main entity is the project
+ collection (CollectionPage -> ItemList), not the Lab itself; the Lab is
+ the publisher Organization. -#}
+
+ {%- endif %}
+
+ {%- if page and page.file and page.file.src_path != "index.md" and page.canonical_url %}
+ {#- Interior pages only: BreadcrumbList (no breadcrumb on the homepage) -#}
+
+ {%- endif %}
+{% endblock %}