Конвертер Markdown на C#

хотелось бы попросить помощи у знающих людей Как можно написать алгоритм для конвертера Markdown в HTML У меня есть несколько идей, и выглядят они вот так:

        //Это код который я пытался сделать, но я не знаю как сделать закрывающий тег </em>
        string text = textBox1.Text;
        webBrowser1.DocumentText = new Regex("_").Replace(text, "<em>");

Выглядит вывод следующим образом

введите сюда описание изображения

Как видите, после закрытия слово текст продолжает быть курсивным. Это не правильно

По сути программа должна работать следующим образом:

        string s = textBox1.Text;
        string[] CharArray = s.Split('_');
        for (int i = 0; i < CharArray.Length; i++)
        {
            if (i % 2 == 1)
            {
                CharArray[i] = string.Format("<em>{0}</em>", CharArray[i]);
            }
        }
        webBrowser1.DocumentText = string.Join("", CharArray);

Но это очень не корректно. Поэтому прошу помощи Так же буду благодарен, если покажите принцип для других Markdown тегов таких как: Заголовки "#" до 6-го уровня "######" Параграфы до символа переноса строки. Полужирный шрифт "__Текст __". Неупорядоченный список начинается со знака "*". Ещё бы хотел сказать, что на форме я использую для отображения textbox(cвойства Dock = fill, Multiline = true ) и webBrowser(Dock=fill). Размещены оба элемента на SplitContainer в первой и второй Panel Хотел бы сказать, что я знаю, что есть пакеты для конвертации, но мне нужно написать именно алгоритм для преобразования

Чуть-чуть продвинулся в этом Теперь мой код выглядит так:

        var text = textBox1.Text;
        string pattern = @"_(.*?)_";
        string replacement1 = @"<em>$1</em>";
        webBrowser1.DocumentText = Regex.Replace(text,pattern,replacement1);

Но как сделать для остальных символов


Ответы (0 шт):