bullm's picture
new test
e2f925b
raw
history blame
3.69 kB
import os
import streamlit.components.v1 as components
_RELEASE = True
if not _RELEASE:
_st_quill = components.declare_component("streamlit_quill", url="http://localhost:3001")
else:
parent_dir = os.path.dirname(os.path.abspath(__file__))
build_dir = os.path.join(parent_dir, "frontend/build")
_st_quill = components.declare_component("streamlit_quill", path=build_dir)
def st_quill(
value="",
placeholder="",
html=False,
toolbar=None,
history=None,
preserve_whitespace=True,
readonly=False,
key=None
):
"""Quill Editor component.
Parameters
----------
value : any
The text value of this widget when it first renders. This will be
cast to str internally.
placeholder : any
The text value of this widget when the editor is empty. It will be
cast to str internally.
html : bool
Choose whether component return editor's content as HTML or regular
text. Return regular text by default.
toolbar : list or None
Quill toolbar configuration. For more information, see
https://quilljs.com/docs/modules/toolbar/.
history : dict or None
Quill history configuration. For more information, see
https://quilljs.com/docs/modules/history/.
preserve_whitespace : bool
Choose whether multiple spaces are preserved on copy/paste or trimmed.
Spaces are preserved by default.
readonly : bool
Make the editor read only.
key: str or None
An optional key that uniquely identifies this component. If this is
None, and the component's arguments are changed, the component will
be re-mounted in the Streamlit frontend and lose its current state.
Returns
-------
str
The current content of Quill editor.
"""
if toolbar is None:
toolbar=[
[
"bold", "italic", "underline", "strike",
{"script": "sub"},
{"script": "super"},
],
[
{"background": []},
{"color": [] },
],
[
{"list": "ordered"},
{"list": "bullet"},
{"indent": "-1"},
{"indent": "+1"},
{"align": []},
],
[
{"header": 1},
{"header": 2},
{"header": [1, 2, 3, 4, 5, 6, False]},
{"size": ["small", False, "large", "huge"]},
],
[
"formula", "blockquote", "code", "code-block", "clean"
],
[
"link", "image"
],
[
{"font": []}
],
]
if history is None:
history={
"delay": 1000,
"maxStack": 500,
"userOnly": False
}
return _st_quill(
defaultValue=str(value),
placeholder=str(placeholder),
html=html,
toolbar=toolbar,
history=history,
preserveWhitespace=preserve_whitespace,
readOnly=readonly or False,
name=key or "quill",
key=key,
default=str(value),
)
if not _RELEASE:
import streamlit as st
st.sidebar.title(":computer: Quill Editor")
placeholder = st.sidebar.text_input("Placeholder", "Some placeholder text")
html = st.sidebar.checkbox("Return HTML", False)
read_only = st.sidebar.checkbox("Read only", False)
content = st_quill(
placeholder=placeholder,
html=html,
readonly=read_only,
)
st.write(content)
# content = st_quill()