2013-07-25 7 views
3

Итак, я в этом проекте. У нас есть работающее приложение, которое одинаково для всех клиентов, которые у нас есть. Единственное, что меняется, это немного (чистый) CSS. Большая проблема заключается в том, что для каждой страницы у нас есть таблица стилей CSS, и для каждого клиента у нас есть тот же лист с внесенными вами конкретными изменениями.Повторное использование кода с LESS

Я думаю о том, как уменьшить этот избыточный код и начать использовать прекомпилятор CSS одновременно, чтобы облегчить наш процесс разработки, например LESS. Но у нас есть некоторые основные правила, которые:

  • код рефакторинга плохая идея, это слишком много кода, и это просто не стоит
  • Окончательный CSS размер файла не может получить больше, наши сайты имеют очень тяжелые трафика

Моя первая идея, должна была написать препроцессор, позволяющий «расширения» листы, как расширение представления, с блоками и прочее (like this), а затем написать небольшой скрипт, который Diffs файлы и автоматически расширяет его , и создает файл только с различиями, например:

/** @extends: site/Home/Test */ 

#square-test { 
    background: #C00; 
} 

Но это просто кажется сложным и немного беспорядочным. Кто-то был в той же ситуации? Как вы с этим справились? У кого-нибудь есть другие идеи?

Я очень благодарен вам за помощь.

EDIT:

Я использую регулярные ЛАМПЫ, PHP 5.3.newer.

+0

Если вы будете работать и развивать эту базу кода в течение некоторого времени, я бы сказал, что рефакторинг - отличная идея. Просто потому, что это сложно, это не значит, что это не должно быть сделано. Рефакторинг вашего кода - одна из лучших инвестиций, которую вы можете сделать, чтобы хеджировать технический долг. –

+0

Какова ваша серверная среда? Если вы используете ASP.NET, вы можете использовать текстовый процессор T4 (но вы найдете реализации для многих языков). –

+0

@PaulSasik, скажем, что я получаю «да» для рефакторинга кода. Как бы Вы это сделали? –

ответ

0

Вы можете использовать sass для простого или простого импорта таблицы стилей, а затем вы можете создать файл sass с параметрами, который имеет такие переменные, как цвета, стили кнопок или любые изменения, которые вам нужны.

@import "settings"; //site specific settings 
@import "allsites"; //styles for all sites 
//any site specific rules here 

http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#import

Это способ, который работает большинство интерфейсных структур. У них есть правила, которые работают на все настройки, чтобы они легко настраивались.

Смежные вопросы