Since I don't know any emacs-based Markdown parsers, I have to say that you need to encode it from scratch. Perhaps this SO Question may throw you a few pointers.
If you decide to go through Emacs-only, then Semantic is an excellent API for this work (it offers you a lexer, a parser and a parser, it has existed for more than ten years and has documentation!). After using the language parser, you will need to do some rendering functions for each type of token. And so you can customize everything.
Although it would be an interesting trip, for sure, I would prefer to use the existing Markdown-> html converter in a separate background process, and then use w3 (m) to preview emacs (as Bozidar suggested). He does his job, and it is much easier to do. There are no serious performance issues, not one of them - you should run this tool quite rarely, so you can save a few milliseconds).
The mixed solution should be to force the Markdown parser to generate HTML directly and view it in the w3 (m) buffer (it takes the rendering weight off your shoulders, you only need to translite the markdown in html and it seems pretty straightforward with semantics).
Edgar Aug 10 2018-10-10T00: 00Z
source share