Як підняти блог на Github Pages
- зміст
- Якщо коротко, то ось що мене привернуло завести блог на Github Pages:
- Приступимо до створення свого блогу:
- кастомізація
- підсумки
- посилання
Перший пост блогу, інструкція.
зміст
лірика
Давно зріла ідея завести особистий сайт для того, що б туди скидати різні рішення, які знайшов в процесі програмування і хотілося б запам'ятати. Та й просто мати місце, де мислію по древу іноді можна розтікатися.
Зупиняло два фактори: лінь і незнання веб-технологій (і відсутність великого бажання вивчати їх). Використовувати ж сучасні готові движки типу Wordpress , Blogger або LiveJournal і іже з ними не хотілося через їх перевантаженість, "вебдванольний», не підконтрольності мені. Та й більшість функціоналу, який пропонують сучасні блоги / щоденники, мені не потрібно.
І ось тут в черговий раз гуляючи по Github я натрапляю на Github Pages . Півгодини читання і я розумію - це те що потрібно. Суть в чому? Сервіс пропонує користувачам Github безкоштовний хостинг статичних html-сторінок для спеціально створеного сховища. Прості сторінки все ж таки не блог - так який же від сервісу толк? Там є генератор зручний, який з пачки шаблонів і простого тексту згенерує сайт користувачеві на радість командою однієї - git push - прелесть какая .
Якщо коротко, то ось що мене привернуло завести блог на Github Pages:
Установка і настройка оточення
Замість читання купи документації по Jekyll, я знайшов круту ріпу poole . Як пише її автор:
"A clear and concise foundational setup for any Jekyll site. And it has a super minimal look ... It does so by furnishing a full vanilla Jekyll install with example templates, pages, posts, and styles. "
Тобто мінімально необхідний набір для запуску блогу: форкнул, поміняв настройки під себе і користуєшся на здоров'я. Правило "Все вже написано до нас!" Працює безвідмовно :).
demo.getpoole.com - робоче демо блогу:
Приступимо до створення свого блогу:
- встановлюємо Ruby;
- встановлюємо Ruby DevKit;
- встановлюємо Jekyll. Я спочатку встановив генератор так: gem install jekyll. І це правильно в загальному випадку. Але не у випадку з Github. Сайт використовує не останню версію. І можлива така ситуація, коли ви випадково задієте нову фічу, яка не підтримує тією версією Jekyll, яка встановлена на Github. Дізнатися поточну версію можна тут . Встановити необхідну версію Jekyll можна так: gem install jekyll -v xyz Але набагато простіше скористатися готовим пакетом від самих хлопців з Github: gem install github-pages, він розгортає поточний оточення, яке використовується Github, у вас на комп'ютері;
Update: з докерів все набагато простіше:
docker run -ti --rm -v "$ PWD": / usr / src / app -p "4000: 4000" starefossen / github-pages
- клонуємо репозиторій poole ;
- запускаємо локально сайт, для цього в консолі переходимо в папку з poole і вводимо jekyll serve. Після того як Jekyll запуститися, ми зможемо побачити сайт за адресою http: // localhost: 4000 . Коли ви запускаєте Jekyll, він створює папку _site, в яку записує згенерований блог. Кожен файл в репозиторії буде скопійований всередину папки, за винятком тих файлів / папок, які починаються з підкреслення. Markdown-файли будуть автоматично конвертовані в соотв. сторінки. В папці _posts повинні знаходиться пости в markdown-форматі. При чому назва файлу має бути виду рік-місяць-день-названіе_поста.md. Інакше для нього не згенерує відповідна html-сторінка. _config.yml - конфігураційний файл Jekyll, міняємо його під свої потреби, детально почитати про налаштування тут . Важливе зауваження: за замовчуванням Jekyll при будь-якій зміні файлів перезапише сайт, але якщо ви поміняли щось в _config.yml, то треба перезапустити Jekyll;
- додаємо пости, міняємо шаблони і взагалі робимо що хочемо;
- створюємо на Github новий репозиторій з ім'ям виду github_username.github.io;
- заливаємо / пушім в нього наш блог;
- Після невеликого проміжку часу (до півгодини) блог ставати доступний за адресою http://github_username.github.io
- якщо є свій домен, то Github легко дозволяє прив'язати його до блогу. Керівництво від Github, більше інформації для тих у кого реєстратор домену Namecheap.
кастомізація
В принципі подальші кроки вже не обов'язкові, якщо ви дійшли сюди, то швидше за все у вас вже успішно працює блог. У цій секції я описую зміни, які я захотів зробити.
Дефолтна тема poole мене підійшла практично ідеально. Але захотілося змінити ще деякі речі.
Додав три посилання вгорі:
- Про блозі
- Архів записів - динамічно формується список записів, для швидкої навігації;
- Стрічка - для бажаючих підписатися на оновлення блогу.
Для цього я додав в _config.yml:
pages_list: Про блозі: '/ about' Архів записів: '/ archive' Стрічка: '/atom.xml'
І модифікував шаблон _layouts / default.html :
<H3 class = "masthead-title"> <a href= "/" title= "Home"> {{site.title}} </a> {% for page in site.pages_list%} & nbsp; & nbsp; & nbsp; <Small> <a href= "{{ page[1] }}"> {{page [0]}} </a> </ small> {% endfor%} <p> <small> {{site.tagline }} </ small> </ p> </ h3>
Ще виявилося що з нуля немає підтримки тегів, що їсти не класно . Для Jekyll є окремий плагін, який реалізує теги, але в нашому випадку це не підходить, так як той Jekyll, який крутиться на серверах Github, не можна кастомизировать плагінами. Пам'ятаючи про правило "Все написано до нас", я поліз в Google і через 5-ть хвилин Рішення знайдено. Розписувати багато не хочеться, рішення повністю скопійовано, для наочності буде зручно подивитися diff . А саме файли poole.css , index.html , post.html і tags.html .
Чесно кажучи я ні грама не зрозумів, що я за магію зробив, для того що б теги заробили (що взяти з С ++ розробника? ), Але все вийшло і працює так як мені потрібно. Ось, що хрест животворящий вільний софт робить!
підсумки
Я отримав особистий блог / сайт, не особливо занурюючись в світ інтернету, можу писати різного ступеня корисності пости і продовжувати програмувати на своїх улюблених С / С ++.
посилання
- офіційний сайт Jekyll з дуже хорошою документацією ;
- документація Github Pages ;
- poole репозиторій.
- керівництво по markdown;
- пост чувака, на який я орієнтувався при налаштуванні блогу;
- пост чувака для настройки мультилінгвальної блогу;
- налаштування DNS для Namecheap домену для блогу на Github;
- пост чувака, який розповідає як додати підтримку тегів без плагіна Jekyll;
- репозиторій мого блогу.
Прості сторінки все ж таки не блог - так який же від сервісу толк?
О взяти з С ++ розробника?