Вы можете использовать Pandoc с оберткой, как показано в ответе на этот вопрос:
Конвертировать HTML или RTF в Markdown или Wiki-совместимый синтаксис?
Edit:
Вот слегка измененная (для удаления ресурсов процесса) версия функции, которую @ Rob писал:
private string Convert(string source) {
string processName = @"C:\Program Files (x86)\Pandoc\bin\pandoc.exe";
string args = "-r html -t markdown";
ProcessStartInfo psi = new ProcessStartInfo(processName, args) {
RedirectStandardOutput = true,
RedirectStandardInput = true,
CreateNoWindow = true,
UseShellExecute = false
};
var outputString = "";
using (var p = new Process()) {
p.StartInfo = psi;
p.Start();
byte[] inputBuffer = ASCIIEncoding.UTF8.GetBytes(source);
p.StandardInput.BaseStream.Write(inputBuffer, 0, inputBuffer.Length);
p.StandardInput.Close();
using (var sr = new StreamReader(p.StandardOutput.BaseStream)) {
outputString = sr.ReadToEnd();
}
}
return outputString;
}
Я не уверен, насколько это практично, но это работает.