Python mistune 模块,Renderer() 实例源码
我们从Python开源项目中,提取了以下5个代码示例,用于说明如何使用mistune.Renderer()。
def article_detail_handler(request, article_id):
account = request.Meta["user_info"]
result = dict()
renderer = mistune.Renderer(hard_wrap=True, parse_inline_html=True)
markdown = mistune.Markdown(renderer=renderer)
article = BlogArticle.query_article_by_id(article_id)
article["content"] = markdown(article["content"])
article["comment_list"] = BlogComment.query_comment_list(article_id, account.id if account else 0)
result["article"] = article
if account:
article["Meta_info"]["liked"] = 1 if BlogLike.query_like_blog(account.id, article_id) else 0
result["user_info"] = UserInfo.query_format_info_by_user_id(request.Meta["user_info"].id)
# ?????? ????????????????????
author_id = article["user_info"]["id"]
if not account or author_id != account.id:
BlogArticleMeta.change_Meta_record(article_id, author_id, ["hit"])
# ????
BlogArticle.query_article_by_id(article_id, False)
return render(request, "article/detail.html", result)
def edit_article_handler(request, article_id):
"""
???? ????
"""
result = base_result()
user_id = request.Meta["user_info"].id
if article_id != "0":
result["data"] = BlogArticle.query_article_by_id(article_id)
renderer = mistune.Renderer(hard_wrap=True, parse_inline_html=True)
markdown = mistune.Markdown(renderer=renderer)
result["mark_down"] = markdown(result["data"]["content"])
else:
result["mark_down"] = None
del result["data"]
result["kind_list"] = BlogKind.query_user_kind(1)
result["user_info"] = UserInfo.query_format_info_by_user_id(user_id)
return render(request, "manage/edit.html", result)
def markdown_engin(ori_str=""):
renderer = mistune.Renderer(hard_wrap=True, parse_inline_html=True)
markdown = mistune.Markdown(renderer=renderer)
return markdown(ori_str)
def get_markdown_renderer( url_transform ):
''' This function returns a markdown renderer which transforms
URLs according to the relative paradigm of mkaestatic.
'''
class MyRenderer( mistune.Renderer ):
def link(self, link, title, text):
link = url_transform(link)
return super(MyRenderer, self).link(link, text)
def image(self, src, alt_text):
src = url_transform(src)
return super(MyRenderer, self).image(src, alt_text)
return mistune.Markdown(renderer=MyRenderer(escape=True, use_xhtml=True))