Edit: Eu aprendi recentemente sobre um projeto chamado CommonMark, que identifica e lida corretamente com as ambiguidades na especificação Markdown original. http://commonmark.org/ Possui excelente suporte à biblioteca C #.
Você pode encontrar a sintaxe aqui .
A fonte que se segue ao download está escrita em Perl , que não tenho a intenção de honrar. É repleto de expressões regulares e conta com hashes MD5 para escapar de certos caracteres. Algo está errado nisso!
Estou prestes a codificar um analisador para Markdown . O que é experiência com isso?
Se você não tem nada significativo a dizer sobre a análise real de Markdown, me poupe tempo. (Isso pode parecer difícil, mas sim, estou procurando informações, não uma solução, ou seja, uma biblioteca de terceiros).
Para ajudar um pouco nas respostas, expressões regulares são destinadas a identificar padrões ! NÃO para analisar uma gramática inteira. O fato de as pessoas considerarem isso é foobar.
- Se você pensa em Markdown, é fundamentalmente baseado no conceito de parágrafos.
- Como tal, uma abordagem razoável pode ser dividir a entrada em parágrafos.
- Existem muitos tipos de parágrafos, por exemplo, cabeçalho, texto, lista, citação em bloco e código.
- O desafio é, portanto, identificar esses parágrafos e em que contexto eles ocorrem.
Voltarei com uma solução, quando achar que vale a pena ser compartilhada.