1

我正在使用redcarpet来呈现我的降价文本。这是我正在使用的功能:

def markdown(text)
    render_options = { hard_wrap: true, filter_html: true }
    markdown_options = { autolink: true, no_intra_emphasis: true }
    markdown = Redcarpet::Markdown.new(
      Redcarpet::Render::HTML.new(render_options), markdown_options
    )
    markdown.render(text).html_safe
end

我无法用它呈现列表项。例如:

I am just a sentense
* list item 1
* list item 2

被翻译成:

<p>
  <p>I am just a sentense<br>
     * list item 1<br>
     * list item 2</p>
</p>

但是,如果我不使用句子开始我的文本,例如:

# head
* list me
* and me

一切似乎都很好:

<p>
  <h1>head</h1>
   <ul>
     <li>list me</li>
     <li>and me</li>
    </ul>
 </p>

我知道 redcarpet 使用大胆的火球,但似乎没有任何关于我遇到的问题的文档。

4

1 回答 1

0

这是设计使然

段落只是一个或多个连续的文本行,由一个或多个空行分隔。

也就是说,这被认为是一个单独的段落,并相应地呈现。以空行结束段落,您将获得所需的输出。像这样:

I am just a sentense

* list item 1
* list item 2

UPD:这是 GitHub 使用的实现。奇怪的是,他们也在使用 Redcarpet。配置必须与您的不同。

于 2015-03-30T14:04:43.227 回答