Streaming markdown parser