streamlit-markdown-editor — a dual-mode (WYSIWYG ⇄ raw) markdown editor

Hi all :waving_hand:

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.

```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! :folded_hands: