Markdown Table Formatting Skill
Markdown tables MUST use fixed-width columns with space padding. This is mandatory for readability in plain text editors and diffs.
Correct vs Incorrect Format
Correct: Fixed-width columns with padding
markdown
| Size | succinctly | jq | Speedup | |----------|---------------------|---------------------|------------| | **10KB** | 2.2 ms (4.3 MiB/s) | 4.1 ms (2.3 MiB/s) | **1.86x** | | **1MB** | 24.5 ms (33 MiB/s) | 44 ms (18 MiB/s) | **1.79x** |
Incorrect: Unpadded columns
markdown
| Size | succinctly | jq | Speedup | |------|------------|-----|---------| | **10KB** | 2.2 ms (4.3 MiB/s) | 4.1 ms (2.3 MiB/s) | **1.86x** |
Column Width Rules
- •Measure the widest content in each column (including header)
- •Pad all cells to match the widest cell in that column
- •Use spaces for alignment, not tabs
- •Align text left, numbers can be right-aligned for decimals
- •Leave one space after
|and before|for readability in data rows - •Separator row has NO spaces - format as
|------|---------|with dashes matching column widths - •Empty cells use single dash "-" padded with spaces:
| - |
Formatting Algorithm
code
For each column:
1. width = max(len(cell) for cell in column)
2. width = max(width, 3) # Minimum 3 chars for separator
For each row:
1. For each cell:
- Pad content to column width
- Add single space before and after content
2. Join cells with '|' delimiter
3. Add '|' at start and end
Bold Text in Tables
When using bold (**text**) in table cells:
Spaces must be OUTSIDE the bold markers, not inside:
markdown
<!-- CORRECT: Spaces outside ** --> | **59.6ms** | <!-- WRONG: Spaces inside ** (markdown won't render bold) --> | ** 59.6ms** |
This is important for right-aligned numeric columns where padding is added.
Alignment Markers
| Alignment | Separator Format | Example |
|---|---|---|
| Left | ` | ---------- |
| Right | ` | ---------: |
| Center | ` | :--------: |
Complex Tables
For tables with many columns or very long content:
markdown
| Name | Type | Size | Description | |------------|--------|---------|--------------------------------------| | ib | Vec | ~N bits | Interest bits marking structural | | | | | characters and value starts | | bp | Vec | ~N bits | Balanced parens encoding tree | | | | | structure |
Consider:
- •Splitting into multiple smaller tables
- •Using a different format (bullet lists, nested structure)
- •Rotating the table (rows become columns)
Why Fixed-Width Tables Matter
- •Readability in Git Diffs: Variable-width tables are hard to review in diff views
- •Text Editor Alignment: Most code reviews happen in monospace fonts
- •Terminal Display: Tables render correctly in terminal viewers
- •Professional Appearance: Shows attention to detail
- •Easier Maintenance: Clear structure makes updates simpler
Instructions
When formatting tables:
- •Read the table - Identify all rows and columns
- •Calculate widths - Find max content width per column
- •Format header - Apply consistent width with padding
- •Format separator - Match column widths with dashes
- •Format data rows - Apply same widths to all cells
- •Preserve alignment - Keep
:markers for right/center alignment