markdown-it-py
markdown-it-py copied to clipboard
Traceback when ending file with list and two empty lines
Describe the problem
Building a markdown file that ends with a bullet (or numbered) list and two (or more) spaces leads to a traceback:
- foo
- bar
The result is a traceback with no clear info on what is wrong. Just leaving two spaces in the middle of the document, or leaving only a single space works correctly.
Link to your repository or website
No response
Steps to reproduce
- Run sphinx + MyST-Parser on file with above structure.
- Traceback.
The version of Python you're using
3.9
Your operating system
Linux
Versions of your packages
No response
Additional context
Relevant parts of traceback:
# Sphinx version: 3.2.1
# Python version: 3.9.6 (CPython)
# Docutils version: 0.17.1 release
# Jinja2 version: 3.0.0
# [...]
# Loaded extensions:
# sphinx.ext.mathjax (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/mathjax.py
# sphinxcontrib.applehelp (1.0.2) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinxcontrib/applehelp/__init__.py
# sphinxcontrib.devhelp (1.0.2) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinxcontrib/devhelp/__init__.py
# sphinxcontrib.htmlhelp (1.0.3) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinxcontrib/htmlhelp/__init__.py
# sphinxcontrib.serializinghtml (1.1.4) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinxcontrib/serializinghtml/__init__.py
# sphinxcontrib.qthelp (1.0.3) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinxcontrib/qthelp/__init__.py
# alabaster (0.7.12) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/alabaster/__init__.py
# sphinx_multiversion (0.2) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx_multiversion/__init__.py
# sphinx.ext.autodoc.type_comment (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/autodoc/type_comment.py
# sphinx.ext.autodoc (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/autodoc/__init__.py
# sphinx.ext.napoleon (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/napoleon/__init__.py
# sphinx.ext.viewcode (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/viewcode.py
# sphinx.ext.todo (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/todo.py
# sphinx.ext.githubpages (3.2.1) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/ext/githubpages.py
# myst_parser (0.15.2) from /home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/myst_parser/__init__.py
Traceback (most recent call last):
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/cmd/build.py", line 280, in build_main
app.build(args.force_all, filenames)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/application.py", line 348, in build
self.builder.build_update()
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 297, in build_update
self.build(to_build,
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 311, in build
updated_docnames = set(self.read())
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 418, in read
self._read_serial(docnames)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 439, in _read_serial
self.read_doc(docname)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 479, in read_doc
doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/io.py", line 223, in read_doc
pub.publish()
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/docutils/core.py", line 217, in publish
self.document = self.reader.read(self.source, self.parser,
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/sphinx/io.py", line 128, in read
self.parse()
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/docutils/readers/__init__.py", line 78, in parse
self.parser.parse(self.input, document)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/myst_parser/sphinx_parser.py", line 56, in parse
tokens = parser.parse(inputstring, env)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/main.py", line 260, in parse
self.core.process(state)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/parser_core.py", line 33, in process
rule(state)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/rules_core/block.py", line 14, in block
state.md.block.parse(
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/parser_block.py", line 107, in parse
self.tokenize(state, state.line, state.lineMax)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/parser_block.py", line 77, in tokenize
if rule(state, line, endLine, False):
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/rules_block/list.py", line 272, in list_block
prevEmptyEnd = (state.line - startLine) > 1 and state.isEmpty(state.line - 1)
File "/home/griatch/Devel/Home/evennia/.vienv3.9/lib/python3.9/site-packages/markdown_it/rules_block/state_block.py", line 137, in isEmpty
return (self.bMarks[line] + self.tShift[line]) >= self.eMarks[line]
IndexError: list index out of range
Thanks for opening your first issue here! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out EBP's Code of Conduct. Also, please try to follow the issue template as it helps other community members to contribute more effectively.
If your issue is a feature request, others may react to it, to raise its prominence (see Feature Voting).
Welcome to the EBP community! :tada:
thanks, I will move this over to markdown-it-py, where the bug originates
Thanks for opening your first issue here! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out EBP's Code of Conduct. Also, please try to follow the issue template as it helps other community members to contribute more effectively.
If your issue is a feature request, others may react to it, to raise its prominence (see Feature Voting).
Welcome to the EBP community! :tada:
I cannot reproduce this report:
eslerm@kin:~$ cat foo.md
- foo
- bar
eslerm@kin:~$ markdown-it foo.md
<ul>
<li>foo</li>
<li>bar</li>
</ul>
eslerm@kin:~$ markdown-it -v
markdown-it-py [version 2.1.0]
Me neither, so possibly just from an old version