Skip to content

Latest commit

 

History

History
299 lines (247 loc) · 7.18 KB

README.md

File metadata and controls

299 lines (247 loc) · 7.18 KB

Jade mixins для генерации настроек темы InSales

Установка инструментов

Для работы нужен установленный Node.js.

Если Node.js установлен, скачиваем или клонируем данный проект к себе на компьютер.

Далее в командной строке находим папку проекта, например:

cd c:\settings

Далее выполняем команду:

npm install

NPM установит в папку с проектом нужные пакеты.

После чего в командной строке можно запустить Gulp:

gulp

Если вы пользуетесь Sublime Text и не хотите вникать в Gulp.js

Можно установить пакет компилятора в свой редактор, но установка node.js обязательна, так же обязательно установить Jade через NPM глобально.

* Windows: `npm install jade --global`

* OS X: `sudo npm install jade --global`

Так же можно использовать онлайн компилятор, но для него миксины нужно вставлять со всем контентом.

Работа с проектом

Jade фалы для компиляции лежат в папке ./set/ и компилируются в папку ./public/.

Миксины находятся в папке ./set/part/ и подключаются в файлы из папки ./set/ через include ./part/mixin.jade

Пример написания settings.html:

Jade

include ./part/mixin.jade
fieldset
  legend Логотип
  table
    +image('Загрузить логотип', 'logo', 'logo.png', '500', '300')

HTML

<fieldset>
  <legend>Логотип</legend>
  <table>
    <tr>
      <td>
        <label for="logo">Загрузить логотип</label>
      </td>
      <td>
        <input name="logo.png" id="logo" type="file" data-max-width="500" data-max-height="300"/>
      </td>
    </tr>
  </table>
</fieldset>

Больше примеров работы с миксинами можно посмотреть в файле ./set/test.jade.

Список миксинов

  • head(name)
  • color(label, id, value)
  • checkbox(label, id)
  • radio(label, id, value, name)
  • txt(label, id)
  • file(label, id, name)
  • image(label, id, name, width, height)
  • select(label, id, value, groups)

head(name)

Вызов:

+head('Заголовок')

Результат:

<tr>
  <td colspan="2">
    <h2>Заголовок</h2>
  </td>
</tr>

color(label, id, value)

Вызов:

+color('Label name', 'main_color', '#fff')

Результат:

<tr>
  <td>
    <label for="main_color">Label name</label>
  </td>
  <td>
    <input name="main_color" id="main_color" value="#fff" class="color"/>
  </td>
</tr>

checkbox(label, id)

Вызов:

+checkbox('label name', 'main_checkbox')

Результат:

<tr>
  <td>
    <label for="main_checkbox">label name</label>
  </td>
  <td>
    <input name="main_checkbox" id="main_checkbox" type="checkbox"/>
  </td>
</tr>

radio(label, id, value, name)

Вызов:

+radio('Main label 1', 'main_label_1', '1', 'main_label')
+radio('Main label 2', 'main_label_2', '2', 'main_label')

Результат:

<tr>
  <td>
    <label for="main_label_1"></label>
  </td>
  <td>
    <input name="main_label" id="main_label_1" type="radio" value="1"/>
  </td>
</tr>
<tr>
  <td>
    <label for="main_label_2"></label>
  </td>
  <td>
    <input name="main_label" id="main_label_2" type="radio" value="2"/>
  </td>
</tr>

txt(label, id)

Вызов:

+txt('label name', 'main_txt')

Результат:

<tr>
  <td>
    <label for="main_txt">label name</label>
  </td>
  <td>
    <input name="main_txt" id="main_txt" type="text"/>
  </td>
</tr>

file(label, id, name)

Вызов:

+file('Загрузить файл', 'main_file')

Результат:

<tr>
  <td>
    <label for="main_file">Загрузить файл</label>
  </td>
  <td>
    <input name="main_file" id="main_file" type="file"/>
  </td>
</tr>

Вызов:

+file('Загрузить файл', 'main_file', 'main_file.txt')

Результат:

<tr>
  <td>
    <label for="main_file">Загрузить файл</label>
  </td>
  <td>
    <input name="main_file.txt" id="main_file" type="file"/>
  </td>
</tr>

image(label, id, name, width, height)

Вызов:

+image('Загрузить фото', 'main_photo', 'main_photo.png', '2000', '1000')

Результат:

<tr>
  <td>
    <label for="main_photo">Загрузить фото</label>
  </td>
  <td>
    <input name="main_photo.png" id="main_photo" type="file" data-max-width="2000" data-max-height="1000"/>
  </td>
</tr>

select(label, id, value, groups)

Вызов:

+select('Положение', 'background-attachment',
        {
          "Стандарт": {
            "По умолчанию": "no-repeat",
            "Замостить": "repeat", 
            "Горизонтально": "repeat-x", 
            "Вертикально": "repeat-y"
          },
          "С заполнением": {
            "С пробеллами между фото":"space", 
            "round": "Растянуть фото с заполнением"
          }
        }, true)

Результат:

<tr>
  <td>
    <label for="background-attachment">Положение</label>
  </td>
  <td>
    <select name="background-attachment" id="background-attachment">
      <optgroup label="Стандарт">
        <option value="no-repeat">По умолчанию</option>
        <option value="repeat">Замостить</option>
        <option value="repeat-x">Горизонтально</option>
        <option value="repeat-y">Вертикально</option>
      </optgroup>
      <optgroup label="С заполнением">
        <option value="space">С пробеллами между фото</option>
        <option value="Растянуть фото с заполнением">round</option>
      </optgroup>
    </select>
  </td>
</tr>

Ссылки

Node.js

Gulp

Jade