Skip to content

docs: Build an official documentation site and publish via GitHub Pages #122

Description

@ganow

Background

bdpy is distributed on PyPI, but there is virtually no official documentation that users or contributors can refer to. The README only covers installation and a brief introduction; to understand the API or usage of individual modules (bdata, dataform, dataset, ml, mri, recon, ...), one has to read the source directly.

This creates several problems:

  • High barrier to entry for new users
  • Public API boundaries are not visible from outside, making it hard to contribute
  • API changes across releases are difficult to communicate to users

Proposal

Build an official documentation site and publish it on GitHub Pages.

Proposed direction:

  • API reference: Auto-generate public API docs from docstrings for each module. Existing docstrings follow NumPy style, so the toolchain should respect that.
  • User guide / tutorials: Provide hand-written pages explaining core concepts (e.g. BData) and typical workflows.
  • Auto-deploy: GitHub Actions publishes the site automatically on every push to main.

Candidate toolchain (open to discussion):

  • Static site generator: MkDocs + Material theme
  • API generation: mkdocstrings (Python handler, NumPy style)
  • CI/CD: GitHub Actions deploying to the gh-pages branch

Sphinx is also a viable option, but MkDocs is preferred for its Markdown-based workflow, lower maintenance overhead, and lower barrier for contributors.

The existing docs/ directory contains a mostly empty Jekyll setup; rather than migrating it, starting fresh with a new structure seems cleaner.

Open Questions

  • Opinions on toolchain choices (MkDocs vs Sphinx, theme, etc.) are welcome
  • Whether to include examples/*.ipynb in the site (tentatively out of scope for now)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions