当列表前面没有空行时,markdownsharp是否能够制作列表?

时间:2014-06-02 14:28:03

标签: c# markdownsharp

以下是使用markdownsharp的csharp 2010 express中我的项目的一小段摘录:

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



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

我从moduleArray [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>

有谁知道我为什么得到我的输出?即使第一颗子弹被拉进了段落,我觉得它仍然应该最终成为一个列表 - 但是我被这个不重要的细节分散了注意力 - 所有我真正关心的是为什么我的名单不是&#39;住在一起。有些东西正在触发段落模式,我觉得它会以某种方式卡在那里。如果我发现其他任何事情,我会继续查看和更新​​。

修改 由于项目的限制,我会回答下面标记的答案。一些不相​​关的背景信息,以防对其他人有用:

这个项目涉及从半结构化Word文档开始,该文档作为文本保存下来。然后解析文本大约五个值,其中一个是我在我的问题中引用的内容。

从这个解析过的文本中,我有了构建我们称之为“模块”的基础。该模块包括菜单,词汇表,内容页面和一些其他小东西。内容页面就是我在上面的问题中所做的工作。

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

一旦我有降价,我会通过上面链接的markdownsharp运行它。

按照下面的答案,我最终得到了一个我不想要的保证金。为了做到这一点,我使用正则表达式来替换&#34; *&#34;的第一个实例。用&#34; \ n +&#34;然后其余的只是&#34; +&#34;。

我可能只会在结果para中添加一个类,以便我必须添加\ n我真的不想要它的情况。唯一的问题是在我确实需要保证金的情况下不会添加课程,但在我的情况下这样做会很好。

1 个答案:

答案 0 :(得分:0)

我很确定你需要那个空白行才能使它工作,无论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>

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