Skip to main content

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.

TUI Editor in Streamlit

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:
    • Integrated "Save" toolbar button to sync content back to Streamlit.
    • 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 when the user clicks the Save icon in the toolbar.

Development

If you want to contribute or modify the component locally:

  1. Clone the repository
  2. Install Python dependencies (in editable mode):
    pip install -e .
    
  3. Build the frontend:
    cd st_tui_editor/frontend
    npm install
    npm run build
    
  4. 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

st_tui_editor-0.0.2.tar.gz (531.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

st_tui_editor-0.0.2-py3-none-any.whl (533.6 kB view details)

Uploaded Python 3

File details

Details for the file st_tui_editor-0.0.2.tar.gz.

File metadata

  • Download URL: st_tui_editor-0.0.2.tar.gz
  • Upload date:
  • Size: 531.0 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

Hashes for st_tui_editor-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3f8371e4355c10d72afb0bc0c39b336068e67a84c677dacf9ec7b5a4d4c579e2
MD5 edc695c605cea9ff346159678cc8ef77
BLAKE2b-256 2572d859dbf7c76f04ddecefaaa4c8e6ef0aeb12bf5b3ad09ce164686ade6276

See more details on using hashes here.

File details

Details for the file st_tui_editor-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: st_tui_editor-0.0.2-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

Hashes for st_tui_editor-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ab31ebad463ee4142adadcb6853a0a4c26c0133be17bb2cf5439c6c0a970c4a6
MD5 27656463051493e8f08cfe2c2ca4845a
BLAKE2b-256 8e6543818b6ced866ff87bd08364e894b6c76d613989e7383a1b7c049c23e528

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page