require a blank line before headings

unless the blankline is at the start of the file
fold on fenced code blocks
make HasSyntaxGroup actually use argument