Tool for collect documentation and exaples from libraries and common sources for bem-info and legoa
Данный инструмент предназначен для публикации данных документации и примеров по библиотекам блоков.
git clone git://github.com/bem/bem-data-source.git
cd bem-data-source
npm install
npm run config
После выполнения npm run config
должен появиться новый конфигурационный файл config/private.json
.
Конфигурация инструмента описывается в файлах config/public.json
, config/private.json
.
logLevel
- флаг уровня логгирования. может принимать значения: ("verbose", "debug", "info", "warn", "error")languages
- массив локалейmaxOpenFiles
- максимальное количество открытых файлов. Этот параметр также определяет размер
порций файлов которые одновременно записываются в хранилище.storage
- объект хранилища данных, например:"storage": {
"cocaine": {
"debug": false
}
}
mailer
- объект с настройками почтовой рассылки. Настоятельно рекомендуется выносить данные
настройки в приватный конфигурационный файл config/private.json
.В этом файле настриваются приватные параметры приложения, например пространство имен для хранилища:
{
"storage": {
"cocaine": {
"namespace": "your_application_namespace"
}
}
}
Настройки почтовой рассылки:
{
"mailer": {
"host": "your e-mail-host",
"port": 25,
"from": "john.smith@gmail.com",
"to": [
"recepient1@gmail.com",
"recepient2@gmail.com"
]
}
}
Выполняется командой node bin/ds view
с указанием дополнительных опций:
-r
или --repo
- название репозитория (необязательный параметр)-v
или --version
- название версии (тега или ветки) библиотеки (необязательный параметр)В случае если указаны оба параметра, то выведется информация по конкретной указанной версии библиотеки.
Если была передана только опция с названием библиотеки, то будет выведен список версий выбранной библиотеки.
Если не был передан ни один из параметров, то будет выведен список библиотек, которые находятся в настоящее время в реестре.
Выполняется командой node bin/ds remove
с указанием дополнительных опций:
-r
или --repo
- название репозитория (обязательный параметр)-v
или --version
- название версии (тега или ветки) библиотеки (обязательный параметр)-d
или --dry
- режим тестового запуска. При этом данные не будут удалены а в консоль
будет выведено соответствующее сообщение.ВНИМАНИЕ! При выполнении этой команды происходит НОБРАТИМОЕ УДАЛЕНИЕ из хранилища! Будьте внимательными при ее использовании.
Выполняется командой node bin/ds replace
с указанием дополнительных опций:
-r
или --repo
- название репозитория (обязательный параметр)-v
или --version
- название версии (тега или ветки) библиотеки (обязательный параметр)-d
или --doc
- ключ документа в сборки библиотеки ('readme', 'changelog', 'migration', ...) (обязательный параметр)-l
или --lang
- языковая версия заменяемого документа. Если этот параметр неуказан, то будут заменены
все яызковые версии документа, указанного в параметре -d
.-u
или --url
- url для *.md
файла источника замены на github, например:Находясь в директории целевой библиотеки блоков, после сборки примеров и документации
можно вызвать команду publish
которая упакует собранные данные документации в формат
необходимый для сайта, проведет архивацию всех примеров, отправит все данные по документации
и примерам библиотеки в хранилище и добавит версию данной библиотеки в реестр собранных данных.
Пример:
node {path to bem-data-source}/bin/ds publish [-v version]
Где -v
- необязательный параметр названия версии (ветка, тег, пулл-реквест).
Если этот параметр не будет указан, то название версии будет выбрано из файла package.json
Посмотреть текущую версию приложения можно выполнив команду: node bin/ds -v
Команды bem-data-source
можно выполнять не только вручную из коммандной строки, но также
с помощью сторонних модулей. Это дает возможность интеграции bem-data-source
в различные системы сборки документации и примеров библиотек блоков.
Просмотр реестра собранных данных по библиотекам блоков.
var ds = require('bem-data-source');
ds.view(repo, version, options);
repo
- необязательный параметр названия библиотеки (ветка, тег, пулл-реквест)version
- необязательный параметр названия версии (ветка, тег, пулл-реквест)options
- опциональне настройки команды.Возможные варианты применения:
ds.view(null, null, options).then(function(libs) {
console.log(libs);
});
ds.view('bem-core', null, options).then(function(versions) {
console.log(versions);
});
ds.view('bem-core', 'v2.3.0', options).then(function(version) {
console.log(version.sha);
console.log(version.date);
});
Удаление собранных данных версии библиотеки.
var ds = require('bem-data-source');
ds.remove(repo, version, options, dryMode);
repo
- обязательный параметр названия библиотеки (ветка, тег, пулл-реквест)version
- обязательный параметр названия версии (ветка, тег, пулл-реквест)options
- опциональные настройки команды.dryMode
- Тестовое выполнение команды. При включенном флаге dryMode
в значении true
,
реального удаления данных не произойдет.Замена существующего документа (readme, documentation ...).
var ds = require('bem-data-source');
ds.replace(repo, version, options);
repo
- обязательный параметр названия библиотеки (ветка, тег, пулл-реквест)version
- обязательный параметр названия версии (ветка, тег, пулл-реквест)options
- дополнительные настройки команды. Объект с полями:
doc
- название документа. Допустимые значения: ('readme', 'changelog', 'migration', 'notes') (Обязательное поле)
lang
- язык документа. Если данный параметр отсутствует, то будут заменены все версии документа для списка
языков указанных в конфигурационном файле.url
- ссылка на *.md
документ который должен заменить существующий. По своей сути - это
такая ссылка на документ на github которую можно увидеть в браузере при открытии этого файла на github.
Например, для README.md bem-data-source: https://github.com/bem/bem-data-source/blob/master/README.md
Публикация собраных данных.
var ds = require('bem-data-source');
ds.publish(version, options, dryMode);
version
- обязательный параметр названия версии (ветка, тег, пулл-реквест)options
- опциональне настройки команды.dryMode
- Тестовое выполнение команды. При включенном флаге dryMode
в значении true
,
реальной публикации данных не произойдет.ВНИМАНИЕ: при выполнении данной команды process.cwd()
должен указывать на корневую директорию библиотеки.
Помимо специфичных настроек (как например для метода replace), все методы API принимают объект с общими настройками. Они включают в себя такие поля:
debug
- флаг для отслеживания внутренней работы храниища данных (по умолчанию false
).namespace
- пространство имен для key-value хранилища. (по умолчанию defaultnamespace
)Запуск тестов:
npm run mocha
Запуск тестов с покрытием:
npm run istanbul
Запуск проверки codestyle (jshint и jscs)
npm test
Ответственный за разработку @bemer
Вопросы и пожелания присылать по адресу: bemer@yandex-team.ru