1

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

        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>

有谁知道我为什么得到我的输出?即使第一个项目符号被拉到段落中,我觉得它仍然应该作为一个列表结束——但我被那个不重要的细节分散了注意力——我真正关心的是为什么我的列表没有保持在一起。有些东西正在触发段落模式,我觉得它不知何故被卡在那里。如果我发现任何其他内容,我会继续在这里查找和更新。

编辑: 由于我的项目的限制,我将使用下面标记的答案。一些不相​​关的背景信息,以防对其他人有帮助:

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

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

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

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

带着下面的答案,我最终得到了我不想要的利润。为了做到这一点,我使用正则表达式将“*”的第一个实例替换为“\n +”,然后将其余的替换为“+”。

对于我必须在我真的不想要它的地方添加 \n 的情况,我可能只会在结果 para 中添加一个类。唯一的问题是在我确实想要保证金的情况下不添加课程,但这在我的情况下可以正常工作。

4

1 回答 1

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>

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

于 2014-06-02T14:36:03.667 回答