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 --- -![Biodiversity banner showing animals monitored by AI — camera traps, bioacoustics, and aerial detection — powered by PyTorch-Wildlife and MegaDetector](https://zenodo.org/records/20044680/files/Biodiversity_Banner.png) +![Microsoft Biodiversity banner showing wildlife monitored by AI across camera traps, bioacoustics, and aerial detection, powered by PyTorch-Wildlife and MegaDetector](assets/biodiversity-banner.png)
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" -%} + <title>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 %}