Markdown Setext Headings

Last updated: 2026-10-14

Setext Headings CommonMark core

The legacy heading style: a line of = under text makes a top-level heading, a line of - makes level two — same result as ATX (#). Worth knowing to read old docs and dodge the --- surprise.

GroupEdge Cases & Rules
Spec levelCommonMark core
Spec versionCommonMark 0.31.2 + GFM

📝 Syntax

Heading
======

Heading
------

▶ Live Example

Edit Markdown on the left, see the result on the right

💡 Key points

⚠️ Warning Classic trap: a stray --- under a paragraph silently turns it into a level-2 heading.
💡 Tip Use ATX (#) headings in new documents; Setext is trivia-plus-survival.

❓ FAQ

Q Why the name Setext?
A From the 1990s Setext (Structure Enhanced Text) format that Markdown inherited.
Q Are there higher levels?
A No — only levels 1 and 2; deeper levels require #.
Q How many = or - marks are needed?
A Any count of 1+ is valid; tradition writes them as wide as the text.

📚 See also

HeadingsCommonMark core Horizontal RulesCommonMark core
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏