Spaces:
Running
Running
import streamlit as st | |
from text_annotation_utils import * | |
def annotated_text(*args, type=None): | |
"""Writes text with annotations into your Streamlit app. | |
Parameters | |
---------- | |
*args : str, tuple or htbuilder.HtmlElement | |
Arguments can be: | |
- strings, to draw the string as-is on the screen. | |
- tuples of the form (main_text, annotation_text, background, color) where | |
background and foreground colors are optional and should be an CSS-valid string such as | |
"#aabbcc" or "rgb(10, 20, 30)" | |
- HtmlElement objects in case you want to customize the annotations further. In particular, | |
you can import the `annotation()` function from this module to easily produce annotations | |
whose CSS you can customize via keyword arguments. | |
Examples | |
-------- | |
# >>> annotated_text( | |
# ... "This ", | |
# ... ("is", "verb", "#8ef"), | |
# ... " some ", | |
# ... ("annotated", "adj", "#faa"), | |
# ... ("text", "noun", "#afa"), | |
# ... " for those of ", | |
# ... ("you", "pronoun", "#fea"), | |
# ... " who ", | |
# ... ("like", "verb", "#8ef"), | |
# ... " this sort of ", | |
# ... ("thing", "noun", "#afa"), | |
# ... ) | |
# >>> annotated_text( | |
# ... "Hello ", | |
# ... annotation("world!", "noun", color="#8ef", border="1px dashed red"), | |
# ... ) | |
""" | |
if type == 'title': | |
st.markdown( | |
'<p class="big-font">' + get_annotated_html(*args)+ '</p>', | |
unsafe_allow_html=True, | |
) | |
if type == 'description': | |
st.markdown( | |
'<p class="medium-font">' + get_annotated_html(*args) + '</p>', | |
unsafe_allow_html=True, | |
) | |
else: | |
st.markdown( | |
get_annotated_html(*args), | |
unsafe_allow_html=True, | |
) |