Skip to content

Conversation

@Anber
Copy link

@Anber Anber commented Aug 31, 2014

No description provided.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.42%) when pulling 945735d on Anber:master into 1791dc6 on andreyfedoseev:master.

@andreyfedoseev
Copy link
Owner

@Anber

Thank you for your contribution. I like the feature that you propose and I'd like to include it.

But I'd prefer not add hashes to compiled file names to keep the names clean. I understand that you do that do force file recompilation when global vars are changed. But I think it's a rare use case, and you can just remove all compiled CSS files to force recompilation.

Could you remove the get_output_filename method from LessCompiler that you added?

Also, I don't understand the purpose of VARIABLE_RE matching for imports, could you elaborate?

If would be great if you could add tests for this new feature. However, I can add it myself.

@Anber
Copy link
Author

Anber commented Aug 31, 2014

Прошу прощения за русский, но так будет проще донести мысль :)

But I'd prefer not add hashes to compiled file names to keep the names clean. I understand that you do that do force file recompilation when global vars are changed. But I think it's a rare use case, and you can just remove all compiled CSS files to force recompilation.

Проблема возникает на мультисайтовости: разные сайты генерируют разные конфиги с разными глобальными переменными. Сходу получилось придумать только вот такое решение. Теоретически можно добавить в static_precompiler.settings флаг, указывающий на использование нескольких сайтов, и разделять генерируемые css по SITE_ID.

Also, I don't understand the purpose of VARIABLE_RE matching for imports, could you elaborate?

Генерация зависимостей подавилась переменными в импорте, а ради них всё и затевалось. Если переменная из LESS_GLOBAL_VARS, то значение можно подставить, а вот как быть с остальными переменными — непонятно.

If would be great if you could add tests for this new feature. However, I can add it myself.

Тесты добавлю.

@andreyfedoseev
Copy link
Owner

Может быть разнести разные сайты по разным папкам? Чтобы у каждого был свой STATIC_ROOT и своя статика?

Еще вариант: если есть возможность отказаться от @import и просто подключить этот файл как отдельную таблицу стилей, то тогда в шаблоне можно сделать

{% if SITE_ID == 1%} <link href="{% compile "site1.less" %}"> {% endif %} 

Либо сделать templatag для этого, который будет подключать нужные стили в зависимости от SITE_ID. В нём можно использовать функцию compile.

@Anber
Copy link
Author

Anber commented Aug 31, 2014

Практически вся статика и стили идентичны и вычисляются на основе небольшого набора параметров, подключаемых в основной less-файл через
@import "@{SITE}.less";

Через link тоже не вариант, так как переменные не подцепятся к основному файлу.

Может задавать в конфиге необязательную лямбду для генерации source_filename? Тогда можно будет гибко раскладывать генерируемые файлики по нужным папкам.

@Anber
Copy link
Author

Anber commented Aug 31, 2014

Даже не для source_filename, а для source_dir

@andreyfedoseev
Copy link
Owner

Может тебе тогда сделать свой компилятор на базе LessCompiler? Я понял суть проблемы, но мне кажется, что она всё-таки слишком специфична, чтобы в общий код это вносить.

@Anber
Copy link
Author

Anber commented Aug 31, 2014

Рискну предложить версию без хэшей :)

@coveralls
Copy link

Coverage Status

Coverage increased (+0.02%) when pulling 7e093f7 on Anber:master into 1791dc6 on andreyfedoseev:master.

@Anber
Copy link
Author

Anber commented Aug 31, 2014

Да, кстати, юниттесты по sass падают из-за отсутствия в репозитории следующих папок:
django-static-precompiler/sass
django-static-precompiler/static_precompiler/tests/static/sass
django-static-precompiler/static_precompiler/tests/staticfiles_dir/sass
Надо бы что-нибудь в них положить, чтоб гит их подтянул.

@andreyfedoseev
Copy link
Owner

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

@Anber
Copy link
Author

Anber commented Sep 4, 2014

А чем мешает многосайтовость, если без параметра в конфиге она никак не проявляется?

@andreyfedoseev
Copy link
Owner

Это дополнительный функционал, который нужно поддерживать (код, тесты, документация). При этом, мне кажется, что юзкейс достаточно редкий, чтобы вносить добавлять эту функцию в основной код. Именно для таких редких юзкейсов я и сделал возможность использовать кастомные компиляторы.

@andreyfedoseev
Copy link
Owner

I'm going to add support for --global-var option in 1.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants