本文整理匯總了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()