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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx_cmd-0.5.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_cmd-0.5.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_cmd-0.5.0.tar.gz.

File metadata

  • Download URL: sphinx_cmd-0.5.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for sphinx_cmd-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c9741edf1987c8c6c2fd41c51cf56e25c0d739ec416c2fafc68e7f1ccf1a5815
MD5 c48624b20c324a3a1ad46ea79ca68c24
BLAKE2b-256 fc6ac64914a91a859f34d1069eecaf272b9fdd9969e9c94ce5c979bfa8272d3a

See more details on using hashes here.

File details

Details for the file sphinx_cmd-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: sphinx_cmd-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for sphinx_cmd-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff79083a799214606ee38d84106252efbd14ea732b3d0e1e8e2d0fbb1f3fd127
MD5 d4a3ac1f48391f8b8709cbe184a78c3e
BLAKE2b-256 fb2a8a555a4e8c8d1e179e201498987c7242c6657943a324bfc071644474b4b8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page