Use Toast UI Editor ui.toast.com/tui-editor in your streamlit project.
Project description
st_tui_editor
A Streamlit component that integrates the powerful Toast UI Editor, a Markdown editor that provides both Markdown and WYSIWYG editing modes.
See demo at: https://toastui-markdown-editor.streamlit.app
Features
- Dual Modes: Support for both Markdown and WYSIWYG editing.
- Live Preview: Real-time rendering of Markdown content.
- Theming: Built-in support for Light and Dark themes.
- Customization: Configurable height, preview style (vertical/tab), and more.
- Streamlit Integration:
- Updates content back to Streamlit in real-time as you type.
- Includes a "Save" toolbar button as an alternative sync trigger.
- Returns the edited markdown as a JSON object.
Installation
Install via pip:
pip install st_tui_editor
Usage
Here's a simple example of how to use st_tui_editor in your Streamlit app:
import streamlit as st
from st_tui_editor import st_tui_editor
st.title("Streamlit TUI Editor")
# Initialize with some default text
initial_text = """
# Hello Streamlit!
This is the **Toast UI Editor** component.
"""
# Render the editor
output = st_tui_editor(
initial_value=initial_text,
height="600px",
initial_edit_type="markdown",
theme="dark",
key="my_editor"
)
# Access the value
if output:
st.write("### Output Preview")
st.markdown(output.get("markdown"))
st.write("### Raw JSON")
st.json(output)
API Reference
st_tui_editor
st_tui_editor(
initial_value="",
height="500px",
initial_edit_type="markdown",
preview_style="vertical",
theme="light",
usage_statistics=True,
key=None
)
| Parameter | Type | Default | Description |
|---|---|---|---|
initial_value |
str |
"" |
The initial markdown content to display in the editor. |
height |
str |
"500px" |
The CSS height of the editor (e.g., "600px", "auto"). |
initial_edit_type |
str |
"markdown" |
The initial editing mode. Options: "markdown" or "wysiwyg". |
preview_style |
str |
"vertical" |
The preview style for Markdown mode. Options: "vertical" (side-by-side) or "tab". |
theme |
str |
"light" |
The UI theme. Options: "light" or "dark". |
usage_statistics |
bool |
True |
Whether to send hostname to Google Analytics (TUI Editor default behavior). |
key |
str |
None |
An optional key that uniquely identifies this component instance. |
Return Value
The component returns a dictionary (JSON) containing the editor's state.
{
"markdown": "The content of the editor..."
}
The content is updated in real-time as you type, or when the user clicks the Save icon in the toolbar.
Development
If you want to contribute or modify the component locally:
- Clone the repository
- Install Python dependencies (in editable mode):
pip install -e .
- Build the frontend:
cd st_tui_editor/frontend npm install npm run build
- Run the example:
streamlit run example.py
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file st_tui_editor-0.0.4.tar.gz.
File metadata
- Download URL: st_tui_editor-0.0.4.tar.gz
- Upload date:
- Size: 531.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c3b9c5f16d0e31d0c5447a407d22f3ad66f9fa6439c3e7750d561f072388089
|
|
| MD5 |
fc2ce73119284378dfe4a7b2f585fdf7
|
|
| BLAKE2b-256 |
c8a96fec506269217a44d6754b9df71fbd3123957510595fb03055eba37673cf
|
File details
Details for the file st_tui_editor-0.0.4-py3-none-any.whl.
File metadata
- Download URL: st_tui_editor-0.0.4-py3-none-any.whl
- Upload date:
- Size: 533.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9796a8c55fcef86cb936a4a137c630c4d70b6431a3da2419cc692836f045290d
|
|
| MD5 |
d59fe29f19be9490421fb0dc73aea83f
|
|
| BLAKE2b-256 |
830bbe26dcb8154dc0e9ba7232ce47748b7db0f918c571e5c014dbbcbac70fbf
|