docstr: Display string formatted as Markdown.
  
  Parameters
  ----------
  body : str
      The string to display as Github-flavored Markdown. Syntax
      information can be found at: https://github.github.com/gfm.
  
      This also supports:
  
      * Emoji shortcodes, such as ``:+1:``  and ``:sunglasses:``.
        For a list of all supported codes,
        see https://share.streamlit.io/streamlit/emoji-shortcodes.
  
      * LaTeX expressions, by wrapping them in "$" or "$$" (the "$$"
        must be on their own lines). Supported LaTeX functions are listed
        at https://katex.org/docs/supported.html.
  
      * Colored text, using the syntax ``:color[text to be colored]``,
        where ``color`` needs to be replaced with any of the following
        supported colors: blue, green, orange, red, violet, gray/grey, rainbow.
  
  unsafe_allow_html : bool
      By default, any HTML tags found in the body will be escaped and
      therefore treated as pure text. This behavior may be turned off by
      setting this argument to True.
  
      That said, we *strongly advise against it*. It is hard to write
      secure HTML, so by using this argument you may be compromising your
      users' security. For more information, see:
  
      https://github.com/streamlit/streamlit/issues/152
  
  help : str
      An optional tooltip that gets displayed next to the Markdown.
  
  Examples
  --------
  >>> import streamlit as st
  >>>
  >>> st.markdown("*Streamlit* is **really** ***cool***.")
  >>> st.markdown('''
  ...     :red[Streamlit] :orange[can] :green[write] :blue[text] :violet[in]
  ...     :gray[pretty] :rainbow[colors].''')
  >>> st.markdown("Here's a bouquet &mdash;\
  ...             :tulip::cherry_blossom::rose::hibiscus::sunflower::blossom:")
  >>>
  >>> multi = '''If you end a line with two spaces,
  ... a soft return is used for the next line.
  ...
  ... Two (or more) newline characters in a row will result in a hard return.
  ... '''
  >>> st.markdown(multi)
  
  .. output::
     https://doc-markdown.streamlit.app/
     height: 260px
code: def markdown(
      self,
      body: SupportsStr,
      unsafe_allow_html: bool = False,
      *,  # keyword-only arguments:
      help: Optional[str] = None,
  ) -> "DeltaGenerator":
      r"""Display string formatted as Markdown.
  
          Parameters
          ----------
          body : str
              The string to display as Github-flavored Markdown. Syntax
              information can be found at: https://github.github.com/gfm.
  
              This also supports:
  
              * Emoji shortcodes, such as ``:+1:``  and ``:sunglasses:``.
                For a list of all supported codes,
                see https://share.streamlit.io/streamlit/emoji-shortcodes.
  
              * LaTeX expressions, by wrapping them in "$" or "$$" (the "$$"
                must be on their own lines). Supported LaTeX functions are listed
                at https://katex.org/docs/supported.html.
  
              * Colored text, using the syntax ``:color[text to be colored]``,
                where ``color`` needs to be replaced with any of the following
                supported colors: blue, green, orange, red, violet, gray/grey, rainbow.
  
          unsafe_allow_html : bool
              By default, any HTML tags found in the body will be escaped and
              therefore treated as pure text. This behavior may be turned off by
              setting this argument to True.
  
              That said, we *strongly advise against it*. It is hard to write
              secure HTML, so by using this argument you may be compromising your
              users' security. For more information, see:
  
              https://github.com/streamlit/streamlit/issues/152
  
          help : str
              An optional tooltip that gets displayed next to the Markdown.
  
          Examples
          --------
          >>> import streamlit as st
          >>>
          >>> st.markdown("*Streamlit* is **really** ***cool***.")
          >>> st.markdown('''
          ...     :red[Streamlit] :orange[can] :green[write] :blue[text] :violet[in]
          ...     :gray[pretty] :rainbow[colors].''')
          >>> st.markdown("Here's a bouquet &mdash;\
          ...             :tulip::cherry_blossom::rose::hibiscus::sunflower::blossom:")
          >>>
          >>> multi = '''If you end a line with two spaces,
          ... a soft return is used for the next line.
          ...
          ... Two (or more) newline characters in a row will result in a hard return.
          ... '''
          >>> st.markdown(multi)
  
          .. output::
             https://doc-markdown.streamlit.app/
             height: 260px
  
          """
      markdown_proto = MarkdownProto()
  
      markdown_proto.body = clean_text(body)
      markdown_proto.allow_html = unsafe_allow_html
      markdown_proto.element_type = MarkdownProto.Type.NATIVE
      if help:
          markdown_proto.help = help
  
      return self.dg._enqueue("markdown", markdown_proto)
  
file_path: streamlit/lib/streamlit/elements/markdown.py
imports: from typing import TYPE_CHECKING, Optional, Union, cast
  from streamlit.proto.Markdown_pb2 import Markdown
  from streamlit.runtime.metrics_util import gather_metrics
  from streamlit.string_util import clean_text
  from streamlit.type_util import SupportsStr, is_sympy_expession
label_desc: Use image node_id 1 for calling the MarkdownMixin obj's underlying member method code with example usage: obj.markdown(body, unsafe_allow_html) and returns: self