Metalsmith
Изучая исходный код одного блога, обнаружил инструмент под названием Metalsmith. Это супер простой, расширяемый генератор статики для Node. Похожий слоган у другого инструмента, который я использую — Eleventy, поэтому Metalsmith меня заинтересовал.
У Metalsmith довольно простая концепция: рекурсивный обход указанной директории и формирование JS-объекта со всеми найденными файлами. Ключ объекта — путь к файлу, значение — объект с мета-данными и содержимым файла.
Далее объект проходит через цепочку плагинов, каждый из которых меняет объект: конвертирует Markdown в HTML, добавляет глобальные мета-данные, применяет layout. Из итогового объекта создаются файлы в указанной директории.
Metalsmith, по сути, ничего особенного не делает. Есть несколько встроенных плагинов. В остальном это конвейер для других плагинов. Концептуально напоминает Gulp или PostCSS, где вся суть заключается в создании цепочки из плагинов для обработки.
Плагинов для Metalsmith много: от небольших утилит до движков шаблонов и CSS-препроцессоров. Так как всё работает на Node, а суть заключается в обходе объекта с файлами, можно легко написать плагин для решения собственной задачи.
Проект живой, в репозитории есть активности, но невысокая. Крайняя версия проекта вышла чуть более года назад. Добавлю Metalsmith к своему набору инструментов, как альтернативу Gulp или Eleventy для разработки простых сайтов.
#js
Post #268
912