I recently made a markdown parser that is essentially this. It runs my blog. My table parser is non-standard, though, as I hate typing up markdown tables. Instead, I’m using a special code block “gen:table” and I just type up a whitespace-aligned table.
The raw markdown table ends up looking like a table even with standard markdown processors since it just renders as an unknown code block.