Переїзд на Wardrobe CMS

Опублікував Сергій Макаренко 7-11-2014 об 13:06

Це вже третій раз, коли я переношу свій блог на нову CMS. Спочатку це був WordPress, потім Octioress. Останній два роки тому здавався дуже класним. Він був надшвидким, надійним і в ньому була ґіківська складова, яка мені здавалася на той час дуже привабливою.

Однак, з часом деякі речі починають навбридати і обтяжувати. За останні два роки погляди на CMS для блогу змінилися радикально і остаточно сформувалися в останні кілька місяців. По-перше, я прийшов до того, що мені більше подобається простий зовнішній вигляд, який не обтяжено безглуздими прибамбасами. До них я відношу усіляки смайлики в тескті, виноски і таке інше. Без усього цього можна обійтися.

Тому концепція дизайну у мене викристалізувалася в наступному вигляді. Мені потрібні були лише коментарі до постів, кнопки шарінгу, пошук по блогу, збільшення зображень і додаткові статичні сторінки вміст яких змінювався б дуже рідко (кілька разів на рік). Кнопки шарінгу окрема тема. Дурні лайки я вважаю беглуздою метрикою, яка не несе ніякої користі ані мені ані чатачам мого блогу. А от плагін, який би давай змогу поділитися посиланням на пост в моєму блозі в соціальній мережі доволі корисна штука.

Проблему коментарів до публікацій я вирішив за допомогою Disqus. Хороший сервіс, який повністю мене задовольняє. Збільшення зображень в публікаціях я реалізував за допомогою FancyBox. Проста і легка приблуда на jQuery, яка майже не впливає на швидкість роботи сайту. Всі інші вимоги я виконав за допомогою CMS Wardrobe, але про це трохи згодом.

По-друге, мене почав напрягати Octopress. З кожним оновленням OS X мені доводилося знову, знову і знову щось пиляти, аби завівся Ruby, запрацював Compass і таке інше. Останньою краплиною стали мої спроби полагодити оточення для роботи в OS X Yosemite. Під час цього лагодження ще відпав Jekyll. Деякі користувачі плюнули на все це і перевели свої блоги на Docker, але у мене немає стільки вільного часу, щоб копирсатися в цьому. В блог потрібно бложити, а не витрачати купу часу на його тюнінг і змушувати працювати.

Тому я почав досліджувати інтернет на предмет якихось альтернатив Octopress. Ви знаєте, CMS, яка б потребувала бази даних перестала мені здаватися поганою ідеєю. Головне не повертатися на WordPress і проблем не буде. Мені на око впали дві CMS — Wardrobe та Anchor. Anchor дуже швидка і легка CMS для роботи якої не потрібно нічого, окрім PHP та MySQL на сервері. Але від її використання довелося відмовитися, тому що проект перестав розвиватися і в ньому є баги, розбиратися з якими заради блогу я просто не захотів.

Приклад форматування тексту в адмінці

Через це я зупинив свій вибір на CMS Wardrobe. Це швидка і мінімалистічна CMS яка, до того ж, розуміє Markdown. Це вигідно відрізняє від усіх інших варіантів, які мені довелося спробувати. Окрім того, тема з коробки, яку я суттєво переробив, підтимувала подібне до Octopress висвітлення коду в публікаціях. Ця властивість додавала Wardrobe помірної брутальності, яка мені до вподоби. Сказано зроблено. Тестував і ганяв вздовж і в поперек нову CMS в локальній мережі я з місяць.

Приклад адмінки

Під час цих випробувань я в основному переносив публікації (простий копіпаст не підходив через зміни у зовнішньому вигляді і перенос відняв чимало часу), вивчав функціональність і допилював зовнішній вигляд. Як виявилося, додавати, керувати і модифікувати сторінки виявилося досить зручно. Документацію я не можу назвати вичерпною, але її достатньо для того, щоб розібратись в тому, як влаштовані нутрощі CMS.

Наприклад, одним з потужних інструментів керування є так звані «маршрути». За їх допомогою можна задавати адреси відображення додаткових і вже існуючих сторінок. Ось за допомогою цієї конструкції можна відобразити будь яку нову сторінку на сайті:

Route::get('/pro-mene', function()
{
    return View::make(theme_view('pages.pro-mene'));
});    

Адаптувати теми під свої потреби теж досить легко. Завдяки доволі простому синтаксису, документації та форуму я досить швидко розібрався що до чого. В якості приклада синтаксиса можна використати цей:

@foreach (Wardrobe::posts() as $item)
    {{ $item['title'] }}
@endforeach

Ця конструкція дозволяє вивести на сторінку заголовки всіх публікацій. Модифікувати її теж не важко. Додавання параметра per_page дозволить обмежати кількість виведених заголовків, наприклад, до п’яти:

@foreach (Wardrobe::posts(array('per_page' => 5)) as $item)
    {{ $item['title'] }}
@endforeach

До того ж розробник цієї CMS Ерік Барнс працює над другою версією Wardrobe. Приємно, коли проект не стоїть на місті і розвивається. Особисто для мене найбільшою перевагою цієї CMS над усіма іншими є мінімалізм адмінки. Вона проста і чудова. Нічого зайвого. Долучайтеся. Потрібно просто бложити, а не тюнінгувати сві блог.