mbuali's picture
Upload folder using huggingface_hub
d1ceb73 verified
from ._base import DirectivePlugin
class Admonition(DirectivePlugin):
SUPPORTED_NAMES = {
"attention", "caution", "danger", "error", "hint",
"important", "note", "tip", "warning",
}
def parse(self, block, m, state):
name = self.parse_type(m)
attrs = {'name': name}
options = dict(self.parse_options(m))
if 'class' in options:
attrs['class'] = options['class']
title = self.parse_title(m)
if not title:
title = name.capitalize()
content = self.parse_content(m)
children = [
{
'type': 'admonition_title',
'text': title,
},
{
'type': 'admonition_content',
'children': self.parse_tokens(block, content, state),
}
]
return {
'type': 'admonition',
'children': children,
'attrs': attrs,
}
def __call__(self, directive, md):
for name in self.SUPPORTED_NAMES:
directive.register(name, self.parse)
if md.renderer.NAME == 'html':
md.renderer.register('admonition', render_admonition)
md.renderer.register('admonition_title', render_admonition_title)
md.renderer.register('admonition_content', render_admonition_content)
def render_admonition(self, text, name, **attrs):
html = '<section class="admonition ' + name
_cls = attrs.get('class')
if _cls:
html += ' ' + _cls
return html + '">\n' + text + '</section>\n'
def render_admonition_title(self, text):
return '<p class="admonition-title">' + text + '</p>\n'
def render_admonition_content(self, text):
return text