Skip to main content

Style checker for Sphinx (or other) RST documentation

Project description

Doc8 is a opinionated style checker for rst (with basic support for plain text) styles of documentation.

QuickStart

pip install doc8

To run doc8 just invoke it against any doc directory:

$ doc8 coolproject/docs

Usage

Command line usage

$ doc8  -h

usage: doc8 [-h] [--config path] [--allow-long-titles] [--ignore code]
            [--no-sphinx] [--ignore-path path] [--max-line-length int]
            [-e extension] [-v]
            [path [path ...]]

Check documentation for simple style requirements.

What is checked:
    - invalid rst format - D000
    - lines should not be longer than 79 characters - D001
      - exception: line with no whitespace except in the beginning
      - exception: lines with http or https urls
      - exception: literal blocks
      - exception: rst target directives
    - no trailing whitespace - D002
    - no tabulation for indentation - D003
    - no carriage returns (use unix newlines) - D004

positional arguments:
  path                  path to scan for doc files (default: os.getcwd())

optional arguments:
  -h, --help            show this help message and exit
  --config path         user config file location (default: doc8.ini, tox.ini,
                        pep8.ini, setup.cfg)
  --allow-long-titles   allow long section titles (default: False)
  --ignore code         ignore the given errors code/codes
  --no-sphinx           do not ignore sphinx specific false positives
  --ignore-path path    ignore the given directory or file (globs are
                        supported)
  --max-line-length int
                        maximum allowed line length (default: 79)
  -e extension, --extension extension
                        check file extensions of the given type (default:
                        .rst, .txt)
  -v, --verbose         run in verbose mode

Ini file usage

Instead of using the CLI for options the following files will also be examined for [doc8] sections that can also provided the same set of options. If the --config path option is used these files will not be scanned for the current working directory and that configuration path will be used instead.

  • $CWD/doc8.ini

  • $CWD/tox.ini

  • $CWD/pep8.ini

  • $CWD/setup.cfg

An example section that can be placed into one of these files:

[doc8]

ignore_path=/tmp/stuff,/tmp/other_stuff
max_line_length=99
verbose=1

Note: The option names are the same as the command line ones but instead of dashes underscores are used instead (with the only variation of this being the no-sphinx option which from configuration file will be sphinx instead).

Option conflict resolution

When the same option is passed on the command line and also via configuration files the following strategies are applied to resolve these types of conflicts.

Option

Overrides

Merges

allow-long-titles

Yes

No

extension

No

Yes

ignore-path

No

Yes

ignore

No

Yes

max-line-length

Yes

No

sphinx

Yes

No

Note: In the above table the configuration file option when specified as overrides will replace the same option given via the command line. When merges is stated then the option will be combined with the command line option (for example by becoming a larger list or set of values that contains the values passed on the command line and the values passed via configuration).

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

doc8-0.4.2.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

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

doc8-0.4.2-py2.py3-none-any.whl (16.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file doc8-0.4.2.tar.gz.

File metadata

  • Download URL: doc8-0.4.2.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for doc8-0.4.2.tar.gz
Algorithm Hash digest
SHA256 47ff8c05a25e2bc7cc3bc7ccc5f0396620696fbce8fb3c734d67755682142c87
MD5 07d0a582c9919de255bc94a32a448e76
BLAKE2b-256 f44652db2e1f11783c32c0b0f688d87bd8c8c5f96e0dd269c5744b8d6c50c978

See more details on using hashes here.

File details

Details for the file doc8-0.4.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for doc8-0.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 907012ff89ae0600b0975008dcead4cfbd6a33f9aa75a9442bbfeab5bf938693
MD5 e708aca1ca66b5c644f2e9b310a52aa5
BLAKE2b-256 7f9eb76d4c1972d350fd8b2d2ce8259feb1e974ada64712c6f3b5e00a315f761

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