On 9/25/2019 7:27 AM, Rhodri James wrote:
On 25/09/2019 12:04, Ulrich Goebel wrote:
Hello,
what I want:
I want a function which converts a markdown-formatted string to a
latex-formatted string
[snip]
I have a extern tool pandoc which does exactly what I want, but it
works on files. This tool is able to work as a pipe, so it uses
the standard input and standard outpu.
I was not familiar with pandoc, but it seems to be a major m to n (where
n > m) markup translator. https://pandoc.org/index.html
https://github.com/jgm/pandoc (search 'pandoc github') says "Pandoc is a
Haskell library for converting from one markup format to another, and a
command-line tool that uses this library. "
If you were writing in Haskell or if pandoc were written in Python or if
pandoc were wrapped as a Python library, you could use it as an
importable library. The third is true, as it is for so many useful
libraries written in other languages.
https://pypi.org/project/pypandoc/ (https://github.com/bebraw/pypandod)
(search 'python pandoc') says it can use an existing pandoc installation
or pandoc included with its Windows and Mac wheels (for pip install).
https://github.com/applecrazy/pyandoc is another wrapping.
One can write custom filters in Python (and other languages).
https://pandoc.org/scripting-1.12.html
https://github.com/jgm/pandocfilters
https://pypi.org/project/pandocfilters/
What I could do:
def markdown_to_latex (m : string)
write the string m to a file
call pandoc to work on that file
read the outputfile into the string l
return (l)
What would be nice:
I would like to avoid the extra steps writing an reading extern files.
subprocess is your friend here. Something like:
Short of using pypandoc or pyandoc, this is probably the best thing.
import subprocess
def mardown_to_latex(markdown_string):
latex = subprocess.run(cmd_string_for_pandoc,
input=markdown_string,
string=True,
capture_output=True)
return latex.output
The above is completely untested and not in the least bit robust, but
that's the area of the standard library you should be looking at.
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list