|
From: Andreas K. <an...@ka...> - 2018-12-03 18:19:31
|
OK. I figured out that it worked if I opened the file in binary mode
('wb'). But that made it more problematic to do what I intended, that is
add some html before the generated stuff. Something along the below. This
does not work, since it complaints that "TypeError: a bytes-like object is
required, not 'str'":
fd_html = open(htmlPath, 'w', encoding='utf-8')
fd_html.write('\n'.join([
'<!DOCTYPE html>',
'<html>',
'<head>',
' <meta charset="utf-8">',
' <title>My Title</title>\n',
' <link rel="stylesheet" href="%s">\n' % "../my.css",
'</head>\n'
]))
markdown.markdownFromFile(input=mdPath,
output=fd_html,
encoding='utf-8',
extensions=['markdown.extensions.tables',
'markdown.extensions.def_list',
'markdown.extensions.footnotes', 'markdown.extensions.fenced_code',
'markdown.extensions.codehilite', 'markdown.extensions.attr_list']
)
fd_html.close()
I admit that I am a beginner with python and python-markdown, so I realize
I might be doing beginner mistakes. Do you have a proposal for how I should
do the above?
/Andreas
mån 3 dec. 2018 kl 17:46 skrev Andreas Kågedal <an...@ka...>:
> Hi,
> I am probably doing something fundamentally wrong. I get a 'TypeError:
> write() argument must be str, not bytes' message when I use
> the markdown.markdownFromFile method when with an output file which I have
> already opened for writing:
>
> fd_html = open(htmlPath, 'w', encoding='utf-8')
>
> markdown.markdownFromFile(input=mdPath,
> output=fd_html,
> encoding='utf-8',
>
> extensions=['markdown.extensions.tables', 'markdown.extensions.def_list',
>
> 'markdown.extensions.footnotes', 'markdown.extensions.fenced_code',
>
> 'markdown.extensions.codehilite', 'markdown.extensions.attr_list']
> )
> fd_html.close()
>
> If I let markdown.markdownFromFile open it instead it works fine:
>
> markdown.markdownFromFile(input=mdPath,
> output=htmlPath ,
> encoding='utf-8',
>
> extensions=['markdown.extensions.tables', 'markdown.extensions.def_list',
>
> 'markdown.extensions.footnotes', 'markdown.extensions.fenced_code',
>
> 'markdown.extensions.codehilite', 'markdown.extensions.attr_list']
> )
>
> The reason I want to open it myself if that i need to insert some more
> html before the stuff generated by markdown.markdownFromFile.
>
> What am I doing wrong?
>
> /Andreas
>
|