Поскольку я не знаю ни одного парсера Markdown, основанного на emacs, я должен сказать, что вы должны кодировать его с нуля. Может быть, этот ТАК вопрос может на вас навести указатели.
Если вы решите пройти путь только для Emacs, то Semantic является отличным API для этой работы (он предлагает вам лексер, парсер-генератор и парсер; он существует уже более десятилетие, и у него есть документация!). После того, как у вас будет синтаксический анализатор языка, вам нужно будет сделать несколько функций рендеринга для каждого типа токенов. И таким образом вы можете настроить все.
Хотя это было бы просветляющим путешествием, я, конечно же, выбрал бы использование существующего конвертора Markdown-> html в отдельном фоновом процессе, а затем использовал w3 (m) для предварительного просмотра emacs (как предложил Божидар). Это делает работу, и это намного проще сделать. Никаких серьезных проблем с производительностью тоже нет - вы должны запускать этот инструмент довольно редко, чтобы вы могли легко сэкономить несколько дополнительных миллисекунд).
Смешанным решением было бы заставить парсер Markdown генерировать HTML напрямую и просматривать его в буфере w3 (m) (он снимает вес рендеринга с ваших плеч, вам нужно только транслитерировать уценку в html, и это с Semantic выглядит довольно просто).