Project type contribution missing base type
contributes.project fragment declares no project.type, so the custom type falls back to the default base type.
Q-16-9 — Project type contribution missing base type
An extension’s
contributes.projectfragment declares noproject.type, so the custom type falls back to thedefaultbase type.
What this means
A custom project type builds on a built-in one. The extension says
which, by setting project.type inside its contributes.project
fragment:
contributes:
project:
project:
type: website # <- the base typeWhen that declaration is absent, Quarto has to assume something, and
it assumes default.
default means no project behavior: documents render individually,
with no navbar, no sidebar, no search, no site-wide navigation, and no
shared resource handling. An extension that provides website styling
but forgets the base type therefore produces a project that looks
website-shaped in its configuration and behaves like a bag of loose
documents.
The render succeeds, which is what makes this worth warning about — the symptom is missing navigation rather than an error.
Why this happens
- The nesting is easy to lose. The base type lives at
contributes.project.project.type—projectappears twice, and dropping the inner one is a natural slip. - An extension that only meant to contribute formats and picked up
a
contributes.projectfragment by accident. - A manifest trimmed down from a working example, with the base type removed as apparent duplication.
How to fix
This is a defect in the extension, not in your project. The fix is to
declare the base type in the extension’s _extension.yml:
title: Docs Site
version: 1.0.0
contributes:
project:
project:
type: website
format:
html:
theme: cosmo
toc: trueIf you do not maintain the extension, report it to its author. As a
local workaround, set the base behavior yourself in _quarto.yml,
since your own project configuration merges over the extension’s.