Преобразование HTML в синтаксис Markdown программно - PullRequest
4 голосов
/ 24 июня 2011

Я занимаюсь разработкой своего блогового движка, основанного на хранилище файловой системы, очень заинтересованного в использовании Markdown для сжатия файлов и хранилищ. Я могу выяснить, когда пользователь отправляет контент с помощью редактора Markdown (который я сейчас использую при написании кода !!), но также хотел бы расширить эту функцию, разрешив Window Live Writer и Metablog API, поэтому это очень важно. для меня, чтобы преобразовать наоборот (HTML -> разметка).

Я не могу найти ни одного примера или конкретного фрагмента кода, который мог бы мне помочь. Консультирование будет высоко ценится.

Ссылка: http://code.google.com/p/markdownsharp/

Я использую вышеуказанный репозиторий.

унывайте! Nilay.

1 Ответ

2 голосов
/ 24 июня 2011

Вы можете использовать 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;
}

Я не уверен, насколько это практично, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...