Board Thread:Support Requests - Getting Technical/@comment-3560733-20141129202609/@comment-154566-20141202005459

Pipes are used to format tables, but they're also used to separate parameters of a #tag, #if, template transclusion, etc. So when you have a table pipe inside a #tag, #tag misinterprets that pipe as a parameter separation pipe. Instead of a table, you get a mess of code broken into two chunks because #tag split the code where the pipe used to be.

The escaped pipe,, fixes the problem. When a table with escaped pipes is inside a #tag, the wiki goes through the following steps:  Ceci n'est pas une pipe.
 * 1) Parses the #tag.   represents a pipe but is not actually a pipe, yet. #tag leaves it alone as normal text instead of splitting off a new parameter.
 * 2) Expands   into  . Now it's an actual pipe. #tag has already finished parsing, so this is okay.
 * 3) Builds the table. The pipe renders the table as expected.

The above applies to any context where pipes are separators. So, as a general rule, if an #if function, template parameter, etc. has a  table inside it, the table needs either   escaped pipes, or   HTML formatting, whichever is your preference.