ruby-on-rails - 在 Rails Controller 或普通 ruby​​ 中检查 CSS?

标签 ruby-on-rails css ruby ruby-on-rails-3 parsing

我需要获取一个数据库文本字段并解析它

  1. 重复和垃圾
  2. 恶意
  3. 白名单选择器
  4. 压缩并输出为css文件

由于可能有一种我不知道的 rails 方式或一些现成的东西,所以我会在浪费时间尝试重新发明轮子之前先问一下。我的搜索没有发现任何内容,主要是在 rails 中似乎针对 View 级别,而 css 似乎是该领域中无人看管的利基市场(尽管有很多 html)。

我知道 sanitize gem(不会立即执行 css,还有另一件事我需要映射和编码)和内置的 rails 东西(不是很多教程,主要针对 View 等级)。我需要可以在 Controller 或队列中使用的 gem、库、模块或类似的东西。

编辑:

无需深入了解元素的细节:管理用户可以为他们的站点部分添加 css。作为流程的一部分,我将保存原始 css,然后处理并保存处理后的 css。 db 的东西大多是存档的,css 文件是立即输出的。因为很少有地方可以添加修改过的 css,而且只有管理员可以访问 css,所以它有点管用,但我希望在未来使它变得更加健壮,因为管理员可能不熟悉安全需求或不像css aware 可以运行。

最基本的例子是它只是管理页面上的一个文本字段。管理员在那里剪切和粘贴 css,提交,应用程序将其转换为包含在指定页面中的 css 文件,这是有效的,因为当前管理员知道应用程序、应用程序的 css 以及他们可以更改和不能更改的内容.目标是让这对 future 可能不那么精明的管理员来说更加稳健。

最佳答案

要简单地清理 CSS,您可以使用 Rails 中内置的 SanitizeHelper:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize_css


你看过 Sass 吗?它内置了所有解析逻辑,用于 CSS 的超集。您可以添加一项功能(Sass 支持),从而省去一次性解析/验证 CSS 的需要。

您可以从 Sass 生成输出 CSS(或者只是纯 CSS,因为 Sass [使用 SCSS 语法] 是一个完全向后兼容的 CSS 超集),如下所示:

output_css = Sass::Engine.new(sass_content, :syntax => :scss).render

您可能想在 http://sass-lang.com/ 上查看许多选项。


另一个选项是 Less。新的 Twitter Bootstrap 框架使用 Less,Rails 3.1 使用 Sass。最大的区别是官方的 Less 解析器/编译器是用 JavaScript 构建的,因此您可以在用户工作时在他们的浏览器中实际验证和编译,并在他们保存之前向他们显示任何错误。当然,如果您仍想使用 Less 来验证传入的 CSS,则需要在 Rails 应用程序中运行 JavaScript 引擎(例如 V8)。

关于ruby-on-rails - 在 Rails Controller 或普通 ruby​​ 中检查 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7809610/

相关文章:

ruby-on-rails - 在 ruby​​ on rails 中导出 Excel

javascript - 在 View 中调用belongs_to关系

javascript - 使用 fullPage.js 时无法单击 Bootstrap 模式对话框

Ruby:将监听套接字绑定(bind)到特定接口(interface)

ruby-on-rails - 如何遍历匹配正则表达式的数组元素?

ruby - 从 ruby​​ 移植到 : find and replace in a file

ruby-on-rails - 区分每个元素中的第一个和最后一个元素?

mysql - 是否有一个引用表显示哪些 mysql 版本受哪些 rails 版本支持?

php mysql登录/注册当前登录用户不同的代码

html - 调整窗口大小时如何使div的背景图像缩小?