Отакої! Минуло багато часу з моменту останньої публікації на цьому сайті. Мабудь надто багато. Якось не до блогів і не до змін на сайті.
Але, якось зайшов випадково сюди з мобільного і жахнувся від кількості реклами під постами. І згадав що Disqus, система коментарів яку я використовував, в безкоштовних планах почала показувати рекламу під коментарями.
Не можу сказати що існуючі коментарі мають особливу цінність, бо більшість інформації вже застаріла. Але, все ж, вони мають цінність для мене, як історія мого блогу. Відверто кажучи, з великою ностальгією перелистав деякі з них. Ніби з минулого життя. За 18 років так багато змінилося... Проте, це окрема тема.
Безліч реклами, простирадло реклами. А це не те, що мені хотілося б бачити у своєму блозі.
Так як блог працює на статичних даних то встановлювати спеціальну систему коментарів не було сенсу. Я вирішив спробувати Giscus для зберігання коментарів.
➕ Плюси Giscus:
- Безкоштовна система, без реклами.
- Легко інтегрується з сайтом.
- Знайшов скрипт для міграції коментарів з Disqus до Giscus.
- Використовує безкоштовні репозиторії GitHub.
🙁 Мінуси:
- Потрібно мати обліковий запис на GitHub щоб коментувати.
- Використовує безкоштовні репозиторії GitHub. :) Стороння залежність.
Міграція коментарів
На щастя в самому Disqus є можливість експортувати коментарі, у форматі XML. Цей файл можна завантажити з налаштувань Disqus.
Файл треба трохи відредагувати. Я знайшов багато дублікатів коментарів, бо деякі статті зберігалися в Disqus з різними URL, в тому числі в інших мовах. Мабуть якийсь такий внутрішній алгоритм роботи Disqus. Проте, їх було досить просто відслідкувати і позначити, щоб при імпорті їх не враховувало (я змінив URL сайту таких коментарів щоб виглядало що це не відносяться до мого).
Для міграції коментарів з Disqus на Giscus я скористався системою disqus-to-github-discussions.
Працює досить просто. Треба лише створити новий відкритий репозиторій на GitHub, куди будуть імпортуватися коментарі, та увімкнути там функцію Discussions. До речі, там само можна зберігати і увесь сайт (можливо пізніше).
Згенерувати персональний токен доступу до GitHub з правами на читання та запис в репозиторій. Або, створити Github App, що ніби то, мало б врятувати від обмежень з частити запитами, але я не помінтив різниці – блокувало і так і так. :)
Вудредагувати параметри у файлі .env. Працює система імпорту на Node.js, тому треба встановити Node.js та npm.
Потім, запустити команду npm start і почекати поки скрипт імпортує коментарі.
Система імпорту вміє робити паузи між запитами до GitHub, щоб не перевищувати ліміт запитів, та повторювати їх за потреби. Але, все одно, я отримував помилки з перевищенням ліміту запитів. Можна перезапускати виконання, бо ведеться журнал виконання, і скрипт пропустить вже імпортовані коментарі.
Я був змушений трохи змінити скрипт, бо через хитрі повторювальні URL в Disqus отримував дублі обговорень. Я заборонив імпортувати статті у яких є 0 коментарів і отримав список правильних адрес в яких є коментарі. Запропоную зміни автору системи, можливо він їх прийме.
Кожна стаття на сайті перетвориться в обговорення Github Discussions, а коментарі до статті стануть коментарями до обговорення.
P.S.
Якщо видалити GitHub App, якою додавалися коментарі, то вони зникнуть. Тепер я це знаю :) Додаю знову, через персональний токен.