mermaid.py 869 B

12345678910111213141516171819202122
  1. from ..dependencies import register_component
  2. from .mixins.content_element import ContentElement
  3. register_component('mermaid', __file__, 'mermaid.js', ['lib/mermaid.min.js'])
  4. class Mermaid(ContentElement):
  5. CONTENT_PROP = 'content'
  6. def __init__(self, content: str) -> None:
  7. '''Mermaid Diagrams
  8. Renders diagrams and charts written in the Markdown-inspired `Mermaid <https://mermaid.js.org/>`_ language.
  9. The mermaid syntax can also be used inside Markdown elements by providing the extension string 'mermaid' to the ``ui.markdown`` element.
  10. :param content: the Mermaid content to be displayed
  11. '''
  12. super().__init__(tag='mermaid', content=content)
  13. def on_content_change(self, content: str) -> None:
  14. self._props[self.CONTENT_PROP] = content.strip()
  15. self.run_method('update', content.strip())