Describe the bug
Putting citation in list-table gives make man error
To Reproduce
Steps to reproduce the behavior:
install Package
$ pip install sphinx
$ sphinx-quickstart
Read result2.txt for details
Write the following code in index.rst.
test citation
=============
.. list-table::
:widths: 1
* - .. [title]
[title]_
make man , I get an error.Environment info
result2.txt is...
enviroment: 5.7.5-gentoo
$ python -V
Python 3.8.2
$ pip freeze
alabaster==0.7.12
Babel==2.8.0
certifi==2020.6.20
chardet==3.0.4
docutils==0.16
idna==2.10
imagesize==1.2.0
Jinja2==2.11.2
MarkupSafe==1.1.1
packaging==20.4
Pygments==2.6.1
pyparsing==2.4.7
pytz==2020.1
requests==2.24.0
six==1.15.0
snowballstemmer==2.0.0
Sphinx==3.1.1
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializingh
$ sphinx-quickstart -q -p test -a test -v 1
$ echo -e "test citation\n=============\n\n.. list-table::\n :widths: 1\n\n * - .. [title]\n\n[title]_" > index.rst
$ make html
$ make html
Running Sphinx v3.1.1
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] index looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index generating indices... genindexdone
writing additional pages... searchdone
copying static files... ... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.
The HTML pages are in _build/html.
$ make man
Running Sphinx v3.1.1
making output directory... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
writing... testcitation.1 { } failed
Exception occurred:
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/writers/manpage.py", line 478, in visit_citation
num, text = node.astext().split(None, 1)
ValueError: not enough values to unpack (expected 2, got 1)
The full traceback has been saved in /tmp/sphinx-err-4u1h2dj6.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [Makefile:20: man] Error 2
$ cat /tmp/sphinx-err-4u1h2dj6.log
# Sphinx version: 3.1.1
# Python version: 3.8.2 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.2
# Last messages:
# building [mo]: targets for 0 po files that are out of date
# building [man]: all manpages
# updating environment:
# 0 added, 0 changed, 0 removed
# looking for now-outdated files...
# none found
# writing...
# testcitation.1 {
# }
# failed
# Loaded extensions:
# sphinx.ext.mathjax (3.1.1) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/ext/mathjax.py
# sphinxcontrib.applehelp (1.0.2) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinxcontrib/applehelp/__init__.py
# sphinxcontrib.devhelp (1.0.2) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinxcontrib/devhelp/__init__.py
# sphinxcontrib.htmlhelp (1.0.3) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinxcontrib/htmlhelp/__init__.py
# sphinxcontrib.serializinghtml (1.1.4) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinxcontrib/serializinghtml/__init__.py
# sphinxcontrib.qthelp (1.0.3) from /home/usaturn/.venv/test/lib/python3.8/site-packages/sphinxcontrib/qthelp/__init__.py
# alabaster (0.7.12) from /home/usaturn/.venv/test/lib/python3.8/site-packages/alabaster/__init__.py
Traceback (most recent call last):
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/cmd/build.py", line 280, in build_main
app.build(args.force_all, filenames)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/application.py", line 348, in build
self.builder.build_update()
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 294, in build_update
self.build(['__all__'], to_build)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 361, in build
self.write(docnames, list(updated_docnames), method)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/util/__init__.py", line 725, in wrapper
return f(*args, **kwargs)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/builders/manpage.py", line 100, in write
docwriter.write(largetree, destination)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/writers/__init__.py", line 78, in write
self.translate()
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 45, in translate
self.document.walkabout(visitor)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/nodes.py", line 214, in walkabout
if child.walkabout(visitor):
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/nodes.py", line 214, in walkabout
if child.walkabout(visitor):
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/nodes.py", line 214, in walkabout
if child.walkabout(visitor):
[Previous line repeated 4 more times]
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/nodes.py", line 206, in walkabout
visitor.dispatch_visit(self)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/sphinx/util/docutils.py", line 468, in dispatch_visit
method(node)
File "/home/usaturn/.venv/test/lib/python3.8/site-packages/docutils/writers/manpage.py", line 478, in visit_citation
num, text = node.astext().split(None, 1)
ValueError: not enough values to unpack (expected 2, got 1)
It seems an empty citation definition hits the docutils' bug. I got the same error from this command:
$ echo '.. [title]' | rst2man.py --traceback
Traceback (most recent call last):
File "/Users/tkomiya/work/tmp/bin/rst2man.py", line 26, in <module>
publish_cmdline(writer=manpage.Writer(), description=description)
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/core.py", line 352, in publish_cmdline
output = pub.publish(
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/core.py", line 219, in publish
output = self.writer.write(self.document, self.destination)
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/writers/__init__.py", line 78, in write
self.translate()
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/writers/manpage.py", line 107, in translate
self.document.walkabout(visitor)
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/nodes.py", line 180, in walkabout
if child.walkabout(visitor):
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/nodes.py", line 172, in walkabout
visitor.dispatch_visit(self)
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/nodes.py", line 1900, in dispatch_visit
return method(node)
File "/Users/tkomiya/work/tmp/lib/python3.8/site-packages/docutils/writers/manpage.py", line 469, in visit_citation
num, text = node.astext().split(None, 1)
ValueError: not enough values to unpack (expected 2, got 1)
I post a patch to docutils' list: https://sourceforge.net/p/docutils/patches/168/
Please track this ticket.
Closing.