You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I noticed that I was getting this stack trace:
File "/Users/llwu/git/@llllvvuu/contributor-tools/github_issues/test.py", line 6, in <module>
markdown.convert("```python my_script.py\nprint('hello world')\n```")
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/__init__.py", line 111, in convert
return self.render(self.parse(text))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/__init__.py", line 131, in render
return r.render(parsed)
^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/renderer.py", line 71, in render
return self.render_children(element)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/renderer.py", line 85, in render_children
rendered = [self.render(child) for child in element.children] # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/renderer.py", line 85, in <listcomp>
rendered = [self.render(child) for child in element.children] # type: ignore
^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/renderer.py", line 70, in render
return render_func(element)
^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/ext/codehilite.py", line 40, in render_fenced_code
options.update(_parse_extras(getattr(element, "extra", None)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/ext/codehilite.py", line 30, in _parse_extras
return {k: json.loads(v) for part in line.split(",") for k, v in [part.split("=")]}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/llwu/.pyenv/versions/scripts/lib/python3.11/site-packages/marko/ext/codehilite.py", line 30, in <dictcomp>
return {k: json.loads(v) for part in line.split(",") for k, v in [part.split("=")]}
^^^^
ValueError: not enough values to unpack (expected 2, got 1)
while parsing the markdown of this GitHub issue. From this, I was able to create a minimal repro:
from marko import Markdown
markdown = Markdown(extensions=['codehilite'])
markdown.convert("```Error: Unable\n```")
What's happening here is that Marko thinks we are highlighting language Error: with options Unable.
In fact, I noticed something else; the example given in the docstring will also error by this same logic!
from marko import Markdown
markdown = Markdown(extensions=['codehilite'])
markdown.convert(```python my_script.py\nprint('hello world')\n```)
Indeed it does throw a ValueError. It should be python filename="my_script.py".
I have attached a PR which fixes this issue. It simply ignores tokens which are not of the form key=JSON
The text was updated successfully, but these errors were encountered:
llllvvuu
changed the title
ext/codehilite.py: Putting "``text like this" causes ValueError in _parse_extras`ext/codehilite.py: Putting "\\\text like this" causes ValueError in _parse_extras`
Jun 9, 2023
llllvvuu
changed the title
ext/codehilite.py: Putting "\\\text like this" causes ValueError in _parse_extras`ext/codehilite.py: Putting "``text like this" causes ValueError in _parse_extras`
Jun 9, 2023
llllvvuu
changed the title
ext/codehilite.py: Putting "``text like this" causes ValueError in _parse_extras`ext/codehilite.py: Putting "```text like this" causes ValueError in _parse_extras`
Jun 9, 2023
llllvvuu
changed the title
ext/codehilite.py: Putting "```text like this" causes ValueError in _parse_extras`ext/codehilite.py: Putting "```text like this" causes ValueError in _parse_extrasJun 9, 2023
llllvvuu
added a commit
to llllvvuu/marko
that referenced
this issue
Jun 9, 2023
Hi, I noticed that I was getting this stack trace:
while parsing the markdown of this GitHub issue. From this, I was able to create a minimal repro:
What's happening here is that Marko thinks we are highlighting language
Error:
with optionsUnable
.In fact, I noticed something else; the example given in the docstring will also error by this same logic!
Indeed it does throw a ValueError. It should be
python filename="my_script.py"
.I have attached a PR which fixes this issue. It simply ignores tokens which are not of the form
key=JSON
The text was updated successfully, but these errors were encountered: