HTML/DOCX: pipe characters in table cells break Markdown tables
Author: soroush5Created Sep 10, 2026Updated Sep 10, 2026
A literal pipe in an HTML table cell is data, not a column separator, but it is passed through untouched, so the rendered row gains phantom columns. DOCX tables are affected too since they convert via the HTML converter.
Repro:
```python
import io
from markitdown import MarkItDown
html = (
'
'
)
print(MarkItDown().convert_stream(
io.BytesIO(html.encode()), file_extension='.html').markdown)
# Before: | Alice | Has a | pipe | (3 columns, broken)
# After: | Alice | Has a \| pipe | (2 columns, correct)
```
Same class as the CSV (#2266) and XLSX (#2436) pipe bugs, but in the shared HTML layer (`_CustomMarkdownify`), which neither of those covers. Searched open and closed issues/PRs: no report or fix for HTML/DOCX table pipes (open #1785 covers PPTX only, via pre-escaping).
| Name | Note |
|---|---|
| Alice | Has a | pipe |
Source: microsoft/markitdown