Declaration of VAR

and some other stuff

Создание блога на Octopress

2014-07-30 03:07:22 +0400

2014-07-30 03:07:22 +0400 | Comments

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

Всё работает на фреймворке Octopress для Jekyll. Почитать, что это такое, можно тут и здесь.

Установка

Вот инструкции, которыми я пользовался:

Установка в Windows

Официального манула в списке нет, а я обычный вендопользователь, потому вот моя инструкция для Windows 8.1 x64 (но подойдёт для любой, я думаю). Хотя, “моя” - громко сказано, так как она почти полностью повторяет первый источник из приведённых выше.

Желательно всё ставить по пути без пробелов и кириллицы. Все настройки в установщиках более-менее по умолчанию, если вы не шарите что куда. Я бы только советовал убрать встраивание команд Git в контекстное меню Windows и создание всяких ярлыков. Если где-то будут спрашивать про редактирование системной переменной PATH - непременно соглашайтесь. Если не спросят, то проверьте, чтобы в ней оказались пути до Git и Ruby.

  1. Поставить Git. Я ставил по пути D:\Programs\Git\
  2. Поставить Ruby. Я ставил по пути D:\Programs\Ruby\
  3. Загрузить Development Kit для Ruby. Архив можно распаковать туда же, куда ставили Ruby, только создать для него дополнительную папку. Я распаковал по пути D:\Programs\Ruby\DevKit\
  4. Поставить ActivePython - будет нужно для подсветки синтаксиса. В ряде манулов об этом не пишут, видимо, подразумевается, что у всех и так есть. Также обратите внимание, что нужна версия 2.7.x или какая там будет второй ветки, потому что с 3.x веткой работать не будет. Швабодное ПО as it is.

Теперь создайте где-то каталог, в котором будут лежать файлы вашего блога. У меня это здесь: D:\code\www\blog\

Открываем cmd.exe и разворачиваем Development Kit:

1
2
3
cd D:\Programs\Ruby\DevKit\
ruby dk.rb init
ruby dk.rb install

Так как Git уже установлен, то путь к его бинарникам должен быть в переменной PATH.

1
2
3
4
5
6
7
cd D:\code\www\blog\
# замените ТВОЙАДРЕС на username.github.com (username тоже поменять, разумеется)
git clone git://github.com/imathis/octopress.git ТВОЙАДРЕС
cd ТВОЙАДРЕС
gem install bundler
bundle install
rake install

Установка в Mac OS

Сначала Git. Открыть терминал и выполнить команду:

1
git

Если Git не установлен, то система предложит поставить Xcode Command Line Tools. Ставим его, Git появляется.

Ставим Homebrew (там написано, как). Ставим Ruby. Точнее, оно уже стоит, скорее всего, но тем не менее, обновляем тогда до актуальной версии:

1
2
3
4
brew install rbenv ruby-build rbenv-gem-rehash
rbenv install 2.3.0
rbenv global 2.3.0
ruby -v

Хотя когда я потом пробовал ставить то же самое, оно мне выругалось на rbenv-gem-rehash, так что я его просто удалил из этого списка.

Кстати, а почему именно 2.3.0? Ну просто тогда это был самый последний. Если хотите актуальный, то выполните rbenv install -l, чтобы посмотреть, какой там щас.

Ставим вот такую штуку:

1
2
gem install bundler
rbenv rehash

Создаём каталог для блога ~/Documents/www и переходим в него. Ставим Octopress:

1
git clone git://github.com/imathis/octopress.git ТВАЁИМЯ.github.io

Теперь:

1
2
3
cd ТВАЁИМЯ.github.io
bundle install
rake install

Запуск

Идём на GitHub и создаём новый репозиторий с названием ТВАЁИМЯ.github.io. Клонируем его в ТВАЁИМЯ.github.io/_deploy/ (вернувшись обратно в корневой каталог блога):

1
2
cd ..
git clone https://github.com/ТВАЁИМЯ/ТВАЁИМЯ.github.io.git _deploy

Оно скопирует ваш репозиторий блога в эту папку. Теперь выполняем команды:

1
2
3
rake setup_github_pages
rake generate
rake deploy

Оно сгенерирует страницы блога и сложит их в ТВАЁИМЯ.github.io/_deploy/, а также попытается выполнить коммит в ваш репозиторий и отправить всё на сервер. Если оно этого не сделает (не сможет выполнить git push), то надо будет сделать это вручную (находясь в каталоге /ТВАЁИМЯ.github.com/_deploy):

1
2
3
4
cd _deploy
git add .
git commit -m 'your message'
git push origin master

Или как-то так. Помню, в прошлый раз я что-то там тоже мудрил не с первого раза.

Ваш блог станет доступен по адресу https://ТВАЁИМЯ.github.io через пару минут.

Настройка Octopress

Основные настройки хранятся в файле _config.yml в корне. Там парой взмахов можно прилепить к блоку каменты и всякую социальную хрень.

Там же можно настроить формат даты, если не нравится предлагаемый по умолчанию. Я взял такой:

1
date_format: "%d.%m.%Y"

Ну и, конечно, поменяйте название и подзаголовок блога.

Подсветка синтаксиса

Вот тут всё пошло плохо. Из коробки она работать отказалась. На Stack Overflow рекомендовали откатываться на pygments версии 0.5.0, тогда как сейчас актуальная 0.6.0. В общем, я попробовал, не помогло, и тогда вернул обратно свежую. Через некоторое время выяснилось, что должен быть установлен Python, как писалось выше.

После его установки подсветка синтаксиса языков заработала, но проблемы на этом не закончись, и решить их не удалось:

  • не отображаются номера строк (ни сначала, ни start:22);
  • не работает подсветка указанных строк (параметр mark:52,54-55, например);
  • не включается светлая схема.

Через некоторое время я перешёл на другую систему подсветки синтаксиса.

Как постить

Забыл сказать, что вообще все операции делаются через терминал. Создание новых постов тоже:

1
2
# если сегодня 30.07.2014, создаёт файл source/_posts/2014-07-30-mah-first-post.markdown
rake new_post["Mah first post"]

Этот файл теперь можно открыть и написать в нём пост. Используется разметка Markdown, но никто не запрещает пилить с HTML.

Когда закончите написание, сохраните файл и выполните команды:

1
2
3
4
5
6
# сборка блога из исходников, включая новые страницы, посты
rake generate
# запускает веб-сервер на 4000 порту (http://localhost:4000/) для предпросмотра (CTRL+C останавливает)
rake preview
# копирует собранный блог в каталог публикации, выполняет коммит и отправляет на сервер
rake deploy

Можно идти смотреть в сети по адресу блога.

RSS

По умолчанию в RSS-ленту попадает вся статья целиком, что неправильно - в RSS должны попадать только заголовки или хотя бы первые абзацы статей. Однако, тут такое предусмотрено: для этого в статьях используется разделитель <!-- more -->, который следует ставить после первого абзаца. Но этого недостаточно, нужно ещё во всех (потому что я не знаю, в каком точно) файлах atom.xml поменять значения post.content на post.excerpt.

На этом всё, остальное прочитаете в массе источников - информации очень много.