Checks syntax of reStructuredText and code blocks nested within it.
Project description
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 language] [--ignore-directives directives] [--ignore-roles roles] [--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, warning, error, severe, none (default: info) --ignore-language language, --ignore language comma-separated list of languages to ignore --ignore-directives directives comma-separated list of directives to ignore --ignore-roles roles comma-separated list of roles 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:
[rstcheck]
ignore_directives=one,two,three
ignore_roles=src,RFC
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rstcheck-1.3.1.tar.gz
.
File metadata
- Download URL: rstcheck-1.3.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c27b91102f09fd07617a88ac72d4d6a2d17414c32d767972d05cb6a0eaabb499 |
|
MD5 | 9f1999f020a1eb0926b248e6e6f7baee |
|
BLAKE2b-256 | 7ecf888baf43728a74d2bb63994ee1310a6d3c49aff384f3c17a00060b0d7e39 |