torchbox/wagtail-markdown

wagtail-markdown is incompatible with Markdown>3.3.7

muellmatto opened this issue ยท 8 comments

wagtail-markdown is incompatible with Markdown>3.3.7

@muellmatto can you please provide more info. For example, a full traceback, or any errors that you encounter

Dev note: https://python-markdown.github.io/change_log/release-3.4/ has the full list of changes

@zerolab I am attaching a full traceback below. Had the same issue.

Traceback
Internal Server Error: /guides/
devportal_2  | Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
  response = get_response(request)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 204, in _get_response
  response = response.render()
File "/usr/local/lib/python3.8/site-packages/django/template/response.py", line 105, in render
  self.content = self.rendered_content
File "/usr/local/lib/python3.8/site-packages/django/template/response.py", line 83, in rendered_content
  return template.render(context, self._request)
File "/usr/local/lib/python3.8/site-packages/django/template/backends/django.py", line 61, in render
  return self.template.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 170, in render
  return self._render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
  return self.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 150, in render
  return compiled_parent._render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
  return self.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 150, in render
  return compiled_parent._render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
  return self.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 150, in render
  return compiled_parent._render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
  return self.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 62, in render
  result = block.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 62, in render
  result = block.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py", line 315, in render
  return nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py", line 195, in render
  return template.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 172, in render
  return self._render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
  return self.nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py", line 315, in render
  return nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py", line 315, in render
  return nodelist.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 938, in render
  bit = node.render_annotated(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
  return self.render(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 988, in render
  output = self.filter_expression.resolve(context)
File "/usr/local/lib/python3.8/site-packages/django/template/base.py", line 698, in resolve
  new_obj = func(obj, *arg_vals)
File "/usr/local/lib/python3.8/site-packages/wagtailmarkdown/templatetags/wagtailmarkdown.py", line 21, in markdown
  return render_markdown(value)
File "/usr/local/lib/python3.8/site-packages/wagtailmarkdown/utils.py", line 27, in render_markdown
  markdown_html = _transform_markdown_into_html(text)
File "/usr/local/lib/python3.8/site-packages/wagtailmarkdown/utils.py", line 33, in _transform_markdown_into_html
  return markdown.markdown(smart_str(text), **_get_markdown_kwargs())
File "/usr/local/lib/python3.8/site-packages/markdown/core.py", line 386, in markdown
  md = Markdown(**kwargs)
File "/usr/local/lib/python3.8/site-packages/markdown/core.py", line 96, in __init__
  self.registerExtensions(extensions=kwargs.get('extensions', []),
File "/usr/local/lib/python3.8/site-packages/markdown/core.py", line 125, in registerExtensions
  ext.extendMarkdown(self)
devportal_2  | TypeError: extendMarkdown() missing 1 required positional argument: 'md_globals'

Thank you. Ok, doesn't look too bad. Will try to have a look in the next 1-2 days

@zerolab I think a quick fix for this might be to lock the version requirement for Python Markdown to 3.3.7

@tom9791 I thought I added a note about that. Yeah, on your builds you can lock it to 3.3.7 and it will continue to work

Just stumbled upon that as well. One thing that is definetly broken:
the current wagtail_markdown package depends on markdown.utils.etree, which was deprecated and removed in version 3.4 of markdown (Python-Markdown/markdown@a767b2d)

Guys, please pin markdown to version 3.3.7 in your requirements until we make a new release that handles all the deprecations etc.

@zerolab thanks for the update, watching this to go back to 3.4.x ๐Ÿ‘€