Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Documentation strategy and structure

This document is a high-level guide for maintainers and core contributors. It defines the structure, audience, and style for the Jupyter Book documentation.

Documentation Structure

The jupyterbook.org website is a unified site that aggregates content from multiple sources. This repository (jupyterbook.org) hosts the landing page and community content, while other sections are proxied from external sites via Netlify rewrites. Many top-level folders in our domain are hosted in other repositories, and proxied to jupyterbook.org with Netlify re-write rules.

Here are major sections and where to find them:

Topic Organization

Each topic-area (like authoring/ or execution/) should be categorized by the Diataxis framework. You can intermingle different categories of content on the same page, but don’t intermingle them in the same section within a page.

Pages are organized in a flat hierarchy within each topic folder, try not to nest them inside sub-folders unless really needed.

When to create topic-area landing pages

Create a [topic].md landing page when:

Don’t create landing pages for:

Example structure

Good structure following this guide:

docs/
├── index.md              # Main landing page
├── authoring.md          # Topic landing page
└── authoring/
    ├── mystmd.md         # Tutorial
    ├── create-content.md # How-to
    └── roles-and-directives.md # Reference

How can I tell what type of content I’m adding?

Use the Diataxis compass to decide what type of content you’re adding. Here’s the key table they recommend:

If the content……and serves the user’s……then it must belong to…
informs actionacquisition of skilla tutorial
informs actionapplication of skilla how-to guide
informs cognitionapplication of skillreference
informs cognitionacquisition of skillexplanation

Development Workflow

Building the documentation

The Jupyter Book repository includes a noxfile.py with commands for building and previewing the documentation:

Build static HTML:

nox -s docs

Start live development server:

nox -s docs-live

The live server will automatically rebuild pages as you edit them, making it easy to preview your changes.

Style