Как стать автором
Обновить

Сайт с поддержкой markdown на GitHub-Pages платформе

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.8K

Хочу рассказать о своём новом (хотя существует уже почти 3 года) сайте egaxegax.github.io, после закрытия предыдущего сайта egaxegax.appspot.com на хостинге Google App Engine в начале 2021 года. О нём я писал в статье Cайт на Django-nonrel на платформе Google App Engine для Python. Эта статья рассчитана на тех, кто хочет узнать или получить простой сайт с возможностью добавления и правки контента на основе создания markdown-постов.

Сайт egaxegax.appspot.com просуществовал 10 лет на хостинге GAE. Но был закрыт вместе с бесплатным доступом к GAE после изменений политики Google. В начале 2020 года Google прислал уведомление на почту, что к концу года мне нужно выбрать один из платных планов хостинга (от 300$ в месяц), а бесплатный доступ будет закрыт. И я стал готовиться к переезду с GAE, забэкапив содержимое сайта.

У меня уже был проект dbcartajs на github и сайт к нему на платформе Github Pages. И я решил перенести всё содержимое старого сайта в репозиторий Github, открыв к нему доступ через хостинг Github Pages. Для этого текстовый бекап базы данных с содержимым старого сайта я разбил на маленькие .txt файлы c html-содержимым для каждой строчки из таблицы, то есть для каждого поста. Python-код моделей и вью старого сайта, написанного для фрейм-ворка Django-nonrel я переписал на языках JavaScript и HTML, упростив код и отказавшись от онлайн-редактирования содержимого сайта через веб-формы. Позже я перевёл .txt-файлы в markdown-формат .md для отображения страниц на сайте также как в репозитории GitHub, но отказался от использования шаблонов Jekyll, создав в корне проекта файл .nojekyll, посколь-ку компиляция им .md файлов для сборки сайта на Github Pages (после git push в master) идет очень долго с моим количеством файлов. Github автоматически конвертит .md файлы и отображает как html на страницах репозитория. В большинстве репозиториев есть хотя бы один README.md файл, у меня в проекте .md файлов оказалось больше 30,000.

В новой схеме для управления содержимым я использую индексные файлы index.js в формате массивов JavaScript, содержащие список всех .md файлов постов по каждому разделу сайта. Для переиндексации раздела после добавления-удаления новых .md файлов с контентом используется python-скрипт update.py, лежащий в корневой папке. Кроме того, внутри папок разделов есть дополнительные скрипты для парсинга разных файлов в .md формат: в разделе books лежит скрипт books2.py для парсинга скачанных epub-файлов электронных книг в список .md и .jpg файлов по жанрам и авторам; в разделе posts есть скрипт readcsv.py для парсинга .csv файлов плейлистов youtube в список .md постов.

Сайт разделен на разделы: books (Книги), foto (Фото), posts (Заметки), songs (Аккорды), vesti (Записки) и dbcartajs (Карты, как символьная ссылка на папку проекта). Разделы являются подкаталогами после клонирования проекта из репозитория github на диск.

Особенности сайта:

  • бесконечный скроллинг постов;

  • встроенный поиск по индексу;

  • встроенный парсер на javascript markdown постов

Подробная инструкция о том, как пользоваться, есть в README-файле описания проекта

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 14: ↑2 и ↓12-9
Комментарии11

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн