加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 帮助程序中的HAML过滤器

发布时间:2020-12-17 03:41:33 所属栏目:百科 来源:网络整理
导读:辅助函数可以接收它们生成的块以呈现块.有时候我希望用过滤器指定该块.例如: = doc_page title: 'FAQ' do :markdown # Welcome to the *FAQ* 这不是那么干,因为我们总是一起写doc_page和markdown.我可以让辅助方法接受一个块并将其传递给HAML过滤器.就像是
辅助函数可以接收它们生成的块以呈现块.有时候我希望用过滤器指定该块.例如:

= doc_page title: 'FAQ' do
  :markdown
    # Welcome to the *FAQ*

这不是那么干,因为我们总是一起写doc_page和markdown.我可以让辅助方法接受一个块并将其传递给HAML过滤器.就像是:

= doc_page title: 'FAQ' do
  # Welcome to the *FAQ*

在这个幻想中,doc_page是一个辅助方法,可以完成一些设置,然后通过降价传递内容,从而使我们无需在任何地方声明:降低标记并使世界成为干燥的地方.

解决方法

目前,无法在帮助程序中使用过滤器.另一种方法是使用redcarpet来解析markdown,然后将输出传递给帮助器.

一个例子是:

= doc_page title: 'FAQ',:markdown do
  ### my markdown

= doc_page title: 'FAQ' do
  normal html

doc_page的实现将是这样的:

def doc_page(title,markup=:html)

  content = yield

  if markup == :markdown
    markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
    content = markdown.render(content)
  end

  content
end

这将解决您的问题,因为您在帮助程序中定义了降价过滤器.而且你的haml中不需要额外的缩进级别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读