| #!/usr/bin/env python |
| |
| # Example for using the shared library from python |
| # Will work with either python 2 or python 3 |
| # Requires cmark library to be installed |
| |
| from ctypes import CDLL, c_char_p, c_long |
| import sys |
| import platform |
| |
| sysname = platform.system() |
| |
| if sysname == 'Darwin': |
| libname = "libcmark.dylib" |
| elif sysname == 'Windows': |
| libname = "cmark.dll" |
| else: |
| libname = "libcmark.so" |
| cmark = CDLL(libname) |
| |
| markdown = cmark.cmark_markdown_to_html |
| markdown.restype = c_char_p |
| markdown.argtypes = [c_char_p, c_long, c_long] |
| |
| opts = 8 # CMARK_OPT_PRETTY |
| |
| def md2html(text): |
| if sys.version_info >= (3,0): |
| textbytes = text.encode('utf-8') |
| textlen = len(textbytes) |
| return markdown(textbytes, textlen, opts).decode('utf-8') |
| else: |
| textbytes = text |
| textlen = len(text) |
| return markdown(textbytes, textlen, opts) |
| |
| sys.stdout.write(md2html(sys.stdin.read())) |