Skip to main content

Command-line tools for Sphinx documentation management

Project description

Sphinx-CMD

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

Installation

pip install sphinx-cmd

Commands

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

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

# Dry run to preview deletions
sphinx-cmd rm path/to/docs --dry-run

Features

  • Configure custom directives to be processed

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

# Preview the move without making changes
sphinx-cmd mv old-file.rst new-file.rst --dry-run

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

Features

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

Configuration

You can add custom directives to be processed by creating a .sphinx-cmd.toml file in your home directory.

Add your custom directives to [directives] with their respective regex patterns, for example:

[directives]
drawio-figure = "^\\s*\\.\\.\\s+drawio-figure::\\s+(.+)$"
drawio-image = "^\\s*\\.\\.\\s+drawio-image::\\s+(.+)$"

[!NOTE] Each regex pattern must include a capturing group (.+) to extract the file path.

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
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()

License

MIT License - see LICENSE file for details.

Project 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.3.0.tar.gz (16.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.3.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sphinx_cmd-0.3.0.tar.gz
  • Upload date:
  • Size: 16.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.3.0.tar.gz
Algorithm Hash digest
SHA256 261ed7153d640ccaa675209d7acd17f192ebaef7151bc1497b6ede0753acc6cb
MD5 df25fc4b6d2206386a70b1b5f56745c3
BLAKE2b-256 ae96dd7c650dba9b0c586a23a065277b0140f06194ba2ab7419232027ba5101a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sphinx_cmd-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9eadb64256cfb99b6100e970e6515816acd360c9a4d5e228894b8a2c6490253
MD5 268f948b793fd15274733623516c521b
BLAKE2b-256 8b1a060f0ebacb622af47e900d25848bda377b3462b733a7965d3610394066ac

See more details on using hashes here.

Supported by

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