using-streamlit-markdown
Covers all Markdown features in Streamlit including GitHub-flavored syntax plus Streamlit extensions like colored text, badges, Material icons, and …
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Using Markdown in Streamlit
Streamlit supports Markdown throughout its API—in st.markdown(), widget labels, help tooltips, metrics, st.table() cells, and more. Beyond standard GitHub-flavored Markdown, Streamlit adds colored text, badges, icons, and LaTeX.
Quick reference
| Feature | Syntax | Example | Works in labels |
|---------|--------|---------|--------|
| Bold | text | Bold | ✓ |
| Italic | text | Italic | ✓ |
| Strikethrough | ~text~ | ~Strikethrough~ | ✓ |
| Inline code | ` code | variable ` | ✓ |
| Code block | `lang...` | `python...` | ✗ |
| Link | [text](url) | Streamlit | ✓ |
| Image |  |  | ✓ |
| Heading | # to ###### | ## Section | ✗ |
| Blockquote | > text | > Note | ✗ |
| Horizontal rule | --- | --- | ✗ |
| Unordered list | - item | - First<br>- Second | ✗ |
| Ordered list | 1. item | 1. First<br>2. Second | ✗ |
| Task list | - [ ] / - [x] | - [x] Done<br>- [ ] Todo | ✗ |
| Table | \| a \| b \| | \| H1 \| H2 \|<br>\|--\|--\| | ✗ |
| Emoji | Direct or shortcode | 🎉 or :tada: | ✓ |
| Streamlit logo | :streamlit: | :streamlit: | ✓ |
| Material icon | :material/icon_name: | :material/check_circle: | ✓ |
| Colored text | :color[text] | :red[Error] | ✓ |
| Colored background | :color-background[text] | :blue-background[Info] | ✓ |
| Badge | :color-badge[text] | :green-badge[Success] | ✓ |
| Small text | :small[text] | :small[footnote] | ✓ |
| LaTeX (inline) | $formula$ | $ax^2 + bx + c$ | ✓ |
| LaTeX (block) | $$formula$$ | $$\int_0^1 x^2 dx$$ | ✗ |
Where Markdown works
Markdown is supported in most places where text is rendered. Streamlit has three levels of markdown support:
Full Markdown — All syntax shown in the table above:
st.markdown(),st.write(),st.caption(),st.info(),st.warning(),st.error(),st.success(),st.tablecells and headers, tooltips (helpparameter)
Label subset — Inline formatting only (see table above). Block elements (e.g. headings, lists, tables) are silently stripped:
- Widget and element labels (
st.button,st.checkbox,st.radio,st.expander,st.page_link, etc.),st.radioandst.select_slideroptions,st.tabsnames,st.metriclabel/value/delta,st.title,st.header,st.subheader,st.imagecaption,st.dialogtitle,st.progress,st.spinner.
No Markdown — Text displays literally:
st.text(),st.json(),st.dataframe()/st.data_editor()cells,st.selectbox/st.multiselectoptions, input placeholders,st.Pagetitles, chart/map labels
GitHub-flavored Markdown
Standard GFM syntax works as expected. Headings automatically get anchor links for navigation.
~~~python
st.markdown("""
Heading
Bold, italic, ~~strikethrough~~, inline code, [links](url)
- Unordered list
- [x] Task list
| Column | Column |
|--------|--------|
| Cell | Cell |
> Blockquote
code_block = "with syntax highlighting"
""")
~~~
Colored text, backgrounds, and badges
st.markdown(":red[Error] and :green[Success]") # Colored text
st.markdown(":blue-background[Highlighted]") # Colored background
st.markdown(":green-badge[Active] :red-badge[Inactive]") # Inline badges
Available colors: red, orange, yellow, green, blue, violet, gray/grey, rainbow, primary
Note: rainbow is not supported for backgrounds or badges. Standalone badges also available via st.badge().
Material icons
Use Google Material Symbols with :material/icon_name: syntax. Find icons at fonts.google.com/icons
st.markdown(":material/check_circle: Complete")
Material icons also work in icon parameters across many elements (st.button, st.expander, st.info, etc.).
Emojis
Both Unicode emojis (preferred) and shortcodes work.
st.markdown("Hello! 👋 :+1: :tada: :streamlit:")
Note: Material icons are preferred over emojis for a more professional look.
LaTeX math
Single $ for inline, double $$ for display mode. Inline math requires non-whitespace after $ to avoid conflicts with currency (e.g., "$5" won't be parsed as math).
# Inline math
st.markdown("The quadratic formula is $x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}$")
# Display math (centered, larger)
st.markdown("""
$$
\\sum_{i=1}^{n} x_i = x_1 + x_2 + ... + x_n
$$
""")
Images in Markdown
st.markdown("")
st.button(" Click me") # Image as icon in label
In labels, images display as icons with max height equal to font height.
Markdown in element labels
Widgets, containers, and other elements support Markdown in their labels (using the label subset).
st.radio(":material/palette: Choose **color**", [":red-background[Red]", ":blue-background[Blue]", ":green-background[Green]"])
tab1, tab2 = st.tabs([":material/home: Home", ":material/settings: Settings"])
st.metric(label=":material/attach_money: Revenue", value=":green[$1.2M]", delta=":material/trending_up: 12%")
Escaping special characters
Use backslash to show literal characters: \\[, \\*, 1\\.
st.markdown(":blue[Array: \\[1, 2, 3\\]]")
st.button("1\\. Not a list")
Markdown in st.table
st.table() renders Markdown in cells and headers.
st.table({
"**Name**": "Alice",
"**Status**": ":green-badge[Active]",
"**Role**": ":material/shield: Admin"
})
Combining features
Mix multiple features for rich formatting.
st.markdown("""
### :material/rocket: Launch status
| Phase | Status | Notes |
|-------|--------|-------|
| Build | :green-badge[Complete] | All tests passing |
| Deploy | :orange-badge[In Progress] | ETA: 2 hours |
| Monitor | :gray-badge[Pending] | Waiting on deploy |
:small[Last updated: just now]
""")
st.markdown - text alignment and width
Control layout with text_alignment and width parameters.
st.markdown("Centered heading", text_alignment="center") # left, center, right, justify
st.markdown("Content width only", width="content") # stretch, content, or pixels (e.g. 400)
HTML (use very sparingly!)
Mix Markdown with HTML using unsafe_allow_html=True. For pure HTML without markdown processing, use st.html() instead.
st.markdown("**Status:** <span style='color: coral'>Custom styled</span>", unsafe_allow_html=True)
st.html("<div class='custom'>Pure HTML content</div>")
References
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
.agents/skills/developing-with-streamlit/skills/using-streamlit-markdown/SKILL.md同一个仓库里的其他技能
- developing-with-streamlit
- building-streamlit-chat-ui
- building-streamlit-custom-components-v2
- building-streamlit-dashboards
- building-streamlit-multipage-apps
- choosing-streamlit-selection-widgets
- connecting-streamlit-to-snowflake
- creating-streamlit-themes
- displaying-streamlit-data
- improving-streamlit-design
- optimizing-streamlit-performance
- organizing-streamlit-code