首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的文本区域中显示标记

在我的文本区域中显示标记
EN

Stack Overflow用户
提问于 2009-10-24 13:56:13
回答 1查看 798关注 0票数 2

我正在使用BlueCloth从我的用户输入文本区域的内容中创建html,如下所示:

代码语言:javascript
复制
def create
  @post = Post.new(params[:post]) do |post|
    body = BlueCloth.new(post.body) 
    post.body = body.to_html
  end

...

end

这个很好用!我可以很好地将html存储在数据库中,但是当用户进行编辑时,如何在文本区域中显示markdown呢?我试过了:

代码语言:javascript
复制
def edit
  @post = Post.find(params[:id])
  @post.body = BlueCloth.new(@post.body)
  @post.body.text
end

我的文本区域中的输出如下所示:

代码语言:javascript
复制
#<BlueCloth:0x10402d578>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-24 14:37:57

Bluecloth的文档定义不是很好。我不确定有没有一种简单的方法来转换html =>标记。

然而,没有什么能阻止你将markdown存储在数据库中,并在必要时将其转换为html。

如果您希望@post.body返回的html是默认值,那么您可以始终覆盖访问器。

代码语言:javascript
复制
class Post < ActiveRecord::Base
  ...
  def body
    BlueCloth.new(@body).to_html
  end

  def markdown
    @body
  end
end

现在@post.body返回html版本的markdown。而@post.markdown则返回markdown源。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1617093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档