add support for codeblocks, good, bad and normal alternating code blocks