Дерзкий огненный шар: список уценок не работает

Я использую 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 использует дерзкий огненный шар, но, похоже, нет никаких документов о проблеме, с которой я столкнулся.

1 ответ

Решение

Это по замыслу.

Абзац - это просто одна или несколько последовательных строк текста, разделенных одной или несколькими пустыми строками.

Тем не менее, это считается одним пунктом и представляется соответственно. Завершите абзац пустой строкой, и вы получите желаемый результат. Вот так:

I am just a sentense

* list item 1
* list item 2

UPD: вот реализация, которую использует GitHub. Любопытно, что они тоже используют Redcarpet. Конфигурация должна отличаться от вашей.

Другие вопросы по тегам