Skip to main content

Sphinx-CMD

A collection of command-line tools for managing Sphinx documentation.

PyPI version Downloads

Installation

pip install sphinx-cmd

Commands

The sphinx-cmd tool provides subcommands for different Sphinx documentation management tasks.

Global Options

Options that apply to all commands:

# Specify a context path (directory containing conf.py)
sphinx-cmd --context /path/to/docs COMMAND

# Dry run to preview changes without executing them
sphinx-cmd --dry-run COMMAND

# Process additional directives beyond defaults
sphinx-cmd --directives drawio-figure,drawio-image COMMAND

# Enable verbose output with detailed processing information
sphinx-cmd --verbose COMMAND

By default, sphinx-cmd will automatically detect the context of your documentation project by finding the nearest conf.py file in the directory tree.

sphinx-cmd rm

Delete unused .rst files and their unique assets (images, includes, etc) if not used elsewhere.

# Remove files and assets
sphinx-cmd rm path/to/docs

# Using global options
sphinx-cmd --dry-run --directives drawio-figure,drawio-image rm path/to/docs

Features

  • Configure custom directives to be processed
  • Only deletes unused unique assets in the provided context path

sphinx-cmd mv

Move/rename .rst files and automatically update all references to them.

# Move and update all references
sphinx-cmd mv old-file.rst new-file.rst

# Move to a different directory
sphinx-cmd mv chapter1.rst topics/chapter1.rst

# Move without updating references
sphinx-cmd mv old-file.rst new-file.rst --no-update-refs

# Using global options
sphinx-cmd --dry-run --directives drawio-figure mv old-file.rst new-file.rst

Features

  • Automatically updates toctree entries
  • Updates :doc: references
  • Updates include and literalinclude directives
  • Handles relative paths correctly
  • Preserves file relationships
  • Configure custom directives to be processed

Configuration

You can add custom directives to be processed in two ways:

1. Command Line

Use the --directives global option with any command to add custom directives for a single run:

sphinx-cmd --directives drawio-figure,drawio-image rm path/to/docs

2. Configuration File

Create a .sphinx-cmd.toml file in your home directory with your custom directives:

directives = [
  "drawio-figure",
  "drawio-image"
]

Command line directives will be combined with those in the configuration file and the built-in defaults.

Development

# Clone the repository
git clone https://github.com/yourusername/sphinx-cmd.git
cd sphinx-cmd

# Install in development mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linters
black sphinx_cmd tests
isort sphinx_cmd tests
flake8 sphinx_cmd tests
mypy sphinx_cmd

# Test the command
sphinx-cmd --help
sphinx-cmd rm --help
sphinx-cmd mv --help

Adding New Commands

The architecture is designed to make adding new commands easy:

  1. Create a new file in sphinx_cmd/commands/ (e.g., new_command.py)
  2. Implement an execute(args) function in your new file
  3. Import the command in sphinx_cmd/cli.py
  4. Add a new subparser for your command in create_parser()
  5. Create new tests (e.g., tests/test_new_command.py)

License

MIT License - see LICENSE file for details.

Metadata

Release files for sphinx-cmd 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sphinx-cmd 0.5.0
File Size Uploaded
sphinx_cmd-0.5.0.tar.gz 23.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sphinx-cmd 0.5.0
File Interpreter ABI Platform
sphinx_cmd-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 40.6 kB

Release files / sphinx_cmd-0.5.0.tar.gz

Download URL sphinx_cmd-0.5.0.tar.gz
Size 23.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c9741edf1987c8c6c2fd41c51cf56e25c0d739ec416c2fafc68e7f1ccf1a5815
BLAKE2b-256 checksum
How to use checksums
fc6ac64914a91a859f34d1069eecaf272b9fdd9969e9c94ce5c979bfa8272d3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / sphinx_cmd-0.5.0-py3-none-any.whl

Download URL sphinx_cmd-0.5.0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff79083a799214606ee38d84106252efbd14ea732b3d0e1e8e2d0fbb1f3fd127
BLAKE2b-256 checksum
How to use checksums
fb2a8a555a4e8c8d1e179e201498987c7242c6657943a324bfc071644474b4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page