GitHub - DocuBook/docubook: DocuBook is a modern documentation platform for building, deploying, and managing your docs with ease.

DocuBook is a documentation web project designed to provide a simple and user-friendly interface for accessing various types of documentation. This site is crafted for developers and teams who need quick access to references, guides, and essential documents.

Features

  • Easy Navigation: Simple layout for quick navigation between pages.
  • Quick Search: Easily find documentation using a search function.
  • Responsive Theme: Responsive design optimized for devices ranging from desktops to mobile.
  • Markdown Content: Support for markdown-based documents.
  • SEO Friendly: Optimized structure for search visibility, enhancing accessibility on search engines.

Installation

command output

command output

Versioning & Release Workflow

This monorepo uses Changesets to manage versioning and releases for all packages (@docubook/cli, @docubook/core, @docubook/mdx-content, @docubook/docs-tree).

Managed Packages

Package Location npm
@docubook/cli packages/cli npm
@docubook/core packages/core npm
@docubook/mdx-content packages/mdx-content npm
@docubook/docs-tree packages/docs-tree npm

Version Bump Guide

Choose the bump type based on the nature of the change:

Type When to use Version example
patch Bug fixes and small changes that do not affect the API 1.0.01.0.1
minor New features that are backward-compatible 1.0.01.1.0
major Breaking changes — API is no longer backward-compatible 1.0.02.0.0

Workflow: Patch Release (bug fix)
# 1. Create a changeset — select the affected package(s) and choose "patch"
pnpm changeset

# 2. Commit the generated changeset
git add .changeset/
git commit -m "chore: add changeset for patch fix"

# 3. Apply version bumps and generate CHANGELOG
pnpm version-packages

# 4. Commit the version bump
git add .
git commit -m "chore: release patch"

# 5. Build and publish to npm
pnpm release

Workflow: Minor Release (new feature)
# 1. Create a changeset — select the affected package(s) and choose "minor"
pnpm changeset

# 2. Commit the generated changeset
git add .changeset/
git commit -m "chore: add changeset for new feature"

# 3. Apply version bumps and generate CHANGELOG
pnpm version-packages

# 4. Commit the version bump
git add .
git commit -m "chore: release minor"

# 5. Build and publish to npm
pnpm release

Workflow: Major Release (breaking change)
# 1. Create a changeset — select the affected package(s) and choose "major"
pnpm changeset

# 2. Commit the generated changeset
git add .changeset/
git commit -m "chore: add changeset for breaking change"

# 3. Apply version bumps and generate CHANGELOG
pnpm version-packages

# 4. Commit the version bump
git add .
git commit -m "chore: release major"

# 5. Build and publish to npm
pnpm release

Workflow: Multi-package Release (multiple packages at once)

When a single change affects more than one package (e.g. @docubook/core and @docubook/mdx-content):

# 1. Run changeset — select ALL affected packages
#    You can choose a different bump type per package
pnpm changeset

# 2. Commit all generated changesets
git add .changeset/
git commit -m "chore: add changesets for multi-package release"

# 3. Apply all version bumps at once
pnpm version-packages

# 4. Commit all version changes
git add .
git commit -m "chore: release packages"

# 5. Build and publish all changed packages
pnpm release

Note

pnpm version-packages automatically updates internal dependency versions across packages (e.g. if @docubook/mdx-content depends on @docubook/core, its version reference will be updated accordingly).