Hi all ![]()
I’ve published **streamlit-markdown-editor** — a Streamlit input widget for editing
markdown in two synchronized modes: a **WYSIWYG** surface and a **raw CommonMark**
view, with a toggle to switch between them. It’s *markdown in, markdown out* — you
pass markdown and get the (edited) markdown back.
-
**Try it:** https://wysiwyg-markdown-editor.streamlit.app
-
**Install:** `pip install streamlit-markdown-editor`
-
**Source (MIT):** GitHub - jaral-labs/streamlit-markdown-editor: A Streamlit dual-mode (WYSIWYG ⇄ raw) markdown-editor component - markdown-in / markdown-out · GitHub
```python
import streamlit as st
from streamlit_markdown_editor import st_markdown_editor
md = st_markdown_editor(“# Hello\n\nStart typing…”, key=“editor”)
st.markdown(md)
What it does
-
WYSIWYG editing (Milkdown) — format via keyboard shortcuts (⌘/Ctrl-B) and markdown
input rules (# , - ), plus GFM tables and strikethrough.
-
A raw CommonMark source view (CodeMirror 6) with syntax highlighting.
-
Both views stay in sync over one canonical markdown string; best-effort caret
carry across a mode switch.
-
A Streamlit v2 component (needs Streamlit ≥ 1.60, Python ≥ 3.10).
Feedback, bugs, and feature ideas welcome — thanks! ![]()
