Always pass text to markdown()
Review Request #10699 — Created Sept. 7, 2019 and discarded
Previously, we were passing a binary file to
render_markdown_from_file, but this won't fly in Python 3. It expects
a file opened with an encoding. However, Django does not let you specify
an encoding when opening a file from storage, so that solution is out.
We now just read the entire file into memory, decode it from UTF-8, and
then pass that to
markdown.markdown(), which returns text directly.
With this patch applied, text file attachments render correctly
in Review Board on Python 2.7, 3.5, 3.6, and 3.7.
What's the error you hit? I tried passing in a
inputand it handled it right.
Looking at the code, it attempts to do a
codecs.getreader()(input)if you pass it a file handle, and it only needs
.close(), both of which Django's
In my test, I was able to verify that
bytesnormally, but passing it into
unicodefine. This on Python 3.x.
Can you remove the blank lines at the end of the file?