Shp*_*ord 5 format text ruby-on-rails helper
这是输入HTML:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Run Code Online (Sandbox Code Playgroud)
如果我通过Rails传递它simple_format,输出是:
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p><ul>
<br /> <li>Item 1</li>
<br /> <li>Item 2</li>
<br /> <li>Item 3</li>
</ul></p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
Run Code Online (Sandbox Code Playgroud)
注意<br />每个列表项之前的.
我怎么能simple_format不这样做?
最终我想要做的是在尚未包含在某种标签中的内容周围添加段落标签(即.blockquote,ul,ol).
我遇到了同样的问题.这是如何解决它!
将simple_format输出包装在div中,如下所示:
<div class="single-spacing">
<%= simple_format @your_content %>
</div>
Run Code Online (Sandbox Code Playgroud)
然后将其添加到CSS文件中:
.single-spacing {
ul br {
display: none;
}
}
Run Code Online (Sandbox Code Playgroud)
或者,当您真正想要br列表中的某些内容时,可以添加此CSS:
.single-spacing{
ul li br:first-child, ol li br:first-child {
display: none;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图将它作为一个类添加到simple_format本身(这是一个选项),但由于某种原因它不起作用.把它放在DIV中.
不知道为什么simple_format会将这些额外
的内容添加到一个简单的列表中,但是嘿嘿.
迈克尔
据我所知, simple_format 的设计目的只是解决换行符 '\n' (当您按 Enter 键时创建)
simple_format 创建一个<br />for \n 和<p>for \n\n
simple_format 并不是真正设计用于处理现有的 html 输入,而是更多地用于数据库和文本字符串等中的 text_area 字段。
请参阅 Rails 文档以获取示例:ActionView - simple_format
有一些建议可以使用 content_tag 包装整个输入:
<%= content_tag :p, :class => "strong" do -%>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<% end -%>
Run Code Online (Sandbox Code Playgroud)
或者如果可能的话,格式化你的 html 而不换行:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
<ul> <li>Item 1 </li> <li>Item 2</li> <li>Item 3</li> </ul>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Run Code Online (Sandbox Code Playgroud)
这些都是相当hackish的,最好的解决方案是在调用显示之前将所有输入存储为html。但不知道如何获取输入,很难提出一种方法来做到这一点。
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |