docstr: Display text in small font.
  
  This should be used for captions, asides, footnotes, sidenotes, and
  other explanatory text.
  
  Parameters
  ----------
  body : str
      The text 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 strings 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 caption.
  
  Examples
  --------
  >>> import streamlit as st
  >>>
  >>> st.caption('This is a string that explains something above.')
  >>> st.caption('A caption with _italics_ :blue[colors] and emojis :sunglasses:')
code: def caption(
      self,
      body: SupportsStr,
      unsafe_allow_html: bool = False,
      *,  # keyword-only arguments:
      help: Optional[str] = None,
  ) -> "DeltaGenerator":
      """Display text in small font.
  
      This should be used for captions, asides, footnotes, sidenotes, and
      other explanatory text.
  
      Parameters
      ----------
      body : str
          The text 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 strings 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 caption.
  
      Examples
      --------
      >>> import streamlit as st
      >>>
      >>> st.caption('This is a string that explains something above.')
      >>> st.caption('A caption with _italics_ :blue[colors] and emojis :sunglasses:')
  
      """
      caption_proto = MarkdownProto()
      caption_proto.body = clean_text(body)
      caption_proto.allow_html = unsafe_allow_html
      caption_proto.is_caption = True
      caption_proto.element_type = MarkdownProto.Type.CAPTION
      if help:
          caption_proto.help = help
      return self.dg._enqueue("markdown", caption_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 3 for calling the MarkdownMixin obj's underlying member method code with example usage: obj.caption(body, unsafe_allow_html) and returns: self