Я хочу написать о том, как после нескольких попыток я нашел для себя самый простой способ сделать свой блог и способ поддерживать его в любом месте, где у меня есть доступ в интернет, гит клиент и текстовый редактор. (а для этого достаточно и простого смартфона)

Я увлекаюсь программированием. И часто сталкиваюсь с трудностями. А один из способов справиться с проблемой - это рассказать о ней. Допустим в данный момент я очень плотно работаю с отправкой форм и рассылкой писем, все кажется новым (я ведь совсем недавно в этой профессии), и мне хочется поведать, какие вопросы передо мной возникают, и как я их решаю.

Лучший способ - сделать запись в блоге с подробным описанием сабжа. Но хочется же, чтобы и сам блог был тоже своим, так ведь действительно лучше, да?

Если спросить у гугла, как создать свой блог, он вывалит на вас огромную кучу материалов, будь то создание оного на Wordpress, на чистом php ну или использование фреймворка для этих целей. Я хочу рассказать, почему все вышеизложенные способы для меня показались не самыми удачными и что же выбрал я.

Первое, что я попробовал - это сверстал простую страничку средствами html и css, которую наполнил несколькими записями, забив все жестко прямо в html теги. Ну а сделал я это самым тупым и убогим способом, потому что я действовал по принципу - что-то сделал, захотел увидеть. Естественно через некоторое время начинаешь замечать, что код раздувается до неприличия и возникает необходимость хранить свои данные в другом месте, а выводить их уже применяя программирование. То есть использовать Базы Данных и какой-то-самый-крутой-язык-программирования, я на этот момент знал только то, что для этих целей можно использовать PHP. Ну а в качестве Базы данных конечно же MySql.

Я создал простенькую таблицу posts, забил туда с помощью SQL-запросов вручную немного тестовых данных, и с помощью php вывел их в цикле, обернув нужными тегами. Я добавлял еще записи в базу данных, записей выводилось больше, а код оставался прежним. Уже лучше.

Со временем конечно же пришло понимание, что писать свою статью внутри SQL-запроса не комильфо и надо придумывать какую-то новую страничку, где я могу разместить форму с 3-4 полями для ввода Названия, Описания, Даты создания и Самого текста статьи. Кроме того, после заполнения данные нужно отправить в какой-то скрипт на языке PHP, который должен обработать POST запрос, сформировать запрос в Базу Данных, выполнить его и сообщить о результате, чтобы я смог вывести сообщение об удачном завершении или провале секретной операции по доставке объекта в Базу Данных.

В общем все усложнялось и усложнялось, уровень раздражения достигал высоты горы Джомолунгма а работающий блог я сделать не смог. Точнее да, страницу то с формой я создал, но вскоре осознал, что доступ к ней должен быть только у меня, как желателя написать набор слов в свой блог, а остальные должны уметь только просматривать то, что я произвел из уст. Для этого надо было делать простенький доступ по паролю к определенному разделу сайта, что все больше и больше отдаляло меня от самого процесса написания.

А кроме вышесказанного стандартное поле для ввода текста абсолютно урезано в плане функционала и сваять что-нибудь приятное глазу там не получится. Прикрутить расширенный редактор текста? Защититься от SQL-инъекций? Использовать PHP-PDO для более безопасной работы с БД? Да ну надоело уже, хочу писать (ударение ставьте сами).

Спустя какое-то время я предпринял новую попытку и стал использовать фреймворк. Выбор пал на Laravel версии 5.2. Верстать сам не стал, скачал готовый шаблон на Bootstrap’e, создал миграцию для определения структуры своих таблиц, создал модель, контроллер, отдал данные во view и понеслась. Все стало выглядеть красиво, можно было даже двумя-тремя строчками прикрутить постраничную навигацию и вроде бы все круто, но… Опять столкнулся с проблемой создания админ-панели, начал читать про Routing, Middleware, авторизацию, и тому подобное и у меня возник вопрос - ну неужели все должно быть так сложно? Я хочу что-то написать и вылить в свет. А использовать Wordpress или готовые сервисы я почему то не хотел.

Ну а однажды я узнал про связку GitHub + Jekyll.

А вот здесь все оказалось уже намного проще. Все что мне нужно было сделать - это обзавестись аккаунтом на гитхабе, настроить гит для работы с ним и чуток почитать про маркдаун - причем последнее было освоено в процессе написания.

Суть в том, что статья для блога у меня теперь просто текстовый файл в формате .md. То есть не нужно заморачиваться с базами данных и вообще с программированием. Я склонировал себе репозиторий, написал или подправил статью хоть с телефона - я как раз с него это и делаю - и с помощью гит клиента нажал одну кнопку, которая делает git push. Все.

Между моментом, когда у меня появилась какая то мысль и тем, когда я ее изложил в письменном виде, проходит мало времени, что положительно сказывается вообще в принципе на желании что-нибудь написать.

Так что я изначально искал способ, чтобы создать и вести блог было просто и я его нашел. Да, щас я знаю как это все сделать на каком-нибудь фреймворке, прикрутить простую админку и так далее, но зачем? Если все может быть намного проще, то не стоит это усложнять.

Суммируя все вышесказанное вот список того, что нужно сделать.

  1. Создать аккаунт на гитхабе (если нет).
  2. Создать репозиторий с именем acc_name.github.io. Подробнее во вкладке Project Site. Там же можно выбрать jekyll тему для блога. В двух словах jekyll это генератор статических страниц. (На выходе просто html). Более подробно на оф. сайте
  3. Склонировать его себе на компьютер (или на телефон). Я например пользуюсь приложением для андроида SGit.
  4. Чуток ознакомиться с тем, что такое маркдаун.
  5. Настроить git pull & git push - тут как вам удобно - если не хотите все время вводить логин и пароль, то лучше это сделать через SSH - вот ссылка от гитхаба как это сделать.
  6. Собственно писать - более подробно можно почитать тут