diff --git a/atom_plus_markdown.md b/atom_plus_markdown.md new file mode 100644 index 0000000..fb0755f --- /dev/null +++ b/atom_plus_markdown.md @@ -0,0 +1,70 @@ +#Настройка редактора Atom для работы с Markdown + +Для работы над статическим сайтом нужно: +- Редактировать файлы Markdown +- Хранить файлы в "безопасном" месте. Чтобы случайно их не потерять +- Облегчить себе работу по формирофанию необходимой сужебной информации внутри файлов (Front Matter) + +GitHub поможет решить вопрос хранения файлов со статьями и новостямии, а вот +удобного редактирования и наполнения файлов можно решить практически любым редактором +кода. Для себя я выбрал редактор от авторов GitHub - [Atom][75f0e641]. + +Это современные кросс платформенный редактор кода, с множеством удобным плагинов и, что самое важное, встроенной интеграцией с +Github. Что позволяет собрать функионально рабочее место для работы над блогом буквально +за 15 минут. И не беспокоиться о том, что с таким трудом созданные данные будут утеряны +из-за аппаратного или программного сбоя. + +Поскольку работаю я на GNU/Linux Debian, то и процесс настройки буду описывать для этой операционной +системы. + +1. Скачиваем пакет с сайта [Atom][75f0e641]. +![Главная страница atom.io](images/2020/05/screenshot-atom.io-2020.05.03-15_33_48.png) +2. Устанавливаем зависимости: + +`$ sudo aptitude install git, libgconf-2-4, libgtk-3-0, libgcrypt20, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils, libx11-xcb1, libxss1, libasound2, libxkbfile1, libcurl4, policykit-1, lsb-release +` +Первое, что следует сделать после установки Git — указать своё имя и адрес электронной почты. Это важно, потому что каждый коммит в Git содержит эту информацию, и она включена в коммиты, передаваемые вами, и не может быть далее изменена: + +`$ git config --global user.name "kpa39l" +$ git config --global user.email kpa39l@yandex.ru +` + +Если указана опция --global, то эти настройки достаточно сделать только один раз, поскольку в этом случае Git будет использовать эти данные для всего, что вы делаете в этой системе. Если для каких-то отдельных проектов вы хотите указать другое имя или электронную почту, можно выполнить эту же команду без параметра --global в каталоге с нужным проектом. + +Теперь устанавливаем сам редактор: + +`$ sudo dpkg -i ~/Загрузки/atom-amd64.deb` + +После установки ярлык для запуска добавиться в раздел "Разработка" системного меню. +![Расположения ярлыка в системном меню](images/2020/05/Снимок экрана_2020-05-03_15-47-43.png) +Или можно его запустить используя команду в консоли от текущего пользователя: + +`$ atom` + +3. Для хранения файлов можно использовать репозиторий GitHub. Ведь именно для этого как раз и выбирался редактор Atom,как имеющий встроенную +интеграцию c GitHub. Для этого нужно получить ссылку для клонирования репозитория +![Копируем ссылку для клонирования репозитория](images/2020/05/Снимок экрана_2020-05-03_16-06-03.png) + +`https://github.com/kpa39l/gelonet.git` + +Теперь при открытии панели с интеграцией с GitHUb (Ctrl + Shift + 8) и нажав кнопку "Clone existing repository" мы можем ввести в поле ввода эту ссылку. Чтобы не мучаться с авторизацией в ссылку можно добавить данные о логине и пароле, приведя её к виду: + +`https://login:password@github.com/kpa39l/gelonet.git` + +Эти действия настроят интеграцию локальной папки с репозиторием на GitHub без редактирования +файлов конфигурации. + +4. Теперь для добства работы нужно добавить в Atom несколько плагинов для увеличения удобства работы со статическими блогами на Markdown. Для себя я определил следующий список: +- markdown-scroll-sync +- markdown-writer и зависящий от него +- tool-bar-markdown-writer + +Чтобы не искать их в списке пакетов достаточно выполнить в консоли команду: +`$ apm install markdown-scroll-sync tool-bar markdown-writer tool-bar-markdown-writer` + +В итоге при работе с Markdown файлами в интерфейсе редактора появится вот такая панель: +![](images/2020/05/Снимок экрана_2020-05-03_16-36-21.png) +Часто используемые инструменты Markdown-разметки отображаются в верхней части окна и при +необходимости можно их использовать. + + [75f0e641]: https://atom.io "Atom" diff --git a/images/2020/05/screenshot-atom.io-2020.05.03-15_33_48.png b/images/2020/05/screenshot-atom.io-2020.05.03-15_33_48.png new file mode 100644 index 0000000..2a9c60c Binary files /dev/null and b/images/2020/05/screenshot-atom.io-2020.05.03-15_33_48.png differ diff --git a/images/2020/05/Снимок экрана_2020-05-03_15-47-43.png b/images/2020/05/Снимок экрана_2020-05-03_15-47-43.png new file mode 100644 index 0000000..3e70ba0 Binary files /dev/null and b/images/2020/05/Снимок экрана_2020-05-03_15-47-43.png differ diff --git a/images/2020/05/Снимок экрана_2020-05-03_16-06-03.png b/images/2020/05/Снимок экрана_2020-05-03_16-06-03.png new file mode 100644 index 0000000..1668ec3 Binary files /dev/null and b/images/2020/05/Снимок экрана_2020-05-03_16-06-03.png differ diff --git a/images/2020/05/Снимок экрана_2020-05-03_16-36-21.png b/images/2020/05/Снимок экрана_2020-05-03_16-36-21.png new file mode 100644 index 0000000..a823d80 Binary files /dev/null and b/images/2020/05/Снимок экрана_2020-05-03_16-36-21.png differ diff --git a/quickstart.md b/quickstart.md new file mode 100644 index 0000000..71bf11b --- /dev/null +++ b/quickstart.md @@ -0,0 +1,54 @@ +# Быстрый старт + +Настоятельно рекомендуем прочитать полную версию документации, но для особо нетерпеливых ниже представлен ряд шагов, чтобы быстро начать работу. + +# Подготовка +В системе GNU/Linux Debian Buster по-умолчанию уже устанолен Python 3.7 Установим утилиту для создния виртуального окружения venv. +`$ sudo aptitude install python3-venv` +Он включает в свой состав утилиты pip для установки пакетов + +Создаем каталог в котором будет работать Pelican: +`$ mkdir pelican && cd pelican`. + +Создаем внутри каталога виртуальную среду Pytnon `$ python3 -m venv pelicanenv` и активируем её командой `$ source pelicanenv/bin/activate` + +# Установка +Устанавливаем Pelican (и дополнительно Markdown) на Python 3.7+, выполнив следующую команду в терминале: +`(pelicanenv) $ pip install pelican[Markdown]` + + +# Создание проекта +Выбираем имя для проекта и создаем каталог с соответствующим именем для сайта и переходим в этот каталог: +`(pelicanenv) $ mkdir -p ./projects/yoursite.ru +(pelicanenv) $ cd ./projects/yoursite.ru` + +Дальше создаем основу для проекта с помощью команды `pelican-quickstart`. Эта команда задаст несколько вопросов о создаваемом сайте. На вопрос о URL адресе сайта следует ответить в том же виде как будет отображено в примере http://yoursite.ru + + +# Создаем статью +Для того чтобы запустить Pelican потребуется создать хотя бы одну статью. Для этого в любом тектосовм редакторе создаем файл со следующим cодержимым: +`Title: Мой Первый Отзыв +Date: 2020-05-04 10:20 +Category: Обзор + +Ниже приведен обзор моей любимой механической клавиатуры.` + +Поскольку эта статья для примера рассматривает работу с данными в формате Markdown, то сохранить его нужно как `./projects/yoursite.ru/content/keyboard-review.md`. + +# Генерируем сайт +В корневом каталоге проекта `./projects/yoursite.ru/`выполните pelican-команду для создания сайта: +`(pelicanenv) $ pelican content` + +В результате выполенния команды сайт был создан внутри каталога `./projects/yoursite.ru/output`. В процесе работы могут отобразиться предупреждения, относящееся к RSS лентам, но это нормально при локальном развертывании и можно пока не обращать на них внимание. + +# Предварительный просмотр сайта +Открываем сеанс терминала, перейдим в корневой каталог проекта `./projects/yoursite.ru/`и выполняем команду для запуска веб-сервера Pelican: +`(pelicanenv) pelican --listen` + +Теперь просмотреть сгенерированный сайт можно перейдя на http://localhost:8000/ в браузере. + +Более подробная информация содержится вдокументации, продолжайте изучать её. Так же на странице [Tutorials](https://github.com/getpelican/pelican/wiki/Tutorials) wiki Pelican приведены ссылки на опубликованные сообществом руководства. + +# Источники +https://python-scripts.com/virtualenv +https://docs.getpelican.com/en/stable/quickstart.html diff --git a/staticgenerator.md b/staticgenerator.md new file mode 100644 index 0000000..10bd58c --- /dev/null +++ b/staticgenerator.md @@ -0,0 +1,16 @@ +#Выбор генератора статического сайта + +Анализ того ресурса, что размещен на хостинге и называется моим сайтом, показал что я замечательно и без проблем живу на flat cms Grav (плоская CMS без базы данных). При этом я здорово сэкономил на хостинге. Мой месячная абонплата на [jino.ru](http://jino.ru) не дотягивала даже до 80 рублей. Поэтому мне показалочь логичным сделать следующий шаг и перейти на полностью статический сайт генерируемый из текстовых файлов (мне понравился язык разметки Markdown), хранимых в каком-либо облаке, например на GitHub. + +Оказалось таких хитрецов как я полным-полно и в сети легко найти тонный инструментов для такой работы. Поскольку я неофит в Python и уже успел ознакомиться с шаблонизатором Jinja2, то и сформировал для себя следующий набор требований к генератору статического сайта: + +1. Реализация на Python. Для работы и на ноутбуке с GNU\Linux и на домашнем компе с Windows 10. Опять же с исследовательскими целями полезно работать с инструментом написанном на Python. +2. Работа с данными в файлах Markdown. Это удобный язык разметки, позволяющий легко реализовывать все нужные мне средства орагнизации текста. +3. Работа с шаблонизатором Jinja2. Удобный и мощный шаболнизатор. Понравился мне он, да и папа мой называл меня в детстве Джинджя. +4. Возможность работы с плагинами. +5. + +В итоге непродолжительных поисков нашёл в сети сайт [https://www.staticgen.com/](https://www.staticgen.com/) и на нем по указанным параметрам отобрал вот такое вот решение: +[https://blog.getpelican.com/](https://blog.getpelican.com/) +[https://github.com/getpelican/](https://github.com/getpelican/) +[http://www.pelicanthemes.com/](http://www.pelicanthemes.com/) diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..a7d921d --- /dev/null +++ b/todo.md @@ -0,0 +1,37 @@ +# Список задач по реализации сайта + +- [] Реализация pjax-навигации https://github.com/MoOx/pjax +- [] Поиск информации по автоматическому добавлению страниц из GitHub (очень важно для новостей) +- [] Реализация плагина библиотеки для Grav +- [] Реализация плагина кроспостинга в VK +- [] Реализация поиска по сайту + +# Темы для последующих статей +- Настройка плагина Markdown-writer для работы с Pelican +- Структура каталогов и файлов репозитория для работы с Pelican +- Переделка темы hexo-3 под Pelican https://yelog.org/ +- Полнотекстовый поиск по сайту https://dev.to/albogdano/implementing-full-text-search-for-your-static-site-4ool +- Перевод https://atamby1.github.io/start-blogging-with-github-pages-and-pelican.html + +Заголовок сайта - "Малая ИТ Практика" + +# Для чего нужен блог +Блог нужен для позиционирования себя как специалиста в сфере управления ИТ. + +# О чем будет блог? +Про Linux Геенджик, Марксизм, Здоровый образ жизни, восписание детей, семейные отношения, Игры, разработку. + + +# Разделы сайта: +- Документы. В котором будут различные проекты документов, описывающие все сферы + сайта +- Проекты. Всё что я хотел по конкретным направлениям делать. Добавить в таксономию. + +- Новости. Тут размещать буду неоригинальные материалы + +- Блог. Мои материалы. Расширять по таксономии, а не по папкам. Тут и личные данные и по проектам и по работе и все-все-все. + +- Обо мне. Контакты и всяческие грамоты и призы. + +# Проекты +Для каждого проекта будет выделена отдельная страница. То есть проект будет не набором постов с каким-то тегом и категорией, а отдельной статьей без хронологически размещенных сообщений. Для проекта же мне важны набор действий и результат. Осталось решить каким образом мне хранить мультимедиа материалы привязанные к проекту. Попробую для каждого проекта создать отдельный каталог, и прописать пути в настройках Pelican-аю Потому что движок я могу сменить, а разбирать потом мультимедиа файлы из общей кучи как-то не очень хочется. В этом плане мне больше нравится принятая в Grav система где статья - это отдельная папка со всеми картинками и прочими объектами.