我正在使用 BlueCloth 从用户输入文本区域的内容中通过 markdown 创建 html,如下所示:
def create
@post = Post.new(params[:post]) do |post|
body = BlueCloth.new(post.body)
post.body = body.to_html
end
...
end
这太棒了!我可以很好地获取存储在数据库中的html,但是当用户编辑时如何在文本区域中显示markdown?我试过:
def edit
@post = Post.find(params[:id])
@post.body = BlueCloth.new(@post.body)
@post.body.text
end
我的文本区域中的输出如下所示:
#<BlueCloth:0x10402d578>
Bluecloth 的文档定义不是很好。我不确定是否有一种简单的方法来转换 html => markdown。
但是,没有什么可以阻止您将 markdown 存储在数据库中,并根据需要将其转换为 html。
如果您希望 html 成为 @post.body 返回的默认值,那么您始终可以覆盖该访问器。
class Post < ActiveRecord::Base
...
def body
BlueCloth.new(@body).to_html
end
def markdown
@body
end
end
现在 @post.body 返回 markdown 的 html 版本。而 @post.markdown 返回 markdown 源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)