Make a intuitive markdown parser with many extensions I want.
This is not 100% compatible with CommonMark specification, because I want keep the logic simple. The goal of specification is be compatibility and unambiguous, so there are many detail constrait that we actually won't meet.