© 2021 WebHive

Пробуем wintersmith

Пробую очередной генератор статичных сайтов на node.js. Сегодня это будет wintersmith. Ниже будет произвдена установка и проведено стресс-тестирование.

Зачем

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

Ну в общем есть претензии — опишу подробнее в отдельной статье. В связи с этим начал рассматривать альтернативы. Wintersmith как раз одна из них.

Установка

Ничего особенного — довольно тривиально. Обычный модуль для node.js

1
2
3
$ npm install wintersmith -g
$ wintersmith new <path>
$ cd <path>

Запуск

Как и принято для софта такого класса есть два варианта

Запуск в виде сервера

1
wintersmith preview

Или генерация статичных файлов

1
wintersmith build

Первые проблемы

Сходу словил косяк — jade шаблоны ругаются на неправильный синтаксис

Файл, строка и причина были указаны, поэтому исправление не составило большого труда. Хотя это наверно достоинство jade, а не wintersmith.

Проблема была в устаревшем синтаксисе

Вот этот кусок

1
!!! 5

Надо было заменить на этот

1
doctype html

Ладно — мы не гордые — поправим.

После этого небольшого инцидента все заработало.

Стресс — тест

Традиционно подготовил стресс-тест. Как старый блоггер: ) я хочу надежную систему, чтобы не трахаться с движком, а заниматься писаниной не отвлекаясь на мелочи. Это уже третий по счету движок, который подвергся моему стресс-тесту. Предыдущие два были DocType и Hexo. DocType оказался крайне тормознутым с экспоненциальным ростом времени генерации сайта в зависимости от количества постов. Hexo показал куда лучшие результаты по генерации и на данный момент это явный лидер.

Что-же выдал нам wintersmith?

Полный провал!!!

После 800 статей он тупо падает с ошибкой.

1
2
3
4
events.js:72
throw er; // Unhandled 'error' event
^
Error: EMFILE, open '<путь к тестовому проекту>/build/articles/test-6-97/index.html'

Баг-репорт

Отправил автору отчет об ошибке. Ответ пока не радует — насколько я понял внятного объяснения у автора нет. Предложенные им уменьшение лимитов результата не дало.

Вывод

Очередной провал. Очевидно, что есть какой-то лимит, после которого генерация сайта просто в принципе невозможна. И тот факт что другие движки такого лимита не имеют говорит о том, что это проблема именно кода wintersmith. Да — я нагрузил его данными —, но DocPad справился с куда большими объёмами (хоть и начал заметно тормозить), hexo вообще сожрал все и не крякнул — думаю он ьы отработал и больше, просто мне хватило и того что я увидел.

Всем кто использует или собирается использовать wintersmith советую подумать — не придется ли через год другой менять движок.

Комментарии