Sculpin -- Генератор статических сайтов

294
.
Sculpin -- генератор статических сайтов.
Он комбинирует текстовые файлы (Markdown, Textile, etc.) с шаблонами Twig для создания набора статических HTML файлов, которые могут быть опубликованы практически на любом хостинге.

Ниже следует вольный перевод руководства, который может послужить вам неплохой отправной точкой, чтобы начать использовать Sculpin.

Чтобы создать и опубликовать ваш первый Sculpin сайт, вам нужно выполнить следующее:

- Загрузить и установить Sculpin.
- Загрузить и установить стартовый набор.
- Запустить Sculpin.
- Добавить контент в Sculpin.
- Сгенерировать сайт, готовый для публикации.
- Опубликовать сайт.


Загрузка и установка Sculpin

Лучший способ получить Sculpin -- скачать PHAR. Это исполняемый файл, который предназначен для управления Sculpin проектами.
Выполните следующие команды для того, чтобы загрузить PHAR и сделать его исполняемым.
curl -O https://download.sculpin.io/sculpin.phar
chmod +x sculpin.phar

Так как удобнее запускать Sculpin из любого директория, вы можете переместить его:
mv sculpin.phar ~/bin/sculpin

Теперь у вас должна быть возможность выполнить sculpin в любом директории. Если нет, то вероятно ваш директорий не указан в переменной окружения $PATH.
Если вы используете bash, вы можете исправить это выполнив следующую команду:
PATH=$PATH:$HOME/bin

Возможно вы также захотите добавить эту строку в ~/.bashrc или .bash_profile.

Загрузка и установка стартового набора

Больше всего Sculpin используется в качестве платформы для блогов. (Это делает его похожим на Jekyll)
Стартовый набор для блогов не включен в Sculpin потому что сам Sculpin не ограничивается блогами.
В результате вам нужно загрузить этот стартовый набор отдельно.

Остальная часть этого руководства предполагает, что у вас уже есть загруженный стартовый набор, поэтому выполните следующие шаги:

cd ~
git clone https://github.com/sculpin/scu ... n.git myblog
cd myblog


В главной директории вы увидите некоторые конфигурационные файлы для вашего проекта, а также следующие директории:

- app - содержит всю логику, отвечающую за генерацию блога.
- source - содержит сырой контент для вашего блога.

Теперь мы должны сказать Sculpin установить любые относящиеся к проекту зависимости.
Вы увидите, что будут установлены некоторые JavaScript библиотеки и прочие пакеты.
Вы должны выполнять эту команду для каждого нового проекта!
Убедитесь, что вы находитесь в корневой директории вашего проекта и тогда выполните команду install.

cd ~/myblog
sculpin install


Теперь вы готовы для того, чтобы запустить сервер и добавить контент для вашего нового Sculpin сайта.

Запуск Sculpin

Теперь мы можем использовать Sculpin для генерации статических файлов, наблюдения за изменениями и запуска локального web сервера, чтобы видеть результаты нашей работы.

sculpin generate --watch --server


Флаг watch говорит Sculpin наблюдать за изменениями в файлах, и когда они изменились, перегенерировать проект автоматически.
Флаг server запускает PHP web сервер, который позволяет вам видеть вашу работу перейдя по адресу http://localhost:8000.

После выполнения этой команды в вашем проекте появится директория output_dev.
Обратите внимание, что сервер может время от времени падать. Когда это происходит, просто повторно выполните команду.

Добавление контента в Sculpin

Теперь вы готовы для того, чтобы добавлять посты в ваш блог.
Для разметки постов используется Markdown, содержащий метаданные в YAML формате. (Не беспокойтесь, это просто.)

Перейдите в директорию source:

cd source


Здесь вы увидите все компоненты, которые делают ваш блог, так что давайте, идите в перёд и создайте новый пост.

cd _posts


Давайте создадим новый файл здесь и опубликуем статью в 2020-м году.

touch 2020-01-07-time-travel.md


Используя ваш любимый тесктовый редактор откройте файл и давайте напишем сообщение в будущем!

---
title: Time travel
tags:
    - future
    - time
categories:
    - time
---

# Hello world.

I am in the future.

*Markdown is cool.*

{% verbatim %}**So is twig, because it knows this page's name is: {{ page.title }}**{% endverbatim %}


Сохраните файл.

С помощью этого одного файла вы обновили список постов, создали страницу для поста и обновили atom feed.
Предполагая, что у вас всё ещё запущен сервер с помощью команды sculpin generate --watch --server, новые страницы теперь доступны на вашем локальном сервере http://localhost:8000. Вам нужно обновить страницу в браузере, чтобы увидеть изменения.

Если контент не был полностью сгенерирован (возможно есть пропущенная страница для одного из тегов), просто остановите и запустите сервер из командной строки:

control-C
sculpin generate --watch --server


Генерация сайта, готового для публикации

Великолепно! Вы установили Sculpin, получили запущенный блог и написали новый пост. Теперь опубликуем это!

Создайте production версию вашего сайта с помощью команды:

sculpin generate --env=prod


Будет создана директория `output_prod`. Её содержимое теперь может быть загружено.

Deploy Sculpin

В предыдущем шаге вы создали автономную версию вашего сайта, созданную из статических HTML файлов.
Эти файлы, которые находятся в директории output_prod, должны быть загружены на ваш общедоступный web сервер.

Вот некоторые распространённые варианты:

С помощью rsync:
rsync -avze 'ssh -p 999' output_prod/ user@example.com:public_html

GitHub pages:
GitHub pages время от времени изменяются, поэтому лучше всего прочитать их инструкции.

Amazon s3 bucket:
В комплекте стартового набора есть скрипт s3-publish.sh, которые вы можете отредактировать и использовать для публикации.

Что дальше?

Теперь, когда вы создали ваш первый Sculpin сайт, вы готовы погрузится в создание индивидуального дизайна сайтов.
Возможно вы захотите приступить глядя на то, что создали другие пользователи, или погрузиться в документацию.
.
(\/)____o_O____(\/)
reaper, требования к хосту не малые, точнее уже как минимум вдс/впс, на хомяке не поедет
.
Koenig, Что? Где ты требования увидел? Он просто генерирует html. Потом ты можешь залить это хоть на веник.
.
Koenig, Про jekyll слышал? Так вот это своего рода аналог только на php.
.
От себя добавлю, что документация оставляет желать лучшего. Хотя возможно у меня просто башка уже не так хорошо варит, но есть некоторые моменты, которые не до конца ясны.
.
(\/)____o_O____(\/)
reaper, тупонул, не дочитал просто про генерацию исходников в папку
Всего: 6