def caption(self, body): """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. Example ------- >>> st.caption('This is a string that explains something above.') .. output:: https://static.streamlit.io/0.25.0-2JkNY/index.html?id=SFcBGANWd8kWXF28XnaEZj height: 100px """ caption_proto = MarkdownProto() caption_proto.body = body caption_proto.allow_html = False caption_proto.is_caption = True return self.dg._enqueue("markdown", caption_proto)
def caption(self, body: str, unsafe_allow_html: bool = False) -> "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. 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 **Also note that `unsafe_allow_html` is a temporary measure and may be removed from Streamlit at any time.** If you decide to turn on HTML anyway, we ask you to please tell us your exact use case here: https://discuss.streamlit.io/t/96 . This will help us come up with safe APIs that allow you to do what you want. Example ------- >>> st.caption('This is a string that explains something above.') """ caption_proto = MarkdownProto() caption_proto.body = clean_text(body) caption_proto.allow_html = unsafe_allow_html caption_proto.is_caption = True dg = self.dg._enqueue("markdown", caption_proto) return cast("DeltaGenerator", dg)