将Markdown转换为纯文本

时间:2020-05-11 15:29:27

标签: c# html asp.net-core markdown

我正在考虑将一些Markdown文本转换为纯文本。阅读了现有问题之后,很明显,最简单的解决方案是使用现有转换器将Markdown转换为HTML,然后将HTML转换为纯文本。但是,我仍然有些困惑,因为我需要保留来自html的tag href。

例如 此降价促销“某些文本[点击此处](https://somelink.com)” 转换为html

<p>some text <a href="https://somelink.com">click here</a></p>

然后当我将该html转换为纯文本时 “一些文字请点击这里”

如何将原始降价转换为“某些文本https://somelink.com”之类的

1 个答案:

答案 0 :(得分:0)

根据Judah Gabriel Himango here的回答,我对遍历html元素的方法进行了更改。

我为A标记添加了切换用例,以获取属性值,并且还设置了一个标志,以停止通过a标记子代迭代的方法,因为它对我来说很重要。

                case HtmlNodeType.Element:
                switch (node.Name)
                {
                    case "p":
                        // treat paragraphs as crlf
                        outText.Write("\r\n");
                        break;
                    case "br":
                        outText.Write("\r\n");
                        break;
                    case "a":
                        outText.Write($"{node.Attributes.FirstOrDefault(x => x.Name == "href")?.Value}");
                        isATag = true;
                        break;
                }

                if (node.HasChildNodes && !isATag)
                {
                    ConvertContentTo(node, outText);
                }
                break;