From 3a4138f5022bd5b193d96562808bc2bea26e1d34 Mon Sep 17 00:00:00 2001 From: tormozz48 Date: Sun, 17 Jan 2016 22:52:09 +0300 Subject: [PATCH] Update documentation --- README.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 72 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3a6384a..af21161 100644 --- a/README.md +++ b/README.md @@ -22,17 +22,84 @@ $ npm install --save gorshochek //TODO написать документацию -## Конфигурация +## Описание задач -//TODO написать документацию +### mergeModels -## Описание задач +1. Считывает новую модель по пути указанному в опции `modelPath`. +2. Сравнивает ее со старой моделью, загруженной из кэша. +3. Находит и сохраняет отличия между старой и новой моделью данных в модель изменений. +4. Произвоит слияние (merge) моделей. +5. Сохраняет новую модель в кэш и заменяет файл старой модели. -//TODO написать документацию +[Модуль](./src/tasks-core/merge-model) + +Параметры: + +* {String} modelPath - путь к модели данных. Обязательный параметр. + +Зависимости: нет. + +### normalizeModel + +Проверяет модель на корректность. По возможности вносит исправления и выставляет дефолтные значения +для отсутствующих или некорректных полей. + +[Модуль](./src/tasks-core/normalize-model) + +Пример вызова: +``` +var gulp = require('gulp'); +var gorshochek = require('gorshochek'); +var model = gorshochek.createModel(); + +gulp.task('normalize-model', gorshochek.tasks.core.normalizeModel(model)); +``` + +Параметры: отсутствуют. + +Зависимости: требует выполнения задачи `mergeModels` + +### saveModel + +### rsync + +### loadFromGithub + +### loadFromFile + +### transformMdToHtml + +### createHeaderTitle + +### createHeaderMeta + +### createBreadcrumbs + +### createSearchMeta + +### createSitemapXML ## Создание собственной задачи сборки -//TODO написать документацию +Задача сборки представляет собой функцию высшего порядка, т.е. возвращающую другую анонимную функцию +без аргументов реализующую логику задачи. + +Любая задача сборки, работающая с моделью должна принимать ее экземпляр в качестве первого аргумента. +Кроме того, задача может включать в себя дополнительные опции которые удобно передать в виде объекта вторым параметром. +Для организации задач в виде цепочки промисов возвращаемая анонимная функция должна сама возвращать промис объект. + +Таким образом требования описанные выше позволяют записать код простейшей задачи которая +выводит в консоль параметр `name` переданный ей в качестве опции: + +``` +export default function(model, options = {}) { + return function() { + console.log('Hello ' + options.name); + return Promise.resolve(model); + } +} +``` ## Тестирование