3

我正在尝试自定义active_admin_editor gem 功能区上的按钮。根据文档,我设置了 initializers/active_admin_editor.rb 只是为了测试它:

ActiveAdmin::Editor.configure do |config|

  config.parser_rules['tags']['h1'] = {
    'remove' => 1
  }
  config.parser_rules['tags']['h2'] = {
    'remove' => 1
  }
  config.parser_rules['tags']['h3'] = {
    'remove' => 1
  }  
end

但无济于事。我做了

rm -rf tmp/cache

按照文档中的建议,我多次重新启动服务器,但更改仍然无效,并且 h1、h2、h3 按钮仍然显示。可能是什么问题呢?

4

1 回答 1

2

你好!

解析器是读取您的输入并定义是否已附加样式的位,例如您是否从另一个 html 页面复制并粘贴一些内容。如果该样式在块中适用或不适用,那么您是对的.

我的另一个想法是首先停用所有选择器,然后一个一个地重新激活它们。我认为这是一件好事,因为用户通常倾向于将格式化的文本复制到其中。这是我的解决方案:

ActiveAdmin::Editor.configure do |config|
  config.parser_rules['tags'] = {
    'remove' => 1
 }
  config.parser_rules['tags']['h3'] = {
    'remove' => 0
  }
  config.parser_rules['tags']['p'] = {
    'remove' => 0
  }
end

但这不会影响您可能通过插入一点 css hack 来删除的按钮:

 .toolbar a[title="bold"]{
    display: none;
 }

这两个资源可能会有所帮助:

https://github.com/xing/wysihtml5/blob/master/parser_rules/advanced.js

https://github.com/ejholmes/active_admin_editor/blob/master/app/assets/javascripts/active_admin/editor/templates/toolbar.jst.ejs

这是我在 Stackoverflow 上的第一个答案,所以我希望这是一个不错的答案。干杯!

于 2013-12-03T18:11:27.657 回答