Генератор статичных сайтов
Целью было попрактиковаться в изучении go, и опробовать результаты при переносе своего бложика с wordpress на статику. На текущий момент проект находится в стадии концепта и НЕ МОЖЕТ быть рекомендован в качестве использования.
Требования
Linux или MACOS, go 1.18 или выше
Как работает
Необходимо скопировать файл config.json.example в config.json и заполнить его в соответствии с тем, как организован контент для генерации.
Ниже пример конфига с комментариями по каждому параметру.
{
// title главной страницы
"label": "Test homepage",
// меню сайта
"menu" : [
{
// метка меню (название элемента)
"label" : "Home",
// куда ведет ()
"url" : "/"
},
{
"label": "About",
"url": "/about"
}
],
// количество постов на страницу
"postsPerPage": 3,
// количество символов (с округлением символов до целых слов) из которых формируется превью
// не используется, если флаг previewByPageBreak выставлен в true
"previewLength": 15,
// флаг получения превью поста по специальному разделителю (значение параметра previewPageBreakString)
// альтернатива использованию параметра previewLength для указания превью индивидуально для каждого поста
"previewByPageBreak": false,
// разделитель, по которому будет формироваться превью поста (от 0 символа до этого разделителя)
// работает вместе с установленным в true флагом previewByPageBreak
"previewPageBreakString": "<!--pb-->",
// вариант пагинации с двумя кнопками (назад/вперед), а не всеми возможными страницами
"maxTwoPaginationButtons": true,
// путь, к содержимому ИЗ которого нужно генерировать сайт
"sourcePath": "./source",
// путь, куда будет сгенерирован сайт
"resultPath": "./result",
// путь к статике относительно параметра sourcePath
"staticPath": "./css",
"url": "https://domain.com"
}
Правила обработки шаблонов
В качестве парсинга шаблонов используется стандартная библиотека, обрабатываются все *.html файлы, путь берется из параметра sourcePath конфига. Шаблон для страницы обязан называться page.html, все остальные файлы опциональны. Пример можно посмотреть в каталоге source.example.