Skip to content

Структура репозитория

Alex Fedosov edited this page Jun 16, 2015 · 26 revisions
  • /app — приложение для раздачи API: серверная часть, загрузчик карты, демо-страница
  • /assets – статические ассеты. Содержимое папки копируется в dist без изменений
  • /functional-tests — функциональные тесты
  • /gulp — конфигурация и код сборщика
  • /src – исходный код API
  • /test – конфигурационные файлы karma
  • /vendors – сторонние библиотеки
  • config.main.json – конфигурационный файл приложения
  • gulpfile.js – сборщик приложения
  • LICENSE.md – лицензия

Темы

В /src/DGPluginName/skin находится папка с темами:

  • /skin
    • /basic — общие стили для всех тем
    • /dark — папка с темой
    • /light — ещё одна папка с темой

Структура каталога темы выглядит следующим образом (пример):

  • /less — содержит файлы стилей в формате *.less
  • /img — содержит картинки (растровые и векторные) которые не нужно конвертировать
  • skin.config.js — конфиг темы (json) с параметрами темы (картинки, размер и положение для маркеров, флаг и позиция для контролов)

Чтобы подключить скин, нужно передать его имя параметром при подключении loader.js, например:

<script src="http://maps.api.2gis.ru/2.0/loader.js?skin=dark"></script>

Важно помнить о соглашениях в именовании картинок скинов, в название изображения добавляется имя скина, например: DGGeoclicker_building-dark.svg

Добавление модулей

Структура папки модуля (пример) может быть такой:

  • DGGeoclicker/
    • src/ — исходный код
    • test/ — юнит-тесты
    • demo/ — демонстрация базовой функциональности плагина
    • lang/(oпциональная) если плагин поддерживает мультиязычность, в это папке будут лежать файлы словарей (lang/it.js, lang/ru.js)
    • skin/(oпциональная) если плагин привносит новые элементы ui, исходники добавляются сюда, структура папки /skin аналогична такой же папке ядра
    • templates/(oпциональная) здесь хранятся шаблоны (в формате *.tmpl) для отображения данных.

Включить плагин в сборку и описать его зависимости можно в файле build/deps.js. Например так:

DGFullScreen: {
        desc: 'Full screen module',
        src: [
            'DGFullScreen/src/DGFullScreen.js',
            'DGFullScreen/lang/ru.js',
            'DGFullScreen/lang/it.js',
            'DGFullScreen/lang/cs.js',
            'DGFullScreen/lang/en.js'
        ],
        styl: {
            all: ['DGFullScreen/skin/{skin}/styl/DGFullScreen.less'],
            ie: ['DGFullScreen/skin/{skin}/styl/DGFullScreen.ie.less']
        },
        deps: ['DGCore', 'DGLocale', 'DGRoundControl']
    },

Важно использовать переменную {skin} при подключении ресурсов, зависимых от тем, чтобы не потерять возможность подключать темы параметром из loader.js url.

Clone this wiki locally