Custom markdown parser