quartable — Reveal.js democolspan · rowspan · midrule · cline · align
2026-05-09
quartable extends Markdown pipe tables with six constructs. Each slide below shows the markdown source and the rendered table, so the deck doubles as a feature reference.
| Markup | Effect |
|---|---|
[text]{cs=N} |
merge N consecutive columns |
[text]{rs=N} + ^ |
merge N consecutive rows |
=== |
full-width horizontal separator |
===N-M, ===N, ===1,3-5 |
partial horizontal separator (booktabs \cmidrule) |
[text]{cs=N .vl .vr rspan=K} |
vertical line(s) on a colspan boundary (LaTeX only) |
[text]{align=l\|c\|r} |
per-cell alignment override |
No automatic head/body separator: write
===(or===N-M) explicitly as the first body row when you want one.
Code:
Rendered:
| Group | Value | Note |
|---|---|---|
| A | 12 | first |
| A | 8 | second |
| B | 15 | third |
===N-M)Code:
Rendered:
| A | B | C | D |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 |
===1,3-4)A bare N is shorthand for N-N. Mix with ranges using commas.
Code:
Rendered:
| A | B | C | D |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
Code:
Rendered:
| Item | Measurements | ||
|---|---|---|---|
| T1 | T2 | T3 | |
| x1 | 0.71 | 0.68 | 0.74 |
| x2 | 0.69 | 0.65 | 0.72 |
Code:
Rendered:
| Category | Detail | Value |
|---|---|---|
| Group 1 | 18.3 | |
| Sub-cat. X | alpha | 10.1 |
| Sub-cat. Y | beta | 8.2 |
Code:
Rendered:
| Condition | Item | Score |
|---|---|---|
| Baseline | x1 | 0.71 |
| x2 | 0.68 | |
| x3 | 0.74 | |
| Improved | x1 | 0.89 |
| x2 | 0.87 |
{rs=N cs=M} on a single cell. Continuation rows use ^.
Code:
Rendered:
| Block A | Value 1 | |
| Value 2 | ||
| Col 1 | Col 2 | Col 3 |
Code:
| [Method]{rs=2} | [Set A]{cs=2} | | [Set B]{cs=2} | |
|-------------------|:-------------:|:------:|:-------------:|------:|
| ===2-3,4-5 | | | | |
| | Score X | Score Y| Score X |Score Y|
| === | | | | |
| Baseline | 0.71 | 2.1 | 0.68 | 1.9 |
| Wiener | 0.82 | 2.8 | 0.79 | 2.6 |
| === | | | | |
| **Proposed** | **0.93** | **3.7**| **0.92** |**3.6**|Rendered:
| Method | Set A | Set B | ||
| Score X | Score Y | Score X | ||
| Baseline | 0.71 | 2.1 | 0.68 | 1.9 |
| Wiener | 0.82 | 2.8 | 0.79 | 2.6 |
| Proposed | 0.93 | 3.7 | 0.92 | 3.6 |
align= overrides the column’s Markdown alignment. Both short (l/c/r) and long (left/center/right) values work.
Code:
Rendered:
| Description | Value |
|---|---|
| Default | 42 |
| Default | a longer phrase |
align=l |
42 |
align=c |
two words |
The cs > 1 default is centered. align= overrides it.
Code:
Rendered:
| Step | A | B | Total |
|---|---|---|---|
| 1 | data | ||
| 2 | data | ||
| 3 | data | ||
| 4 | 12 | 34 | 100 |
.vl and .vr draw vertical lines on a cell’s left/right edge (or on the boundary of a colspan). rspan=K limits the line to K rows.
⚠ Vlines are LaTeX only in v0.1. They do not render in HTML or Reveal — see the corresponding section in the PDF test for the visual.
Code:
Rendered:
| Item | Measurements | Note | |
|---|---|---|---|
| A | 1 | 2 | foo |
| B | 3 | 4 | bar |
The filter prints a stderr warning and renders the table as best as HTML/Reveal allow. (LaTeX rendering of this specific case is imperfect because \multirow cannot cross \midrule cleanly.)
Code:
Rendered:
| Group | Value |
|---|---|
| CONFLICT | 1 |
| 2 | |
| 3 |