当列表前面没有空行时,markdownsharp是否能够生成列表

本文关键字:列表 是否 markdownsharp 前面 | 更新日期: 2023-09-27 18:06:10

下面是我在csharp 2010 express项目中的一个小片段,使用markdownsharp:

        MarkdownSharp.Markdown md = new MarkdownSharp.Markdown();

        switch (htmlPageTemplate)
        {
            case "Text.html":
                contentNode.InnerHtml = md.Transform(moduleArray[4, i]);
                break;
        }

我从moddulearray [4, I]中的以下值开始:

Key points are summarized here.
+ Point 1
+ Point 2
+ Point 3
+ Point 4
+ Point 5

我希望得到以下输出:

Key points are summarized here.
<ul>
    <li><p>Point 1</p></li>
    <li><p>Point 2</p></li>
    <li><p>Point 3</p></li>
    <li><p>Point 4</p></li>
    <li><p>Point 5</p></li>
</ul>
相反,我得到:
<p>Key points are summarized here.
+ Point 1</p>
<ul>
    <li><p>Point 2</p></li>
    <li><p>Point 3</p></li>
    <li><p>Point 4</p></li>
    <li><p>Point 5</p></li>
</ul>

我甚至会很高兴:

<p>Key points are summarized here.</p>
<ul>
    <li><p>Point 1</p></li>
    <li><p>Point 2</p></li>
    <li><p>Point 3</p></li>
    <li><p>Point 4</p></li>
    <li><p>Point 5</p></li>
</ul>

<p>Key points are summarized here.
<ul>
    <li><p>Point 1</p></li>
    <li><p>Point 2</p></li>
    <li><p>Point 3</p></li>
    <li><p>Point 4</p></li>
    <li><p>Point 5</p></li>
</ul>
</p>

有人知道为什么我得到我的输出吗?即使第一颗子弹被拉进段落,我觉得它仍然应该以一个列表结束——但是我被那些不重要的细节分散了注意力——我真正关心的是为什么我的列表不能保持在一起。有什么东西触发了段落模式,我感觉它被困在那里了。如果有其他发现,我会继续查找并更新。

编辑:

由于我的项目的限制,我将使用下面标记的答案。一些不相关的背景信息,可能对别人有帮助:

这个项目包括从一个半结构化的Word文档开始,它被保存为文本。然后将文本解析为大约五个值,其中一个是我在问题中引用的内容。

从这个解析的文本中,我有了构建我们称之为"模块"的基础。该模块由菜单、词汇表、内容页面和其他一些小东西组成。内容页是我在上面的问题中所做的。

一旦我准备好构建我的页面,我解析文本内容并将其更改为markdown。大多数情况下,这只涉及Word格式的纯文本列表,这些列表以"*"而不是"+"开头。

一旦我有了markdown,我运行markdownsharp,上面的链接。

按照下面的答案,我最终得到了一个我不想要的空白。为了做到这一点,我使用正则表达式将"*"的第一个实例替换为"'n +",然后其余的仅替换为"+"。

我可能只会在结果参数中添加一个类,以便在我确实不想要的情况下添加'n。唯一的问题是在我想要margin的情况下不添加类,但这在我的情况下会很好。

当列表前面没有空行时,markdownsharp是否能够生成列表

我很确定,无论Markdown解析器如何,您都需要该空行才能使其工作。如果没有空行,它就不知道你想把它和你当前所在的段落区分开来。

StackOverflow有相同的行为:

sdsdasddasdasda
+ 1
+ 2
+ 3

<p>sdsdasddasdasda
+ 1</p>
<ul>
<li><p>2</p></li>
<li><p>3</p></li>
</ul>

,

sdsdasddasdasda
+ 1
+ 2
+ 3

<p>sdsdasddasdasda</p>    
<ul>
<li><p>1</p></li>
<li><p>2</p></li>
<li><p>3</p></li>
</ul>

第二个输出是不是你想要的?