builder-sitemap-xml
Plugin for bs-builder system which creates sitemap.xml file
Плагин для bs-builder предназначенный для генерации файла sitemap.xml.
Установка
Пакет устанавливается как обычная npm зависимость
$ npm install --save bs-builder-sitemap-xml
Пример использования
Данный плагин необходимо подключать в конец очереди заданий для сборки, после того как все страницы сайта будут сгенерированы и добавлены в модель. В противном случае часть страниц не попадет в итоговый sitemap.xml файл и не будет проиндексирована поисковыми роботами.
var Builder = require('bs-builder-core').Builder
coreTasks = require('bs-builder-core').tasks,
SitemapXmlTask = require('bs-sitemap-xml').tasks.BuildSitemapXML,
dataPath = './data',
cachePath = './.builder/cache',
builder;
builder = Builder.init('debug')
.addTask(coreTasks.MakeDirectory, { path: cachePath })
.addTask(coreTasks.MakeDirectory, { path: dataPath })
.addTask(coreTasks.LoadModelFiles)
.addTask(coreTasks.MergeModels)
.addTask(coreTasks.SaveModelFile)
.addTask(coreTasks.AnalyzeModel)
...
...
// подключение задачи сборки для построения файла sitemap.xml
.addTask(SitemapXmlTask, { hosts: { en: 'http://my.site.en' }}
//
.addTask(tasks.SaveDataFile);
builder.run();
Параметрами является объект с полем hosts
. Данный объект в свою очередь представляет собой
конфигурацию хостов сайта для различных локалей, например:
{
en: 'http://my.site.en', // для английского языка
fr: 'http://my.site.fr', // для французского языка
de: 'http://my.site.de' // для немецкого языка
...
}
Примечание #1.
В конфигурации задачи должны быть перечислены все языки которые сконфигурированы для сборщика.
Примечание #2.
Если для всех языковых версий хост сайта является общим, то вместо объекта значением поля
hosts
можно передать строку.
Тестирование
Запуск тестов с вычислением покрытия кода тестами с помощью инструмента istanbul:
npm test
Проверка синтаксиса кода с помощью jshint и jscs
npm run codestyle
Особая благодарность за помощь в разработке:
- Ильченко Николай (http://github.com/tavriaforever)
- Константинова Гела (http://github.com/gela-d)
- Гриненко Владимир (http://github.com/tadatuta)
- Абрамов Андрей (https://github.com/blond)
Разработчик Кузнецов Андрей Серргеевич @tormozz48 Вопросы и предложения присылать по адресу: tormozz48@gmail.com