Hi Dave,
I encountered the same issue of unwanted blank lines on top of my tables when I enclose table rows with [time-restrict]
shortcodes in order to schedule their visibility.
I couldn’t resolve this by programmatically, but when I looked on the generated code, I had an idea : why not find/remove the unwanted markups ? I had a manageable situation for this trick : my scheduled table rows were surrounded by <p> and br/
when they were visible.
I found these plugins to remove/replace strings : Replace Word and Real-Time Find and Replace. I chose the last one, as it works after generating the page but before its rendering : why not trying ?
After installation and configuration, scheduling a row, empty cache…
Everything fine : No more blank lines, table row hidden/showed as wanted ! And in the HTML code, no <br>
in my table.
I know this is a workaround, and it may not be suitable for all situations, but it can help.