Поддерживать RTL-версию таблиц стилей с конвейером ресурсов rails

Фон

Я хочу включить правую -на -левую локаль, а также левую -на -правую, но я хочу поддерживать только один набор таблиц стилей.

Идея состоит в том, что вызов application-rtl.cssбудет обслуживать rtl -конвертированную версиюapplication.css(используя r2 ).

Эта функциональность имеет два варианта использования -:

  • разработка :служит динамически, конвертируя на лету
  • производство :имеет предварительную компиляцию, генерирующую-rtl версии (расширение ресурсов rake :задача предварительной компиляции)

До сих пор мне удалось реализовать RTLConverter, который позволяет мне обслуживать все мои таблицы стилей, преобразованные в RTL, вообще не касаясь их:

config/initializers/rtl _convert.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

Вы также можете реализовать это как механизм для звездочек, чтобы конвертировать только файлы с расширением .rtl :

Rails.application.assets.register_engine 'rtl', RTLConverter

. Мой вопрос

Как я могу подключиться к конвейеру активов, чтобы:

  1. обслуживать на --конвертированную версию любой таблицы стилей с именем -постфикс '-rtl' (искать файл без постфикса и обслуживать преобразованную версию этого )?
  2. создание преобразованных копий с именем -постфикс '-rtl' всех таблиц стилей во время прекомпиляции

Примечания:

Конвертер не работает в связке с движком sass, но вроде нормально работает с меньше. Он был применен к загрузочному сайту Twitter -и отлично работает.

Преобразователь в производстве не тестировался.

Если я смогу найти достойное решение этой проблемы,Я намерен создать и поддерживать драгоценный камень и вернуть его сообществу.

9
задан j0k 5 June 2013 в 16:41
поделиться