Если бы мы были в середине 2000-х годов, единодушным выбором для создания блога был бы WordPress или Blogger . В последние несколько лет количество блоговых платформ возросло, что делает это время прекрасным для тех, кто любит экспериментировать. Одним из таких вариантов, который был выпущен для публики в конце прошлого года, является Ghost .
Лучшая часть о Ghost — это поддержка Markdown, которая позволяет вам сосредоточиться на написании. Однако, если вы все еще скептически относитесь , вы должны посмотреть на сравнение Дэвидом Бланом функций Призрака с большой тройкой .
Если вы согласны с тем, что вам следует попробовать Ghost, то есть небольшой сбой. Если вы хотите использовать Ghost.org для размещения своего блога, базовый план начинается с 5 долларов в месяц , ограничивая вас 10 000 просмотров страниц (что вы можете легко достичь, если у вашего поста будет хороший день в Hacker News). Если вы загружаете исходный код, вам нужно будет разместить его на отдельном сервере, что требует определенных знаний.
Но мы можем преодолеть эти проблемы. В этом посте я покажу вам простой способ использовать Ghost для своего блога, но разместить его бесплатно .
Что такое статические сайты?
Статический сайт — это набор HTML-документов или статических веб-страниц, ни больше, ни меньше. Это означает, что независимо от пользователя, запрашивающего сайт, контент останется прежним. Напротив, для динамического сайта один и тот же URL-адрес может отображать разное содержимое для разных пользователей (например, https://twitter.com
покажет мне что-то совершенно иное, чем то, что будет показано при условии, что один из нас вошел в систему. ).
Статический сайт часто дешевый или бесплатный для размещения по сравнению с динамическим сайтом. Но для создания и обновления статического сайта вам понадобятся определенные навыки. Если, конечно, у вас нет Бастера .
Что такое Бастер?
Buster — это «генератор статических сайтов для Ghost» ( понимаете? ). Buster позволяет предварительно просмотреть сгенерированный статический блог и развернуть его на GitHub для размещения вашего сайта. Он написан на Python и его легко установить. Вы можете скачать через pip или клонировать репозиторий и установить.
Процесс, которому мы будем следовать, выглядит примерно так:
- Генерация статических страниц на сайте Ghost с использованием грубой силы
- Предварительный просмотр их с помощью Buster (необязательно)
- Развертывание на нашем сервере (например, на страницах GitHub)
Использование GitHub Pages для размещения вашего статического сайта
GitHub позволяет бесплатно размещать ваши статические страницы через GitHub Pages . Любое хранилище на GitHub можно настроить для предварительного просмотра в Интернете. Все, что вам нужно сделать, это создать ветку с именем gh-pages
и ваш репозиторий доступен по адресу username.github.io/repository-name
, где вы заменяете username
и repository-name
их соответствующими значениями.
Существует множество альтернатив GitHub Pages, одной из которых является My.DropPages , неофициальное приложение Dropbox. Хотя Buster настроен для отправки на страницы GitHub, вы всегда можете остановиться только на создании статического сайта и вручную загрузить его в другое место. В этом посте мы продолжим с предположением, что вы собираетесь загрузить свой веб-сайт на GitHub Pages.
Добавление собственного субдомена на страницы GitHub
Если вам нужен домен для указания на ваш репозиторий GitHub Pages, вам нужно добавить запись CNAME в файл DNS вашего домена. Для такого блога вам нужно будет добавить запись CNAME для нужного субдомена со значением username.github.io
.
Затем вам нужно будет добавить файл с именем CNAME в ваш репозиторий. Содержимое файла — это просто строка my_subdomain.my_domain.com
(снова заменяя значения вашими действительными поддоменом и доменом).
Как использовать Buster
Ниже приведены различные команды, которые можно использовать в приблизительно хронологическом порядке:
-
buster setup [--gh-repo=<repo-url>]
— создает каталогstatic/
и инициализирует внутри него Git-репозиторий. У вас должен быть базовый репозиторий, настроенный на GitHub. -
buster generate [--domain=<local-address>]
— генерирует страницы из локального запущенного экземпляра (или перезаписывает существующие страницы). Локальный адрес обычно127.0.0.1:2368
. -
buster preview
— Предварительный просмотр локального статического сайта наlocalhost:9000
. -
buster add-domain [domain-name]
— добавляет пользовательский домен или поддомен в CNAME в вашем хранилище. -
buster deploy
— отправляет ваши изменения в GitHub. Это делается по протоколуhttps
, и вам необходимо ввести имя пользователя и пароль GitHub.
Примечание. Эти команды следует запускать только вне static
каталога. Если вы запустите их в другом каталоге, управляемом Git, команда generate
создаст статическую папку и зафиксирует файлы в вашем существующем хранилище.
Добавление комментариев к вашим статическим страницам
Недостатком статического сайта является невозможность добавления комментариев. Однако сторонние сервисы, такие как Disqus, требуют, чтобы вы только вставляли <script>
, который выдает окно для комментариев. Disqus распознает URL-адрес, по которому генерируется запрос, и автоматически сохраняет комментарии в соответствующей теме.
Чтобы вставить систему комментариев Disqus на ваш статический сайт, вам нужно вставить ее в шаблон Ghost, из которого генерируется статический сайт. После регистрации в Disqus вам будет предоставлен фрагмент кода для вставки на ваш сайт.
Найдите файл post.hbs
в каталоге темы в Ghost (обычно это /content/themes/[theme_name]/post.hbs
) и вставьте его между {{/post}}
и </article>
. Для получения дополнительной информации вы можете обратиться к подробной странице справки на Disqus относительно его установки на сайтах Ghost. Если вы сделали это правильно, Disqus должен появиться на вашем локальном сайте, и Buster автоматически извлечет его.
Заключительные слова
Я хотел бы закончить пост демонстрацией, блогом, который я веду, чтобы сообщать о моем еженедельном прогрессе в Google Summer of Code. Статический сайт, созданный Buster , доступен на GitHub .
Что вы думаете о Бастере? Знаете ли вы какие-либо альтернативы? Дайте нам знать в комментариях ниже.