# نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם **הדגשה** ועם [קישור](https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

## عنوان عربي مع English كلمات

| اللغة | الاتجاه |
| --- | --- |
| العربية | RTL |
| English | LTR |

> اقتباس عربي مع `كود` بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם הדגשה ועם קישור (https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

عنوان عربي مع English كلمات

اللغة: العربية · الاتجاه: RTL
اللغة: English · الاتجاه: LTR

> اقتباس عربي مع كود بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם הדגשה ועם קישור בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

عنصر قائمة عربي أول

عنصר שני בעברית

third item in English

عنوان عربي مع English كلمات

اللغة	الاتجاه

العربية	RTL

English	LTR

اقتباس عربي مع كود بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.


# نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם **הדגשה** ועם [קישור](https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

## عنوان عربي مع English كلمات

| اللغة | الاتجاه |
| --- | --- |
| العربية | RTL |
| English | LTR |

> اقتباس عربي مع `كود` بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם הדגשה ועם קישור (https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

عنوان عربي مع English كلمات

اللغة: العربية · الاتجاه: RTL
اللغة: English · الاتجاه: LTR

> اقتباس عربي مع كود بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם הדגשה ועם קישור בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

عنصر قائمة عربي أول

عنصר שני בעברית

third item in English

عنوان عربي مع English كلمات

اللغة	الاتجاه

العربية	RTL

English	LTR

اقتباس عربي مع كود بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.


# نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם **הדגשה** ועם [קישור](https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

## عنوان عربي مع English كلمات

| اللغة | الاتجاه |
| --- | --- |
| العربية | RTL |
| English | LTR |

> اقتباس عربي مع `كود` بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

# نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם **הדגשה** ועם [קישור](https://example.com/rtl) בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

- عنصر قائمة عربي أول
- عنصר שני בעברית
- third item in English

## عنوان عربي مع English كلمات

| اللغة | الاتجاه |
| --- | --- |
| العربية | RTL |
| English | LTR |

> اقتباس عربي مع `كود` بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.

نص ثنائي الاتجاه RTL and bidi

فقرة عربية كاملة تشرح الفكرة بوضوح ثم تنتهي بنقطة.

פסקה בעברית עם הדגשה ועם קישור בפנים.

Mixed direction: the phrase مرحبا بالعالم sits inside English prose, and English sits inside العربية مثل هذا النص here.

عنصر قائمة عربي أول

عنصר שני בעברית

third item in English

عنوان عربي مع English كلمات

اللغة	الاتجاه

العربية	RTL

English	LTR

اقتباس عربي مع كود بداخله.

Numbers in RTL context: التكلفة 1500 دولار والموعد 2026-08-25.

Isolated bidi controls: مثال معزول followed by plain text.


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

*Setext level one*

Intro paragraph under a setext heading.

*Setext level two*

*A paragraph that is immediately followed by dashes*

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

*Short underline*

*Underline with trailing spaces*

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

*looks:* but this · *like a table:* is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

# Setext level one

Intro paragraph under a setext heading.

## Setext level two

## A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

# Short underline

# Underline with trailing spaces

Not a setext because of the blank line

===

**looks:** but this · **like a table:** is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

────────

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks: but this · like a table: is one

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one
================

Intro paragraph under a setext heading.

Setext level two
----------------

A paragraph that is immediately followed by dashes
---

The dashes above attach to the paragraph as a setext underline.

---

The dashes above, after a blank line, are a thematic break instead.

Short underline
=

Underline with trailing spaces
===

Not a setext because of the blank line

===

| looks | like a table |
| --- | --- |
| but this | is one |

Setext level one

Intro paragraph under a setext heading.

Setext level two

A paragraph that is immediately followed by dashes

The dashes above attach to the paragraph as a setext underline.

The dashes above, after a blank line, are a thematic break instead.

Short underline

Underline with trailing spaces

Not a setext because of the blank line

===

looks	like a table

but this	is one


# Title
line one

- item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart “quotes” and a dash — here


Title

line one

- item
  lazy line

smart “quotes” and a dash — here

Title

line one

item
lazy line

smart “quotes” and a dash — here


*Title*

line one

- item
  lazy line

smart “quotes” and a dash — here

Title

line one

item
lazy line

smart “quotes” and a dash — here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

• item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


Title

line one

- item

lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

*Title*

line one

• item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

- item
  lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Title
line one

- item
lazy line

smart "quotes" and a dash - here

# Title
line one

- item
lazy line

smart "quotes" and a dash - here

Title

line one

item
lazy line

smart "quotes" and a dash - here


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With a link: https://example.com/docs
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With a link: https://example.com/docs
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With <https://example.com/docs|a link>
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With [a link](https://example.com/docs)
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With a link: https://example.com/docs
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With a link: https://example.com/docs
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

*Tables*

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With <https://example.com/docs|a link>
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

*Name:* Launch · *Status:* Ready · *Notes:* All checks passed
*Name:* Docs · *Status:* *Bold cell* · *Notes:* With [a link](https://example.com/docs)
*Name:* Escaped | pipe · *Status:* `code | span` · *Notes:* plain
*Name:* - · *Status:* empty first cell · *Notes:* -

Header-only table:

Alpha | Beta

Row with more cells than headers:

*One:* a · *Two:* b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

*x:* 1 · *y:* 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

**Name:** Launch · **Status:** Ready · **Notes:** All checks passed
**Name:** Docs · **Status:** **Bold cell** · **Notes:** With [a link](https://example.com/docs)
**Name:** Escaped | pipe · **Status:** `code | span` · **Notes:** plain
**Name:** - · **Status:** empty first cell · **Notes:** -

Header-only table:

Alpha | Beta

Row with more cells than headers:

**One:** a · **Two:** b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

**x:** 1 · **y:** 2

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name: Launch · Status: Ready · Notes: All checks passed
Name: Docs · Status: Bold cell · Notes: With a link (https://example.com/docs)
Name: Escaped | pipe · Status: code | span · Notes: plain
Name: - · Status: empty first cell · Notes: -

Header-only table:

Alpha | Beta

Row with more cells than headers:

One: a · Two: b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x: 1 · y: 2

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

# Tables

| Name | Status | Notes |
| :--- | :----: | ----: |
| Launch | Ready | All checks passed |
| Docs | **Bold cell** | With [a link](https://example.com/docs) |
| Escaped \| pipe | `code \| span` | plain |
| | empty first cell | |

Header-only table:

| Alpha | Beta |
| --- | --- |

Row with more cells than headers:

| One | Two |
| --- | --- |
| a | b | c | d |

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

|x|y|
|-|-|
|1|2|

Tables

Name	Status	Notes

Launch	Ready	All checks passed

Docs	Bold cell	With a link

Escaped | pipe	code | span	plain

	empty first cell

Header-only table:

Alpha	Beta

Row with more cells than headers:

One	Two

a	b

Table between paragraphs stays a table even when the delimiter row
uses minimal dashes:

x	y

1	2


# Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:
 -
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:
 -
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolian separator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:
 -
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolian separator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


*Typography and invisible characters*

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

Typography and invisible characters

Smart quotes: “double” and ‘single’ in prose.

Dashes: word — spaced em, word—tight em, range 3–5 en dash.

Ellipsis… mid-sentence and at the end…

Standalone dash line follows:
—
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic　space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:
 -
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

*Typography and invisible characters*

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

*Standalone dash line follows:*

After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:

After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab


# Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:
 -
After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

*Typography and invisible characters*

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

*Standalone dash line follows:*

After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab

Typography and invisible characters

Smart quotes: "double" and 'single' in prose.

Dashes: word - spaced em, word - tight em, range 3 - 5 en dash.

Ellipsis... mid-sentence and at the end...

Standalone dash line follows:

After the dash line.

Invisible injections: zerowidth space, nonjoiner, injectedjoiner, wordjoiner, softhyphen, combininggrapheme joiner, midfile byte-order mark.

Directional controls: embedded rtl and isolates ltr isolate rtl isolate first strong with marks here.

Unusual spaces: nbsp here, narrow nbsp, ideographic space, en space, em space, thin space, hair space, ogham mark, mongolianseparator, hangulfiller, halfwidthfiller.

Variation selectors on plain text: A B stay meaningless here, while ❤ keeps its selector and 1⃣ keeps the keycap.

Tag characters hide here: invisibletags.

Trailing spaces end this line:
	Tab-led line with trailing tab