如何将语法突出显示应用于 ActiveAdmin 行?

How can I apply syntax highlighting to an ActiveAdmin row?

我将 Ruby 代码存储在数据库中,这样如果管理员需要调整代码逻辑,他们可以使用 ActiveAdmin 进行编辑。我的应用程序是以这种方式编写的,可以从数据库中加载和调用此代码。

我现在的问题是在 ActiveAdmin UI 显示页面中呈现的文本不是非常可读的代码,因为它不是等宽的或突出显示的语法。如何将语法突出显示应用于此特定行?

你会用 Rouge gem 吗?如果是这样,您可以包装您的代码还是需要猴子修补 ActiveAdmin?还有哪些其他解决方案?

ActiveAdmin.register Model do
  show do |model|
    attributes_table do
      row :name
      row :logic # render this logic text as Ruby code
      row :created_at
      row :updated_at
    end
  end
end

您应该能够使用 Arbe 语法将其包装在 precode 标记中:

ActiveAdmin.register Model do
  show do |model|
    attributes_table do
      row :name
      row :logic, do |logic|
        pre( code(model.logic, class: 'lang-ruby') )
      end
      row :created_at
      row :updated_at
    end
  end
end

您也可以使用 code 标签代替 pre,它们只是略有不同。无论哪种方式,都应该使用 CSS.

进行更严格的定制

原发帖人注意:如果使用 highlight.js.

,请用 pre 包裹 code