Skip to main content

rstcheck

Build status

Checks syntax of reStructuredText and code blocks nested within it.

Installation

From pip:

$ pip install --upgrade rstcheck

Supported languages in code blocks

  • Bash

  • Doctest

  • C (C99)

  • C++ (C++11)

  • JSON

  • Python

  • reStructuredText

Examples

With bad Python syntax:

====
Test
====

.. code-block:: python

    print(
$ rstcheck bad_python.rst
bad_python.rst:7: (ERROR/3) (python) unexpected EOF while parsing

With bad C++ syntax:

====
Test
====

.. code-block:: cpp

    int main()
    {
        return x;
    }
$ rstcheck bad_cpp.rst
bad_cpp.rst:9: (ERROR/3) (cpp) error: 'x' was not declared in this scope

With bad syntax in the reStructuredText document itself:

====
Test
===
$ rstcheck bad_rst.rst
bad_rst.rst:1: (SEVERE/4) Title overline & underline mismatch.

Options

usage: rstcheck [-h] [--report level] [--ignore language] [--debug]
                [--version]
                files [files ...]

Checks code blocks in reStructuredText.

positional arguments:
  files              files to check

optional arguments:
  -h, --help         show this help message and exit
  --report level     report system messages at or higher than level; info, 1,
                     warning, 2, error, 3, severe, 4, none, 5 (default: info)
  --ignore language  comma-separated list of languages to ignore
  --debug            show output helpful for debugging
  --version          show program's version number and exit

Ignore languages

You can ignore checking of nested code blocks by language. Either use the command-line option --ignore or put a comment in the document:

.. rstcheck: ignore-language=cpp,python,rst

Configuration

If your project has custom roles and directives, you can specify them in the local configuration of the project. rstcheck looks for a file .rstcheck.cfg in the directory or ancestor directory of the file it is checking.

For example, consider a project with the following directory structure:

docs
├── foo
│   └── bar.rst
├── index.rst
└── .rstcheck.cfg

.rstcheck.cfg contains:

[roles]
ignore=src,RFC

[directives]
ignore=one,two,three

bar.rst contains:

Bar
===

:src:`hello_world.py`
:RFC:`793`

.. one::

   Hello

rstcheck will make use of the .rstcheck.cfg:

$ rstcheck docs/foo/bar.rst

Usage in Vim

To check reStructuredText in Vim using Syntastic:

let g:syntastic_rst_checkers = ['rstcheck']

Use as a module

rstcheck.check() yields a series of tuples. The first value of each tuple is the line number (not the line index). The second value is the error message.

>>> import rstcheck
>>> list(rstcheck.check('Example\n==='))
[(2, '(INFO/1) Possible title underline, too short for the title.')]

Note that this does not load any configuration as that would mutate the docutils registries.

Metadata

Release files for rstcheck 1.2

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

Source distribution (sdist)

Source distribution for rstcheck 1.2
File Size Uploaded
rstcheck-1.2.tar.gz 9.3 kB Details

Release files / rstcheck-1.2.tar.gz

Download URL rstcheck-1.2.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e90d6b408345bfe150bf4d5d80b5192b162ff2a19fff6aedde8efd057d756592
BLAKE2b-256 checksum
How to use checksums
808bae93f311205570efe48e185b56a66a2ca298e4836592df7a164d28444b23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

6.3.0

2 release files

6.2.5

2 release files

6.2.4

2 release files

6.2.3

2 release files

6.2.2

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.1.2

2 release files

6.1.1

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.0.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.1

1 release file

3.3

1 release file

3.2

1 release file

3.1

1 release file

3.0.1

1 release file

3.0

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

1.5.1

1 release file

1.5

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4

1 release file

1.3.1

1 release file

1.3

1 release file

1.2.1

1 release file

This release

1.2 This release

1 release file

1.1.1

1 release file

1.1

1 release file

1.0

1 release file

0.6

1 release file

0.5.1

1 release file

0.5

1 release file

0.4.1

1 release file

0.4

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

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