<!-- Generated by Void for AI agents. -->
<!-- Site: Void Documentation -->
<!-- URL: https://rkriad585.github.io/mkdocs-void/plugins/integrations.md -->
<!-- Generated: 2026-09-10T14:47:04Z -->
<!-- Version: 0.2.0 -->

# Third-Party Integrations

Void works with the normal MkDocs plugin ecosystem. The recipes below are
drop-in: add the plugin to `plugins:` in `mkdocs.yml`, keep `- void`, and
the theme handles the rest. Every recipe on this page is built continuously by
the repository's Integrations CI job — if a recipe stops working, the check
fails.

## Plugin ordering

MkDocs runs plugins in the order they appear in `plugins:`. A few rules of
thumb:

1. Put `awesome-pages` **first** — it builds the navigation from folders and
   other plugins (and `section-index`) consume that nav.
2. Keep `search` early so later plugins can reference its output.
3. `git-revision-date-localized` and `git-authors` read your Git history, so
   they need a Git checkout (CI clones are fine).
4. `print-site` usually sits near the end — it renders every page into one
   combined document.
5. `void` last is always safe: the theme reads the `page.meta` that earlier
   plugins have written.

## mkdocs-git-revision-date-localized-plugin

Adds a real "Last updated" date from your Git history. Void renders it
natively — the footer's `theme.void.meta` block reads
`page.meta.git_revision_date_localized` and shows it with your configured
label.

> The plugin's internal id stays `git-revision-date-localized`, so the
> `plugins:` config below is unchanged.

```yaml
# mkdocs.yml
theme:
  name: void
  void:
    meta:
      enabled: true
      show_last_updated: true
      last_updated_label: "Last updated"
      date_source: auto   # auto | git | front_matter

plugins:
  - search
  - git-revision-date-localized:
      enabled: true
      fallback_to_build_date: true
      type: date
      enable_creation_date: false
  - void
```

- Install with `pip install mkdocs-git-revision-date-localized-plugin`.
- `auto` (default) prefers the Git date and falls back to the page's `date:`
  front matter; `git` uses only Git, `front_matter` ignores Git entirely.
- Without the plugin nothing breaks — the footer simply falls back to
  front matter or hides the row.

## mkdocs-glightbox

Adds a lightbox to your images. Void already ships a built-in vanilla
lightbox (`theme.void.content.typography.image_lightbox`, on by default), so
use `glightbox` instead only if you want its feature set — and turn the built-in
one off to avoid double handling:

```yaml
# mkdocs.yml
theme:
  name: void
  void:
    content:
      typography:
        image_lightbox: false

plugins:
  - search
  - glightbox:
      compact: false
      auto_caption: true
  - void
```

The built-in lightbox needs no JavaScript library and no extra pip install —
consider keeping it if you only need click-to-zoom.

## mkdocs-print-site-plugin

Renders a combined "print site" (single-page HTML you can save as PDF). The
generated page is rendered with the **active theme's own templates**, so a Void
site gets Void styling automatically:

```yaml
# mkdocs.yml
plugins:
  - search
  - print-site:
      add_to_navigation: true
      print_page_basename: print_page
  - void
```

The generated page lands at `print_page/index.html` and ships with the rest of
the site, so it works offline like every other Void page.

> Install with `pip install mkdocs-print-site-plugin` (the PyPI package is
> published under that name; the plugin id `print-site` used in `plugins:` is
> unchanged).

## mkdocs-section-index

Makes navigation *sections* clickable when the folder contains an index page
(`README.md` or `index.md`):

```yaml
# mkdocs.yml
nav:
  - Guide: guide/
  - Home: index.md

plugins:
  - search
  - section-index
  - void
```

```text
docs/
├── index.md
└── guide/
    ├── README.md   # section index page
    └── usage.md
```

> **Note:** section-index only *adapts* themes on its internal allowlist and
> logs a one-line warning for any other theme. Void' nav renders section
> pages natively (the section title becomes a clickable link that still nests
> its children), so the feature works — the warning is informational.

## mkdocs-table-reader-plugin

Reads table files straight into your pages from CSV or Markdown — handy for
keeping data in a single source file:

```yaml
# mkdocs.yml
plugins:
  - search
  - table-reader
  - void
```

```text
docs/
└── table_data.md   # a Markdown table
```

```markdown
<!-- in any page -->
{{ read_raw("docs/table_data.md") }}
```

The rendered table picks up Void table styling automatically
(`theme.void.content.tables`).

> Install with `pip install mkdocs-table-reader-plugin`.

## mkdocs-git-authors-plugin

Adds author information from your Git history to `page.meta.git_authors`:

```yaml
# mkdocs.yml
plugins:
  - search
  - git-authors:
      show_email_address: false
      enable_creation_date: false
  - void
```

Void passes `page.meta.git_authors` through untouched (it is the same
`page.meta` the theme reads elsewhere), so you can render it with your own
[custom head/footer injection](../getting-started/configuration.md). The
meta footer itself only shows the *date* — it does not show authors by design.

> Install with `pip install mkdocs-git-authors-plugin`.

## mkdocs-awesome-pages-plugin

Builds the navigation automatically from your folder structure (no explicit
`nav:`), with per-folder ordering and hiding through a `.pages` file:

```yaml
# mkdocs.yml
plugins:
  - awesome-pages:
      collapse_single_pages: true
      strict: false
  - search
  - section-index
  - void
```

```text
docs/
└── guide/
    ├── .pages        # order, title, and hidden entries
    ├── README.md
    └── usage.md
```

```yaml
# docs/guide/.pages
title: Guide
order: first
```

> Install with `pip install mkdocs-awesome-pages-plugin`.

## Verified in CI

`.github/workflows/integrations.yml` builds a project that uses **all seven**
recipes at once and asserts the results (rendered "Last updated" date, print
page, clean strict build, `void doctor` exit 0). See the
[Development page](../development.md) for how to run the same checks
locally.

<!-- End of markdown mirror. -->
