Установка и использование Sculpin
Ubuntu, VPS | Комментировать запись
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 для разработки шаблонов, что позволяет быстро и легко развертывать статические сайты.
Tags: Apache, Linux, markdown, PHP, Sculpin, Twig, Ubuntu, Ubuntu 12.04, VPS