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
- ReactantServer.jl: Home · ReactantServer.jl
- DocumenterLandingPage.jl: Home · DocumenterLandingPage.jl
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.darkswaps 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.