See comments on https://gerrit.wikimedia.org/r/195902
<td><p>foo<p></td> serializes to |foo, which means it doesn't roundtrip html -> wt -> html because the <p>-wrapping disappears:
$ echo '<table><tr><td><p>foo</p></td></tr></table>' | tests/parse.js --html2html --normalize <table> <tbody> <tr> <td>foo</td> </tr> </tbody> </table>
But in fact we can recover the <p>-wrapping by adding a newline after the |:
$ ( echo '{|' ; echo '|' ; echo 'foo' ; echo '|}' ) | tests/parse.js --normalize <table> <tbody> <tr> <td> <p>foo</p> </td> </tr> </tbody> </table>
So there is a way to say whether <p>-wrapping should happen in wikitext or not -- we need to emit a leading \n if we want <p>-wrapping. This is a WTS bug. The fix for T88318 fixed a different bug ( <td><meta/>-</td> for instance ), but we should fix <p>-wrapping inside <td> properly by re-adding the missing newline after the |.