Як підняти блог на Github Pages

  1. зміст
  2. Якщо коротко, то ось що мене привернуло завести блог на Github Pages:
  3. Приступимо до створення свого блогу:
  4. кастомізація
  5. підсумки
  6. посилання

Перший пост блогу, інструкція.

зміст

лірика

Давно зріла ідея завести особистий сайт для того, що б туди скидати різні рішення, які знайшов в процесі програмування і хотілося б запам'ятати. Та й просто мати місце, де мислію по древу іноді можна розтікатися.

Зупиняло два фактори: лінь і незнання веб-технологій (і відсутність великого бажання вивчати їх). Використовувати ж сучасні готові движки типу Wordpress , Blogger або LiveJournal і іже з ними не хотілося через їх перевантаженість, "вебдванольний», не підконтрольності мені. Та й більшість функціоналу, який пропонують сучасні блоги / щоденники, мені не потрібно.

І ось тут в черговий раз гуляючи по Github я натрапляю на Github Pages . Півгодини читання і я розумію - це те що потрібно. Суть в чому? Сервіс пропонує користувачам Github безкоштовний хостинг статичних html-сторінок для спеціально створеного сховища. Прості сторінки все ж таки не блог - так який же від сервісу толк? Там є генератор зручний, який з пачки шаблонів і простого тексту згенерує сайт користувачеві на радість командою однієї - git push - прелесть какая І ось тут в черговий раз гуляючи по   Github   я натрапляю на   Github Pages .

Якщо коротко, то ось що мене привернуло завести блог на 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 - робоче демо блогу:

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;
  • репозиторій мого блогу.

Суть в чому?
Прості сторінки все ж таки не блог - так який же від сервісу толк?
О взяти з С ++ розробника?