Octopress: как вести блог в стиле Unix-way

Статья последний раз была обновлена 06.07.2023

А вы когда-нибудь задумывались, как ведут свои блоги настоящие хакеры? Хакеры, которые живут в консоли, сидят в берлогах и ломают Пентагон? Я вот не знаю, но предполагаю — они и блоги ведут из консоли, создают пост одной консольной командой, а загружают его на сервера Пентагона другой. И если вы вдруг подумали, что такого не существует, а я брежу, то глубоко ошибаетесь — где-то с 2012 года невероятную популярность приобрел Octopress — истинный Unix-way в мире блогов.

Почему я так думаю? А подумайте сами: Octopress — это генератор статических сайтов, построенный на фреймворке Jerkyll для языка Ruby, использующий Markdown для написания постов и GitHub Pages для их размещения. Если вы не поняли из перечисленного выше ни слова: поздравляю, вы нормальный человек, можете закрыть пост. Для остальных же: прежде всего, это средство создания полнофункциональных статических сайтов, которые могут быть размещены где угодно — хоть на своем сервере, хоть на Dropbox.

Установка

Внимание! Octopress, как и полагается хорошему софту, кросплатформеннен. Однако, устанавливать его под Windows категорически не рекомендуется: во-первых, виндовая консоль в принципе плохо дружит с UTF-8, во-вторых, проблемы могут вылезти в самом неожиданном месте. Если вы используете Windows — рекомендую установить любую виртуальную машину с OC Linux и работать с блогом из-под нее. Если вы используете Linux или Mac OS X, порядок действий следующий:

  1. Устанавливаем необходимые для работы зависимости. В Mac OS X все зависимости установлены по умолчанию, для Linux, вероятно, их потребуется установить следующей командой.

    sudo apt-get install ruby ruby-dev gcc make git
  2. Скачиваем и распаковываем сам блог.

    git clone git://github.com/imathis/octopress.git octopress cd octopress/
  3. Устанавливаем зависимости. Потребуются права рута.

    gem install bundler bundle install
  4. Устанавливаем стандартную тему.

    rake install

Пишем первый пост

Чтобы создать пост — просто набираем:

rake new_post["Заголовок поста"]

Посты расположены в папке source/_posts/. Пишутся они на языке Markdown — в принципе, даже не умеюший программировать человек разберется с ним легко: просто откройте Markdown Cheatsheet и следуйте инструкциям. Интерес представляет, прежде всего, шапка генерируемого поста — она выглядит следующим образом:

layout: post
title: Заголовок вашего поста
date: 2015-06-29 20:29:04 +0300 # Дата создания поста
comments: true # Комментарии разрешены
categories: # Теги вашего поста. Если несколько - перечисляются так: [cat1, cat2, cat3]

Для русскоязычных блогеров особенное внимание стоит обратить на имя сгенерированного фвйла. По умолчанию,краткий заголовок вашего поста, отображаемый в URL, генерируется из заголовка поста, и виден в названии файла после даты создания. Для постов на русском это очень неудобно: в адресной строке браузера будет что-то вида zagolovok-vashego-pervogo-posta.html. Соответственно, его стоит заменить на более читаемое — для этого достаточно переименовать файл.

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

‹!– mоrе –›

Когда пост написан — его всегда хочется посмотреть. Для этого набираем в консоли:

rake preview

Затем набираем в браузере http://localhost:4000 или http://your-virtual-machine-ip:4000, если вы работаете посредством виртуальной машины. Если вы работаете из-под виртуальной машины — потребуется пробросить порт, как правило, это можно сделать в настройках ВМ. Rake preview автоматически отслеживает все изменения в файлах, поэтому вы можете запустить его, писать пост и поглядывать на изменения.

Настраиваем сам блог

Octopress не был бы истинным хакерским блогом, если бы в нем не настраивалось все. Это достигается за счет использования Rakefile — когда вы запускаете rake preview, или rake generate, блог просто следует инструкциям из Rakefile, расположенного в корне. Базовые же настройки хранятся в _config.yml — в основном, там все ясно из комментариев, самая интересная часть расположена вот здесь:

root: /

Да, мы можем настраивать вид ссылок в блоге. Что это значит? По умолчанию, все посты в блоге выглядят так: http://yourblog.com/2015/06/new-post.html. Вас это может не устраивать — тогда, необходимо поменять на устраивающие параметры. Например, в моем блоге все ссылки выглядят, как /posts/post-titie/, потому как они так выглядели в Anchor CMS, и я хотела, чтобы ссылки были совместимы. Нет проблем — прописываем в конфиг-файле:

permalink: /posts/:title/

Вторым интересным моментом является установка тем. Для Octopress их написано очень много — красивых, хороших и разных, лучшие опубликованы здесь: 3rd Party Octopress Themes. Большинство тем устанавливается следующим образом:

git submodule add GIT_URL .themes/THEME_NAME
rake install["THEME_NAME"]

Публикуем пост

После того, как вы настроили блог, можно его сгенерировать:

rake generate

После генерации вы получите статические HTML, CSS и JS-файлы в папке public. Осталось его залить на хост — и ваш блог доступен всем. Однако, вот тут есть одна проблема, о которой стоит упомянуть: по умолчанию, Octopress поддерживает публикацию сайта через Git и Rsync. В России, да и не только, для загрузки контента на хост используется FTP. Публикация через FTP делается следующим образом:

  1. Скачиваем программу lftp следующим образом:

    sudo apt-get install lftp (Linux)
    brew install lftp (Mac OS X)
    
  1. Открываем Rakefile, и вставляем следующий код:

    ftp_user = "username"
    ftp_password = "password"
    ftp_server = "host"
    ftp_target = "/folder/"
    deploy_default = "lftp"
    
  1. Теперь мы можем загрузить ваш блог на сервер, набрав всего одну команду:

    rake deploy

А что дальше?

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

Кстати, еще одно преимущество Octopress — очень легкие страницы. Этот пост я писала в поезде, где телефон ловил только EDGE-интернет, и пока остальные страницы грузились минуту, мой блог грузился реактивно — за несколько секунд.

Удачи!

Губарь Маргарита Александровна

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *