如何在没有标签重叠的换行符上插入段落标签?

时间:2018-06-13 15:55:59

标签: html ruby-on-rails ruby

我有一个带有一些HTML标记的字符串,但没有任何段落。我想用段落标签替换换行符,但是如果我这样做的话#34;愚蠢的方式":

html.gsub!(/\s*\n+\s*/, '</p><p>')
html = '<p>' + html + '</p>'

,然后我会得到标记重叠:

This is text. <b>Bold text.\n
Still bold,</b> now plain.

变为:

<p>This is text. <b>Bold text.</p><p>Still bold,</b> now plain.</p>

我知道HTML5允许重叠标签,但它仍然非常非常难看。我想得到这样的东西:

<p>This is text. <b>Bold text.</b></p><p><b>Still bold,</b> now plain.</p>

如何解决此问题?

UPD。 <br/>不是我需要的 - 我打算使用Kramdown和自定义解析器从这个字符串生成Markdown,在字符串中我需要为每个段落打开和关闭标记。

2 个答案:

答案 0 :(得分:0)

插入HTML <br>标记。它们被明确定义为没有配对结束标记的独立标记。如果XHTML仍然是一个东西,它们将是<br/>标签。

答案 1 :(得分:0)

通过添加<br>标记,您可以插入一个换行符。它也没有结束标记,因此无需尝试关闭它。

W3Schools - < br > Tag

更新:

如果您需要配对标签,可以使用CSS创建换行符。

HTML

<p class="break">
  Break right after this and
  <span>before this</span>
</p>

CSS

p.break {
  span {
    display: table;
  }
}

Codepen所示。