Octopress - блоггинг для гиков

блог

Меня всем устраивал мой маленький блог на Rasberry Pi, пока жестокая реальность не напомнила мне в какой стране я живу. После аварийных выключений света, у меня убился раздел на флешки с установленной ОС. Переустанавливать было лень, и я прекрасно понимал, что это не последняя переустановка. Нужно искать другой вариант… на горизонте появился Octopress.

Octopress – генератор статических сайтов. Мы берем шаблоны статей, созданные нами и переводим в статические html страницы.

Плюсы:

  • Скорость. Мы разгружаем сервак, так как на нем только html+js+css+images.
  • Дешевизна. Нам не нужно устанавливать php, базы данных, кеш сервера и т.д. Соответственно мы можем арендовать самый дешевый сервер.
  • Удобство. Все посты хранятса в формате маркдаун. Набирать текст в нем одно удовольствие. Ты тратишь время над содержимое статьи, а не ее внешний вид.

Минусы:

  • Главный и единственный минус, проистекает от его плюсов. У нас нет динамического контента. Если мы хотим добавить динамику нашему сайту. то нужно использовать js. Благо уровень текущего js вырос. Да и сторонних сервисов которые предоставляют API для нашего js, предостаточно.

Устанавливаем Octopress

1. Устанавливаем rvm

2. Устанавливаем Ruby

1
2
rvm install x.x.x
rvm use x.x.x

3. Устанавливаем Octopress

1
2
3
4
5
6
apt-get install python-dev # для плагина подсветки синтаксиса
git clone git://github.com/imathis/octopress.git octopress
cd octopress
ruby --version # report Ruby 1.9.3
gem install bundler
bundle install

4. Выбираем тему по душе

1
2
3
git clone GIT_URL .themes/THEME_NAME
rake install['THEME_NAME']
rake generate

5. Редактируем конфигурационный файл _config.yml

1
2
3
4
5
6
7
root: /
permalink: /:categories/:title/
source: source
destination: public
plugins: plugins
code_dir: downloads/code
category_dir: categories

6. Правим файлы под свои предпочтения в директориях

1
2
3
4
5
6
7
8
sass                       # цветовая гамма и стили
source/                   # папка с исходными файлами. 
      _includes/          # шаблоны частей сайта
      _layouts/           # основные шаблоны для страниц, постов и архивов
              asides/     # шаблоны боковой панели
              custom/     # пользовательские шаблоны
              post/       # шаблоны страницы post (metadata, sharing & comment)
      _posts/             # все посты в markdown

7. Русифицируем даты в Octopress

8. Ставим сторонние плагины. Некоторые интересные плагины:

Размещение на Github Pages

Создаем на Github репозиторий с именем ваш_логин.github.io

1
rake setup_github_pages

Вводим свой урл до репозитория.

1
2
rake generate
rake deploy
1
2
3
git add .
git commit -m 'your message'
git push origin source

Персональный домен

Создаем файл с именем CNAME содержащий ваше доменное имя.

1
echo 'your-domain.com' >> source/CNAME

На вашем DNS сервере прописываем А запись

1
example.com.  3259    IN      A       204.232.175.78

Автоматизация

Octopress поддерживает автоматизацию типовых задач пользователя.

Список все задач можно посмотреть командой

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ rake --task
rake clean                     # Clean out caches: .pygments-cache, .gist-cache, .sass-cache
rake copydot[source,dest]      # copy dot files for deployment
rake deploy                    # Default deploy task
rake gen_deploy                # Generate website and deploy
rake generate                  # Generate jekyll site
rake install[theme]            # Initial setup for Octopress: copies the default theme into the path of J...
rake integrate                 # Move all stashed posts back into the posts directory, ready for site gen...
rake isolate[filename]         # Move all other posts than the one currently being worked on to a tempora...
rake list                      # list tasks
rake new_page[filename]        # Create a new page in source/(filename)/index.markdown
rake new_post[title]           # Begin a new post in source/_posts
rake preview                   # preview the site in a web browser
rake push                      # deploy public directory to github pages
rake rsync                     # Deploy website via rsync
rake set_root_dir[dir]         # Update configurations to support publishing to root or sub directory
rake setup_github_pages[repo]  # Set up _deploy folder and deploy branch for Github Pages deployment
rake update_source[theme]      # Move source to source.old, install source theme updates, replace source/...
rake update_style[theme]       # Move sass to sass.old, install sass theme updates, replace sass/custom w...
rake watch                     # Watch the site and regenerate when it changes