本文整理汇总了Python中mistune.InlineLexer方法的典型用法代码示例。如果您正苦于以下问题:Python mistune.InlineLexer方法的具体用法?Python mistune.InlineLexer怎么用?Python mistune.InlineLexer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mistune
的用法示例。
在下文中一共展示了mistune.InlineLexer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import mistune [as 别名]
# 或者: from mistune import InlineLexer [as 别名]
def __init__(self, renderer, rules=None, **kwargs):
rules = InlineGrammar()
rules.hard_wrap()
super(InlineLexer, self).__init__(renderer, rules, **kwargs)
self.mentions = {}
self._mention_count = 0
示例2: markdown_convert
# 需要导入模块: import mistune [as 别名]
# 或者: from mistune import InlineLexer [as 别名]
def markdown_convert(markdown_string) -> str:
def _get_contents(text):
try:
contents = json.loads(text).get('message', '')
except json.decoder.JSONDecodeError:
contents = text
except AttributeError:
contents = text
return contents
class ButtonRenderer(mistune.Renderer):
'''
Syntax for MD buttons
%%%{JSON.message}%%%
For example:
%%%%{"message": "Something here"}%%%%
Output:
Something here
'''
def paragraph(self, text):
text = _get_contents(text)
return f'<p>{text}</p>'
class ButtonInlineLexer(mistune.InlineLexer):
def enable_md_button(self):
self.rules.md_button = re.compile(r'%%%(.*?)%%%')
self.default_rules.insert(3, 'md_button')
def placeholder(self):
pass
def output_md_button(self, m):
text = m.group(1)
return self.renderer.paragraph(text)
renderer = ButtonRenderer()
inline_lexer = ButtonInlineLexer(renderer)
inline_lexer.enable_md_button()
md = mistune.Markdown(renderer, inline=inline_lexer)
return md(markdown_string).strip()