markdown.py
74 lines
| 2.3 KiB
| text/x-python
|
PythonLexer
/ utils / markdown.py
Jonathan Frederic
|
r10436 | """Markdown utilities | |
This file contains a collection of utility functions for dealing with | |||
markdown. | |||
""" | |||
#----------------------------------------------------------------------------- | |||
# Copyright (c) 2013, the IPython Development Team. | |||
# | |||
# Distributed under the terms of the Modified BSD License. | |||
# | |||
# The full license is in the file COPYING.txt, distributed with this software. | |||
#----------------------------------------------------------------------------- | |||
#----------------------------------------------------------------------------- | |||
# Imports | |||
#----------------------------------------------------------------------------- | |||
from __future__ import print_function | |||
# Stdlib imports | |||
import subprocess | |||
#----------------------------------------------------------------------------- | |||
# Functions | |||
#----------------------------------------------------------------------------- | |||
# Pandoc-dependent code | |||
def markdown2latex(src): | |||
"""Convert a markdown string to LaTeX via pandoc. | |||
This function will raise an error if pandoc is not installed. | |||
Any error messages generated by pandoc are printed to stderr. | |||
Parameters | |||
---------- | |||
src : string | |||
Input string, assumed to be valid markdown. | |||
Returns | |||
------- | |||
out : string | |||
Output as returned by pandoc. | |||
""" | |||
p = subprocess.Popen('pandoc -f markdown -t latex'.split(), | |||
stdin=subprocess.PIPE, stdout=subprocess.PIPE) | |||
out, err = p.communicate(src.encode('utf-8')) | |||
if err: | |||
print(err, file=sys.stderr) | |||
#print('*'*20+'\n', out, '\n'+'*'*20) # dbg | |||
return unicode(out, 'utf-8') | |||
def markdown2rst(src): | |||
"""Convert a markdown string to LaTeX via pandoc. | |||
This function will raise an error if pandoc is not installed. | |||
Any error messages generated by pandoc are printed to stderr. | |||
Parameters | |||
---------- | |||
src : string | |||
Input string, assumed to be valid markdown. | |||
Returns | |||
------- | |||
out : string | |||
Output as returned by pandoc. | |||
""" | |||
p = subprocess.Popen('pandoc -f markdown -t rst'.split(), | |||
stdin=subprocess.PIPE, stdout=subprocess.PIPE) | |||
out, err = p.communicate(src.encode('utf-8')) | |||
if err: | |||
print(err, file=sys.stderr) | |||
#print('*'*20+'\n', out, '\n'+'*'*20) # dbg | |||
return unicode(out, 'utf-8') |