The problem:
When you write a table cell with a wikilink alias:
| Name | Link |
|---|---|
| Test | [[World/Reference/Helious |
Obsidian sees FOUR pipe characters on that row instead of three:
| Test | [[World/Reference/Helious | Helious]] |
It splits on every | character left to right, treating the pipe inside the wikilink as a column separator. So the link breaks into two malformed cells — one containing [[World/Reference/Helious and one containing Helious]].
Why this is wrong:
Markdown parsers are supposed to resolve inline elements (links, bold, code spans) BEFORE splitting table rows into cells. The [[…]] wikilink brackets define a self-contained token. The | inside that token is part of the link syntax,
not part of the table syntax. Just like you wouldn’t expect | bold | text | to break bold formatting at the pipe, the wikilink pipe should be invisible to the table parser.
The correct behavior:
The parser should:
- Scan for wikilink tokens [[…]] and treat their contents as opaque
- THEN split the remaining text on | for table columns
- The alias pipe never reaches the table parser because it’s already consumed by the link parser
The workaround we’re using:
We strip the alias from links inside tables — [[World/Reference/Helious]] — which means those links display the full path instead of just the filename. It works but it’s ugly and defeats the purpose of aliases.