Site icon 8HOST.COM

Установка и использование Sculpin

Sculpin – это генератор статических сайтов на основе PHP, преобразующий шаблоны Twig или HTML с контентом, написанным на markdown, в легко развертываемые статические сайты.

Данное руководство показывает, как установить Sculpin на виртуальный выделенный сервер Ubuntu 12.04 и начать работу с ним: как разработать проект с нуля, сгенерировать статические файлы, как использовать внутренний веб-сервер для передачи файлов в браузер. Кроме того, руководство охватывает использование предварительно разработанных блогов и размещение на них новых постов.

Установка Sculpin

Для начала нужно выполнить некоторые предварительные требования. Выполните следующие команды, чтобы установить нужные модули и расширения. При наличии какой-либо из перечисленных команд просто удалите ее из команды.

apt-get update
apt-get install php5-common php5-cli git-core php5-curl

Теперь нужно загрузить исполняемый PHP-файл Sculpin (файл .phar):

curl -O https://download.sculpin.io/sculpin.phar

Далее необходимо сделать его исполняемым:

chmod +x sculpin.phar

Теперь переместите Sculpin в папку /bin, чтобы иметь возможность запускать программу из любой папки:

mv sculpin.phar ~/bin/sculpin

Если папки /bin нет в root-каталоге пользователя, создайте такую папку. Теперь нужно добавить эту папку в bash. Откройте файл .bashrc:

nano ~/.bashrc

Внесите в файл следующую строку:

PATH=$PATH:$HOME/bin

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

source ~/.bashrc

Готово! Чтобы проверить, работает ли команда, запустите команду sculpin без аргументов из любой папки, что должно открыть справку Sculpin  в терминале.

Создание сайта в Sculpin

Особенность Sculpin заключается в том, что он поставляется со встроенным веб-сервером, способным обслуживать страницы в Интернете. Чтобы увидеть этот сервер в действии, создайте простой сайт в root-папке пользователя (не в root-каталоге Apache). Для начала создайте папку проекта:

mkdir mysite
cd mysite
mkdir source
cd source

Данные команды создали папку для проекта (по имени mysite/) и еще одну папку внутри (source/). Последняя папка предназначена для хранения контента сайта. Теперь в ней можно создать простое приложение, отвечающее «Hello World». Создайте файл index.md в папке /source и вставьте в него следующий код:

---
---
# Hello World

Такой формат кода называется markdown, а вышеуказанные строки нужны для форматирования YAML. Чтобы узнать о синтаксисе markdown больше, посетите эту страницу. Сохраните файл, закройте его, вернитесь в папку mysite/ и выполните следующую команду:

sculpin generate --watch --server

Это создаст ​​сайт. Следите за текущими изменениями в контенте в случае изменения или создания новых файлов, а также папок для обслуживания файлов через порт сервера. Теперь можно открыть только что созданный сайт (введите ip-адрес:8000). Между тегами заголовков должно появиться сообщение Hello World. Чтобы остановить сервер (как указано в терминале), просто наберите CTRL + C.

Как можно видеть, теперь в папке mysite/ появилась новая папка по имени output_dev/, в которой хранятся эквивалентные HTML-файлы.

Для создания производственных файлов внесите тег –env=prod в команду sculpin generate:

sculpin generate --watch --server --env=prod

Это создаст папку output_prod/ и все необходимые файлы внутри этой папки. Затем можно синхронизировать эту папку с Apache, чтобы получить возможность использовать надежный сервер для доставки страниц сайта в браузер. Как это сделать?

Предположим, чтобы сайт был доступен из папки Apache по умолчанию (это /var/www/, root каталог веб-сервера), можно сделать следующее. Перейдите в output_prod/:

cd output_prod

И запустите команду rsync, чтобы синхронизировать файлы этой папки с папкой /var/www:

rsync -azv * /var/www

Теперь можно получить доступ к сайту, перейдя на IP-адрес виртуального выделенного сервера (если только в конфигурацию виртуального хоста не были внесены изменения). Просто запустите эту команду из той же папки при внесении любых изменений на сайт и создаете новые HTML-файлы.

Макеты Twig

Sculpin использует макеты Twig, мощного шаблонизатора PHP. Вступительную статью о Twig можно найти по этой ссылке.

Как уже было отмечено, все, что отображается на странице сайта, находится в папке source/ (это контент, написанный в markdown). Теперь попробуйте создать макет, в который будет помещен контент файла index.md.

В папке source/ создайте новую папку по имени _views:

mkdir _views

В этой папке создайте файл main.html. Здесь можно заявить все основные страницы HTML и блок контента Twig, который будет отображаться на сайте. К примеру, можно вставить следующее:

<html>
<head><title>My first Sculpin site</title></head>
<body><div class="content">{% block content %}{% endblock %}</div></body>
</html>

Теперь отредактируйте созданный ранее файл index.md, заменив:

---
---
# Hello World

следующим блоком:

---
layout: main
---
# Hello World

Запустив снова команду sculpin:

sculpin generate  --server

можно увидеть, что файл index.md автоматически внесен в блок контента Twig, заданный в шаблоне main.html (указанном, согласно декларации YAML, в начале файла).

Создание тестового блога

Чтобы узнать больше о возможностях Sculpin, нужно скачать скелет блога Sculpin. Для этого можно использовать Git:

cd ~
git clone https://github.com/sculpin/sculpin-blog-skeleton.git blog
cd blog

Теперь нужно установить зависимости проекта при помощи Composer. Просто запустите:

sculpin install

Затем можно запустить функцию sculpin generate с опцией server и вернуться в браузер, чтобы увидеть только что созданный  блог. Затем можно просмотреть файлы, которые составляют блог, и узнать, как они работают вместе. Кроме этого, можно опубликовать новый пост в блоге. Откройте папку _posts/:

cd source/_posts

Создайте новый файл:

nano 2020-02-07-my-post.md

Внесите в него следующий код и сохраните:

---
title: My post
---
# Hello world.

Снова используйте команду generate и проверьте блог. Новый пост появится на странице.

Итоги

Как видите, Sculpin – очень удобный и мощный генератор статических сайтов, который использует Markdown для быстрого форматирования контента и Twig для разработки шаблонов, что позволяет быстро и легко развертывать статические сайты.