Add Normalization Support for PipeTables (GFM) - #954
Merged
xoofx merged 6 commits intoSep 19, 2026
Merged
Conversation
7 of 35 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR attempts to complete the work started in
Which was part of
This PR adds support for PipeTables. The existing work that was done in #184 was cherry-picked and only updated slightly to catch it up with all of the other changes since it was created.
The original PR was delayed because three of its included tests were failing. This update revalidates the same table-normalization work against the current tree with those same tests, which are now passing without any additional changes. I was able to produce a similar problem that was described in the original PR's comments if I included two of the test cases' tables without a new line between them
will yield
But that is expected, that is one table, where the first 2 rows only have one cell's worth of data, while the remaining three rows have two cells.
I did find one problems while experimenting with this, the original implementation would always include an extra new line after the table. I fixed that and added a test to catch it
PipeTablesFollowedByText.Important
The scope of this PR is PipeTables tables, and as implemented it tries format all tables as PipeTables. So it will try to - and normally fail to - render GridTables as PipeTables
So input like this
Will yield
I could exclude rendering tables if the Grid Extension is in use, but since it gets included with
UseAdvancedExtensionsI think that will result in this getting skipped more often than it needs to be. Additionally without this change it gets rendered as follow which is not any better.