[ANN] DocumenterLandingPage.jl, a VitePress-style landing page for Documenter.jl

I am happy to share DocumenterLandingPage.jl, a small Documenter.jl plugin that renders a VitePress-style landing page (hero plus emoji feature tiles) straight from the YAML frontmatter block a page carries in a @raw html directive.

Motivation

DocumenterCodeBlocks.jl has greatly improved the usability of Julia’s documentation, but it does not work together with DocumenterVitepress.jl. This package takes the parts of VitePress I care about (the home layout and its landing page) and makes them work with base Documenter.jl, where they compose cleanly with DocumenterCodeBlocks.jl.

What it does

The exact VitePress home layout, with hero, actions, and emoji feature tiles, all from one YAML frontmatter block.

Project Showcase

Why you might like it

  • CodeBlocks-ready: pair it with DocumenterCodeBlocks and use both in the same project.
  • Drop-in: your frontmatter block stays byte-for-byte as written; only its rendering is replaced by the hero and tiles.
  • Theme-adaptive: mirrors Documenter’s own theme palette, so the landing follows light, dark, and every catppuccin flavor. An optional image.dark swaps in a second hero image for dark themes.
  • Documenter.jl plugin: add it to your plugins list and the stylesheet is injected automatically, no assets= to configure.
  • No toolchain: no VitePress, no Node, no custom theme, just base Documenter.jl and a YAML block.

The whole integration

using Documenter
using DocumenterLandingPage
using DocumenterCodeBlocks  # optional

makedocs(
    sitename = "MyPackage.jl",
    format = Documenter.HTML(),
    plugins = [LandingPage(), CodeBlocks()],
)

Docs, a tutorial, and the full frontmatter schema reference live on the landing page.

Status

  • I put this together on a whim with heavy usage of AI. Expect some initial rough edges, but also expect them to be ironed out over time.
  • Layout should be working on both desktop and mobile now with a smooth transition between the two; thanks to @fredrikekre for the bug report.
  • Automerge approved so it should make it to general in a few days.
6 Likes