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

これは設計によるものです

段落は、1 行以上の空白行で区切られた 1 行以上の連続したテキスト行です。

つまり、これは単一の段落と見なされ、それに応じてレンダリングされます。空白行で段落を終了すると、目的の出力が得られます。そのようです:

I am just a sentense

* list item 1
* list item 2

UPD:これは GitHub が使用する実装です。興味深いのは、彼らも Redcarpet を使用していることです。構成はあなたのものとは異なる必要があります。

于 2015-03-30T14:04:43.227 に答える