01 марта 2011

Emacs. Github blog hosting

Хочу чтобы emacs умел рисовать html странички. И чтобы midnight commander в нем запускался. Ну а пока давайте сделаем так, чтобы печатать сообщения в блог из emacs.

Принцип

# Установите git
  # Создайте аккаунт на "github.com":http://github.com
  # Создайте репозиторий "Ваше-имя.github.com"
  # Чуть-чуть подкрутите
  # Создавайте сообщения в textile или markdown разметке
  # Обновляйте блог с помощью git push

Технический аспект

Репозиторий, хранящийся на сервере, Вами периодически обновляется. Специально для этого придуманный Jekyll обрабатывает каждый раз Ваши файлы и генерирует html. Как будет выглядеть Ваш блог, Вы задаете, используя механизм шаблонов Liquid и разметку textile или markdown.
А также с помощью шаблона
{% highlight language %}
(defn hello-world
  "Hello  username  function"
  [x]
  (prn "Hello, " x))
{% endhighlight %}

Репозиторий

Репозиторий должен содержать в себе следующую структуру папок.
.
|-- _config.yml
|-- _layouts
|   |-- default.html
|   `-- post.html
|-- _posts
|   |-- 2007-10-29-why-every-programmer-should-play-nethack.textile
|   `-- 2009-04-26-barcamp-boston-4-roundup.textile
|-- _site
`-- index.html

Что-зачем?

_config.yml
Ваши настройки для jekyll, который будет парсить Ваш блог.
_layouts
Файлы с Liquid шаблонами. Тег {{ content }} будет заменен на содержимое страницы.
_posts
Ваши сообщения. Имя файла должно быть следующей нотации: ГОД-МЕСЯЦ-ДЕНЬ-название.(mardown|textile).
_site
Сгенерированный сайт
_plugins
Руби-плагины для блога.
_includes
Заготовки для шаблонов
other-directories
Другие директории будут расцениваться как статические и к ним будет предоставляться доступ.
Например:
.
|-- css
|   `-- blog.css
`-- js
    `-- blog.js

Еще подробнее

Создайте папку для вашего блога. Разместите в ней следующую структуру.
.
|--css/
|  `--blog.css
|--about/
|  `--index.html
|--_includes/
|  |--top.html
|  |--rightblock.html
|  `--bot.html
|--rss.xml
|--_layouts/
|  |--default.html
|  |--post.html
|  `--posts.html
|--_posts/
|--README.textile
`--_config.yml

Шаблон

Начнем с заготовок для будущего шаблона. Они будут расположены в папке _includes.
"Шапка" шаблона top.html
"Подвал" шаблона bot.html
Блок справа rightblock.html

Данный файлы подключается в шаблон с помощью инструкции
{% include filename %}
Конструируем шаблон. Файл default.html содержит включение вышеперечисленных элементов. Файл posts.html содержит шаблон страницы содержащий список сообщений блога. Файл post.html содержит шаблон страницы одного сообщения.

Определяем index.html

Конструкция в начале опеределяет какой шаблон необходимо применить. Все остальное в этом файле окажеться в шаблоне на месте {{ content }}
---
layout: posts
---
Соответственно в index.html мы выведем список всех сообщений. Данной конструкцией файлы шаблонов могут включать другие файлы шаблонов. Корнем шаблонов в нашем случае является default.html.

Настройка jekyll

В настройках указывается способ генерации путей к вашим сообщениям с помощью Permalink. Указываются игнорируемые ресурсы. Конфигурируется инструмент разметки. Включается генерация подсветки для исходного кода. И так далее.

Git

Git прост, как и его название. Если кто-то говорит Вам, что это не так, не верьте. В папке с вашим блогом выполните и ожидайте некоторое время, а затем можете полюбоваться результатами своего труда. Это Вам не попсовый livejournal.
git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:your-name/your-name.github.com.git
git push origin master
Домашним заданием останется организовать все так, чтобы не закрывать emacs.
Исходный код сообщения

Блог на github.com

Комментариев нет:

Отправить комментарий