Collections configuration in conf.py contents:
collections = {
"plugins": {
"driver": "jinja",
"source": "plugins.rst.jinja",
"data": {
"title": "Some title",
"plugins": plugins,
"projects": projects,
},
"target": "plugins.rst",
},
}
Output:
sphinx-build -b html doc build/html-doc
Running Sphinx v3.0.4
loading translations [ru]... done
Read in collections ...
plugins: Initialised
Clean collections ...
Executing collections ...
plugins: (JinjaDriver) Creating 1 file/s from Jinja template...
Traceback (most recent call last):
File ".../lib/python3.6/site-packages/sphinxcontrib/collections/drivers/jinja.py", line 122, in run
with open(target, 'w') as target_file:
IsADirectoryError: [Errno 21] Is a directory: '...doc/_collections/plugins.rst'
The issue is:
Collection constructor creates new directory for target:
|
os.makedirs(target, exist_ok=True) |
- but Jinja driver tries to write rendered contents to the same
target:
|
with open(target, 'w') as target_file: |
Collections configuration in
conf.pycontents:Output:
The issue is:
Collectionconstructor creates new directory fortarget:sphinx-collections/sphinxcontrib/collections/collections.py
Line 102 in 3c48b25
target:sphinx-collections/sphinxcontrib/collections/drivers/jinja.py
Line 122 in 3c48b25