mrmlnc / yellfy

:wolf: :construction: Yellfy is a simple template for your new web application or website.
32 stars 8 forks source link

Замена Pug на SugarML или Slm #26

Closed mrmlnc closed 7 years ago

mrmlnc commented 7 years ago

Весьма сложное решение, но его нужно либо принять, либо решить сложившуюся проблему с Pug.

Проблема

Я выжил максимум из Pug, когда написал Yellfy-pug-inheritance, так как остальное время жуёт сама компиляция и чтение файлов, которое Pug делает синхронно.

У меня есть написанный на Pug фронтенд одного интернет-магазина (средний по размерам), где в качестве демо данных используются JSON-файлы и на их основе генерируются страницы. Итак, дело в том, что на странице каталога и продукции я имею два цикла, несколько условий и присваиваний, а также около пяти вызовов миксинов с SVG-иконками. Эта страница генерируется почти две секунды. Остальные страницы генерируются по секунде каждая (+/-30%). Итого 20+ страниц генерируются около 15-17 секунд.

Решение

Так как из Pug я выжать больше ничего не смогу, то нужно думать об его замене.

Slm

Почти полная альтернатива Jade, которая в 13 раз быстрее своего предка. Нет миксинов и его создатель весьма неактивен в репозитории.

SugarML

Весьма простой вариант синтаксиса Jade, предоставляющий лишь синтаксис основанный на индентации. Весь остальной функционал наращивается за счёт плагинов. Основная проблема в том, что существует более сведал версия под Reshape и старая под PostHTML.

Обидно, но, так как Reshape использует другой парсер, то SugarML немного отличается от того, что предложен в PostHTML. Единственный плагин, которого мне не хватает в Reshape — это миксины. Однако, его можно написать, ибо он весь простой. Остальные плагины мне особо не нужны, так как в первую очередь я хочу:

mrmlnc commented 7 years ago

Осталось переписать или доработать SugarML для PostHTML и можно переезжать.

mrmlnc commented 7 years ago

PostHTML + SugarML