Social Profiles

My Projects

Несколько слов про этот блог

Hi massive!

Решил дропнуть свой старый блог, в виду того, что не вижу смысла использовать тяжелый Wordpress который требует php и базу данных. Уже довольно давно в среде веб-девелоперов стало модным делать блоги на так называемых static generator, это скрипт который рендерит контент (который хранится в определенном формате: rst, markdown и так далее) в статический сайт, другими словами в html файлы. Для блога, как правило, не нужно какое-то взаимодействие с бэкендом, а там где нужно - многие вещи можно использовать в виде сторонних сервисов, я имею в виду комментарии или отзывы.

В плюсах

  • скорость загрузки страниц для пользователя
  • крайне низкая нагрузка на сервер даже при большом трафике
  • возможность использовать такие сервисы как github/heroku (и многие другие) для размещения блога, как правило базовый план (который бесплатный) позволяет это сделать и что самое главное эти сервисы позаботятся о хранении, бэкапах и обслуживании софта/железа за вас
  • такие сайты/блоги нельзя "хакнуть"

Так вот, когда наступает время и девелопер решает начать писать в блог, практически всегда начинает писаться свой static blog generator (на гитхабе их лежат сотни, но есть несколько довольно широко используемых: Octopress/Jekyl/Hyde/Pelican). Я решил тоже написать движек сам, но выбрал более простой путь. Для блога используется фрэймвок Flask и расширения к нему flask-flatpages и flask-frozen. Первый позволяет огранизовать рендеринг .md (MarkDown) файлов в html, а второй сбрасывает весь сайт в набор html/css/js файлов. Некоторое кол-ва кода все же пришлось написать, для создания нужной структуры страниц, собственно сам html/js этих страниц (используя Bootstrap 3), построение сайтмапа, а так же реализацию тэгов и категорий. Flask к тому же удобно работает как локальный вебсервер при написании статей и правке html/js кода.

Статьи пишу в формате MarkDown используя обычный текстовой редактор (сейчас это SublimeText 2), этот формат широко используется на гитхабе для создания wiki страниц проектов и README файлов. Оказалось, что после некоторой практики писать посты в формате MarkDown гораздо удобнее чем в JS веб-редакторах (редактор в админке Wordpress, TinyMCE и другие), ознакомится со структурой .md файлов можно за 15 минут и затем пойдет уже чистый профит.

Еще одна фишка блога - динамическая подгрузка контента без релоада страницы целиком. Это тоже весьма увеличивает скорость (и следовательно улучшает "user experience"), т.к. статика, css/js файлы не перезагружаются каждый раз когда пользователь переходит на другую страницу блога. Сдалано это с помощью библиотеки pjax и работает с браузерами поддерживающими pushState (т.е. Chrome26/Firefox21/IE10, короче говоря современными браузерами).

Часть статик файлов (jquery, pjax, normalize) тянется с CDN и это так же уменьшает время загрузки страницы. Вообщем в какой-то момент можно даже забыть о том, что работаешь с сайтом через интернет.

В качестве фронт-энд фрэймворка для html/css используется Twitter Bootstrap 3, который пока еще находится в статии разработки (upd. уже вышел).

Есть желание добавить больше различныех эффектов на CSS3/JS, собственно кое-что (2ой сайдбар при наведении мылки влево до упора) уже работает.

Потихоньку в течении нескольких недель перетащу актуальные статьи со старого блога и постараюсь почаще писать новые.

comments powered by Disqus