背景
我想启用从右到左的语言环境以及从左到右,但我只想维护一组样式表。
这个想法是调用application-rtl.css
将提供application.css
(使用 r2)的 rtl 转换版本。
此功能有两个用例:
- 开发:动态服务,即时转换
- 生产:让预编译生成-rtl版本(扩展 rake 资产:预编译任务)
到目前为止,我已经成功地实现了一个 RTLConverter,它使我能够提供所有转换为 RTL 的样式表,而无需触及它们:
配置/初始化程序/rtl_converter.rb:
require "r2"
require "tilt"
class RTLConverter < Tilt::Template
def prepare; end
def evaluate(context, locals, &block)
R2.r2 @data
end
end
Rails.application.assets.register_preprocessor 'text/css', RTLConverter
您还可以将其实现为 sprockets 的引擎,以仅转换具有.rtl扩展名的文件:
Rails.application.assets.register_engine 'rtl', RTLConverter
我的问题
我如何才能连接到资产管道以便:
- 使用名称后缀“-rtl”提供任何样式表的即时转换版本(查找没有后缀的文件并提供其转换版本)?
- 在预编译期间使用所有样式表的名称后缀“-rtl”创建转换后的副本
笔记:
该转换器不能与 sass 引擎一起使用,但似乎可以正常工作。它已被应用到一个基于 twitter-bootstrap 的网站上,并且就像一个魅力。
该转换器尚未在生产中进行测试。
如果我能找到一个体面的解决方案来解决这个问题,我打算创建和维护一个 gem 并将其回馈给社区。