Мне нужно сделать сайт со статьями, типа блога. То есть главная страница - это список статей, можно в каждую зайти внутрь и почитать. Не нужно никакой базы, никакой админки - всё будет писаться и верстаться вручную. Казалось бы, проще некуда.
Изюмина в том, что каждая статья предполагается уникальной. Каждая страница может быть по-своему оформлена, своя верстка, свои стили, свои шрифты. Что-то типа брендирования. Кое-что общее между ними, конечно, всё равно будет, но много и отличий. Иными словами, помимо глобальной статики, каждая статья может иметь свои стили, скрипты, картинки и пр.
// то есть помимо
http://site.com/css/
http://site.com/images/
http://site.com/js/
// ещё должны быть
http://site.com/article-title/css/
http://site.com/article-title/images/
http://site.com/article-title/js/
Отягчаяющее обстоятельство в том, что статьи могут быть в нескольких частях:
// оглавление
http://site.com/article-title/
// части
http://site.com/article-title/1/
http://site.com/article-title/2/
http://site.com/article-title/3/
И каждая часть должна иметь доступ к стилям своей главы. И между ними нужна навигация.
Можно, конечно, просто сверстать тупо в HTML и врукопашную разложить по папочкам. Дешево и сердито. Но хочется иметь возможность внутри делать штуки наподобии таких:
<link rel="stylesheet" type="text/css" href="{{ basePath }}/css/style.css">
<link rel="stylesheet" type="text/css" href="{{ articlePath }}/css/style.css">
<a href="{{ articlePath }}">К оглавлению</a>
<a href="{{ articlePath }}/{{ nextChapter.number }}">{{ nextChapter.title }}</a>
Рассматривал вариант сделать это на каком-нибудь PHP-микрофреймворке, используя этого в качестве роутера и шаблонизатора. Но что-то не пошло. Они все предполагают расположение шаблонов где-то внутри app, а всю статику где-то в public или assets. Там будет каша. А вклиниваться в код фрейморка я не готов.
Потом решил, что мне нужен генератор статических сайтов. Аналогичная история - море альтернатив, но что брать непонятно. Везде только одна папочка с шаблонами и одна со контентом. Генереатор вставляет одно в другое и плодит сто одинаковых страниц.
Мне бы найти какой-то пост-процессор HTML, который умел бы заменять определенные мнемоники на ссылки, пути, переменные из конфига и так далее. И если что-то поменялось, то меняем один раз в конфиге и перегенерируем.
Есть что-то такое? Например, для Gulp. (я конечно поискал, но результаты не особо)