Skip to article frontmatterSkip to article content

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

Our documentation is organized into top-level sections based on audience. The docs/ directory contains folders that correspond directly to these top-level URL paths:

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
└── community/
    ├── community.md      # Individual page (no landing needed)
    └── ecosystem.md

Avoid:

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.

Repository structure

See CONTRIBUTING.md for complete development setup instructions.

Style