Jekyll – генератор статических сайтов и блогов. Написан на Ruby, используется в GithubPages.
Ставим через rubygems, потому что deb-пакета со свежим Jekyll нет.
> sudo apt-get install rubygems
> sudo gem install jekyll
Готово.
Создаем каталог и говорим Джекилу инициализировать блог:
> mkdir my-blog
> cd $_
> jekyll new .
В текущем каталоге появляется файл _config.yaml
, каталоги _posts
, _layout
, css
.
Более того, Jekyll уже написал для нас первый пост: “Welcome to Jekyll”.
“Компилируем” блог и смотрим, что получилось:
> jekyll serve
> firefox localhost:4000
Структуру каталогов можно подправить, например:
.
|-- _config.yml
|-- deploy
|-- plugins
`-- source
|-- css
| |-- main.css
| `-- syntax.css
|-- index.html
|-- js
|-- _layouts
| |-- default.html
| `-- post.html
`-- _posts
`-- 2013-06-30-welcome-to-jekyll.md
В каталог source/_posts
будем помещать свои записи,
в source/js
– полезные js-скриты (генератор оглавлений и т.п.),
в plugins
– планины для Jekyll’а,
а в deploy
Jekyll будет записывать сгенерированный сайт.
Пример файла _config.yml
:
name: My New Jekyll Blog
pygments: true
url: http://blog.liruoko.ru
permalink: /:categories/:year-:month/:title
plugins: plugins
source: source
destination: deploy
future: false
Осталось доставить сгенерированный сайт (каталог deploy
)
на сервер и настроить apache или любой другой веб-сервер.
Благо, сайт у нас статический, и от веб-сервера требуется
только отдавать файлы с диска.
Добавляем к своему сайту Яндекс.Метрику и Google Analytics.
Создаем файлы source/_includes/google-analytics
и source/_includes/yandex-metrika
,
в каждый помещаем код соответствующего счетчика.
Добавляем счетчики на все страницы:
Index: source/_layouts/default.html
===================================================================
--- source/_layouts/default.html (revision NNN)
+++ source/_layouts/default.html (working copy)
@@ -16,8 +16,10 @@
<!-- Custom CSS -->
<link rel="stylesheet" href="/css/main.css">
+ { % include google-analytics % }
</head>
<body>
+ { % include yandex-metrika % }
<div class="container">
<div class="site">