- PVSM.RU - https://www.pvsm.ru -
Предыдущий пост [1] с описанием фреймворка maxmertkit [2] получил большой отклик. Фреймворк особенно понравился, почему-то, японцам, но наилучшую конструктивную критику и помощь я получил от хабрасообщества. Теперь к делу.
Нынешние фреймворки, включая мой, имеют модульную структуру. Но все эти модули в некоторой степени являются зависимыми друг от друга. Это плохо. Именно эту проблему я и хочу решить.
Приведу пример.
Предположим у меня есть виджет кнопка. Он входит в состав виджета группа. Я могу использовать кнопку как отдельно, так и в составе группы. Но что если я меняю кнопку по моему усмотрению? Тогда в составе группы она тоже изменится, но я хочу, чтобы в группе она выглядела как и прежде.
Хорошего решения этой проблемы, к сожалению, пока нет. Поэтому я приступил к своему второму проекту, который эту проблему решит: mwm (maxmertkit widget manager).
Вдохновленный идеей npm, я уже сделал сам менеджер (буду выкладывать позже со статьёй-пояснением), а сейчас занимаюсь разработкой портала с виджетами и темами.
Например, для установки виджета кнопка (в html-коде нужно будет использовать класс .-btn
)
mwm install btn
После этого менеджер скачает этот виджет, скомпилирует ваш фреймворк и результат запишет в css-файл. Все, что вам остается делать – это использовать его!
Если вам нужен виджет с определенными темами (которые вы нашли на портале), то
mwm install group -t error warning
Теперь вы можете использовать темы для этого виджета:
<div class="-group -error-">
<a href="#" class="-btn">button 1</a>
<a href="#" class="-btn">button 2</a>
</div>
Что же с зависимостью виджета group от виджета btn? Как и в nodejs, они независимы друг от друга. Это становится возможным благодаря SASS-коду, который генерируется с помощью nodejs и помещается в папку зависимостей конкретного виджета. Можете менять виджет btn, он не будет модифицирован внутри group.
Как и прежде в maxmertkit [2] любая тема будет применима к любому виджету, но вы можете конкретно указать какую тему вы хотите использовать с каким виджетом. Это сокращает объем css-кода.
Вы сможете публиковать виджеты точно так же, как и в npm.
Как и в npm, в maxmertkit widget manager есть файл maxmertkit.json, в котором описывается ваш css-фреймворк и его зависимости. То есть обнаружив новую версию css-виджета на портале, вы меняете его версию в maxmertkit.json и выполняете
mwm update
Точно так же вы можете менять темы, которые использует ваш виджет.
Я хотел выложить сам менеджер уже сейчас, но он бесполезен без портала, поэтому я опубликую все сразу. Сроки? Я планирую через два месяца. Пока я организовал сбор средств, деньги с которого пойдут на оплату сервера, где будет развернут maxmertkit-портал с виджетами, темами и модификаторами – https://www.bountysource.com/#fundraisers/85 [3].
Спасибо за отзывы по поводу maxmertkit, я вам очень благодарен!
Сайт – http://maxmert.com/ [4]
Github – https://github.com/maxmert/maxmertkit [5]
Автор: maxmert
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/node-js/26140
Ссылки в тексте:
[1] пост: http://habrahabr.ru/post/165373/
[2] maxmertkit: http://maxmert.com
[3] https://www.bountysource.com/#fundraisers/85: https://www.bountysource.com/#fundraisers/85
[4] http://maxmert.com/: http://maxmert.com/
[5] https://github.com/maxmert/maxmertkit: https://github.com/maxmert/maxmertkit
[6] Источник: http://habrahabr.ru/post/167951/
Нажмите здесь для печати.