среда, 14 декабря 2022 г.

Перевод древнего блога на статику

Всякими разными сайтами я занимался давно уже. Блог на личном домене и движке вордпресс был у меня с 2008 года. Также было много разных экспериментов с платными и бесплатными доменами и сайтами, наиболее интересная идея была с сайтом городского портала - социальная сеть для города, как в то время было очень модно. Она единственная за все это время дожила до наших дней. Впрочем, можно сказать, что она уже давно мертва (да и вообще тот "блог" был всегда относительно мертвый, лишь поначалу народ немного что-то писал там), но сайт все еще доступен в инете, т.к. продлеваю каждый год хостинг и домен. Смысла в этом совсем немного - это только лишние траты. Посему захотелось мне перенести этот сайт на какую-либо бесплатную платформу, а его похоронить с почестями. Но проблема в том, что бесплатные хостинги на php это еще то днище, да и закрываются постоянно, как хероку, например. Потому решил перенести я его на гитхаб, для которого используют статические html странички. Вот поэтому и буду конвертировать блог в статику. Да не просто так, а прям конкретно через задницу)

Первым делом через хостинговый phpMyAdmin для MySQL экспортировал базы данных в sql формат. Проблема была в том, что посты, юзеры и даты постов - это были 3 разные таблицы, и их бы по-хорошему объединить с определенной структурой, оставив только самое нужное, но что-то я не догадался сделать это через тот же phpMyAdmin и экспортировать потом готовую таблицу в нужном формате. Делал я это через sqlite, но зато потренировался еще раз с ним. Sqlite - это очень классная БД, чтобы ее создать не нужно устанавливать тяжелые дистрибутивы как например для MS SQL или MySQL (он меньше , но тоже 431.7 мегабайт на офф сайте дистрибутив только). Для sqlite качается SQLiteStudio, например, которая весит 70 метров в развернутом виде и вообще ее можно скачать портабл версию даже. В этой студии импортировал все таблицы, причем сильно намучился, т.к. формат sql экспортный от mysql не совсем подошел, потому там даже все это дело через csv формат делал, раза с 15 в итоге получилось.

теперь требовалось объединить таблицы в удобную одну, а я еще и не знал как это делается. Мне помогло видео с ютуба и поэтому для себя, в качестве шпаргалки, я вставлю сюда скрины из видео и пример моего запроса:


SELECT  topic_id as id,
    user_login as author,
    topic_title as title,
    topic_text as text,
    topic_date_add as date,
    topic_type,
    topic_tags
FROM topic
JOIN content on topic.topic_id = content.topic_id
JOIN users on topic.user_id = users.user_id

Короче общую таблицу постов за все время с юзерами, датами и прочим, с помощью этого запроса я получил. Через студию экспортировал итоговую таблицу в csv формат, ну и дальше дело за малым. 

На основе CSV нужно сделать массив постов, и потом инфу из массива подставлять туда куда надо - то есть в общий список постов и в отдельные страницы с заголовками по названию поста, и контентом внутри, построенный по общему шаблону.

Все это лучше смотреть в коде, который я закинул, конечно же, на гитхаб: https://github.com/boolkin/html/tree/master/StaticFromCSV

А проверить можно тут https://boolkin.github.io/html/StaticFromCSV/

Работы на самом деле предстоит еще куча, поскольку сам шаблон - это тупо белая страничка с заголовком и абзацами с контентом, при этом мне сильно повезло, что контент в базе хранился в виде html кода, и потому его можно тупо вставлять на страницу и не париться. Разве что пришлось заменять пути до картинок, по той причине что если я собираюсь хоронить сайт, то картинки с того домена перестанут работать, и нужно подтягивать из другого места. Кстати чтобы не засирать память гитхаба (хотя ее там дофига, но не уверен что за хранение 130 метров картинок погладят по голове, все-таки это больше для кода) закинул в облако на майл.ру и оттуда через расшаренную папку похоже можно довольно просто подтягивать то что мне нужно, потому что имена файлов как-бы и не меняются, но надо проверять. 

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

Комментариев нет:

Отправить комментарий