#!/usr/bin/env python # encoding: utf-8 """ @version: ?? @author: liangliangyy @license: MIT Licence @contact: liangliangyy@gmail.com @site: https://www.lylinux.org/ @software: PyCharm @file: common_markdown.py @time: 2017/1/14 上午2:30 """ import mistune from pygments import highlight from pygments.lexers import get_lexer_by_name from pygments.formatters import html def block_code(text, lang, inlinestyles=False, linenos=False): if not lang: text = text.strip() return u'
%s
\n' % mistune.escape(text) try: lexer = get_lexer_by_name(lang, stripall=True) formatter = html.HtmlFormatter( noclasses=inlinestyles, linenos=linenos ) code = highlight(text, lexer, formatter) if linenos: return '
%s
\n' % code return code except: return '
%s
\n' % ( lang, mistune.escape(text) ) class BlogMarkDownRenderer(mistune.Renderer): def block_code(self, text, lang): # renderer has an options inlinestyles = self.options.get('inlinestyles') linenos = self.options.get('linenos') return block_code(text, lang, inlinestyles, linenos) class common_markdown(): @staticmethod def get_markdown(value): renderer = BlogMarkDownRenderer(inlinestyles=False) mdp = mistune.Markdown(escape=True, renderer=renderer) return mdp(value)