Markdown渲染换行符

时间:2018-10-17 23:52:56

标签: ruby-on-rails format ruby-on-rails-5 markdown

我正在研究一个项目,并给用户提供创建帖子的可能性。 加载帖子后,我将调用 markdown 方法,以提取链接并设置文本格式。

现在我遇到了问题。 通过编写“ 1。示例” ,Post中的输出是一个列表。 只需编写“ 1.Example” _,在点和文本之间没有空格,就可以正常工作。 我的降价方法:

sed -e "s/'\?\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\).*$/\"\1\"/"

也许你知道,如何解决它。我不想要列表,我只希望输出与输入一样!

谢谢您的光临!

EDIT (添加图片)以显示输出。enter image description here

2 个答案:

答案 0 :(得分:0)

默认情况下,您将获得列表。 Markdown毕竟是在寻找能够识别的语法以生成标记。

为了跳过某些降价功能,我认为您需要提供自己的custom renderer

如果您定义新的渲染器:

class NoListRenderer < Redcarpet::Render::HTML
  def list(contents, list_type)
    contents
  end

  def list_item(text, list_type)
    text
  end
end

,并在创建markdown实例时使用该实例的实例代替默认渲染器类,它应跳过默认列表处理。 (注意。我尚未测试此代码):

renderer = NoListRenderer.new(options)
markdown = Redcarpet::Markdown.new(renderer)

答案 1 :(得分:0)

您想在Markdown来源中使用backslash escape。如规则所述:

  

Markdown允许您使用反斜杠转义符来生成原义字符,否则这些字符在Markdown的格式语法中将具有特殊含义。

反跳转义支持的字符中的点是(.)。因此,您的源文本应如下所示:

1\. Example

此HTML的结果:

<p>1. Example</p>

并呈现为:

  

1。例子