Przenoszenie bloga z Wordpressa do Hugo

Dlaczego warto przenieść blog a z Wordpressa do Hugo, statycznego generatora stron internetowych? Szybsza strona, mocniej zintegrowana z eRowym kodem, a do tego darmowy hosting na Githubie. A jak to zrobić? W internecie znajduje się trochę tutoriali na ten temat, ale jak to zwykle bywa diabeł tkwi w szczegółach.

Z pokaźnej liczby tutoriali dotyczących przenoszenia blogów z Wordpressa do Hugo z czystym sumienieniem mogę polecić ten. Niestety jest w nim kilka rzeczy, które mi się nie podobają i które rozwiązałem inaczej. Te brakujące informacje przedstawiam poniżej.

1. Przekształcenie pliku XML w md

Posty z Wordpressa eksportowane są w formacie XML. Jest on przyjazny dla maszyny, ale niekoniecznie dla człowieka :) Korzystając z Hugo korzystamy plików w formacie markdown. Potrzebujemy zatem narzędzia, ktore dokonamy nam tego ,,tłumaczenia”. Zamiast wspomnianego w tutorialu programu blog2md polecam użycie narzędzia stworzonego przez jednego z guru eRowych Yihui Xie. Dzięki temu dostajemy lepszej jakości meta-informacje takie jak kategorie czy daty. Później należy skorzystać z przygotowanego przez niego skryptu.

2. Wybór motywu

Zdecydowałem się na motyw Mainroad. Dokonałem w nim kilku zmian - najważniejsze to większe miniaturki, wyjustowany tekst, i, uwaga to istotne, wsparcie dla języka polskiego. Zmienioną wersję można znależć na moim Githubie.

3. Naprawienie odnośników do obrazków

Media z Wordpressa można wyeksportować przy użyciu specjalnej wtyczki. Niestety w treściach postów nadal będą odnośnki do miejsca, gdzie znajdowały się one wcześniej.

W tym celu do skryptu, o którym wspominam w punkcie pierwszym dodaję kilka linii kodu. Link bezwzględny zamieniam na względny. Ponieważ Wordpress automatycznie zmieniał wymiary niektórych obrazow, to muszę uciąć także końcówkę nazwy pliku typu 1024x768.

blogdown:::process_file(f, function(x) {
  x = gsub("http://szychtawdanych.pl/wp-content/uploads/(.*)-\\d{2,}x\\d{2,}(.*)", "/old_wp/\\1\\2", x)
  x = gsub("http://szychtawdanych.pl/wp-content/uploads/(.*)", "/old_wp/\\1", x)
})

4. Przekierowanie strony z home.pl na Githuba

Ponieważ do tej pory korzystałem z hostingu na home.pl to musiałem przepiąć domenę szychtawdanych.pl z tamtejszego serwera na Github Pages. Tutaj wielkich niespodzianek nie ma. Trzeba korzystać z dokumentacji Githubowej. Warto pamiętać o tym, żeby oprócz dodania do DNS-ów rekordów A związanych z adresami IP Githuba, należy usunąć wpis A kierujący na home.pl

5. Migracja komentarzy

Komentarze są miarą popularności bloga. Dlatego ważne jest, aby wyeksportować z Wordpressa tak samo jak wpisy. Eksport można też zrobić w Disqusie, z którego korzystałem zamiast wbudowanego systemu Wordpressowego. Niestety w trakcie migracji zmieniają się ścieżki i tak np. http://szychtawdanych.pl/?p=1132 staje się http://szychtawdanych.pl/post/zelazna-kurtyna-26-lat-pozniej-o-roznicach-w-oczekiwanej-dlugosci-zycia/. Disqus wymaga dostarczenia słownika, który powie, do których wpisów przypisać które komentarze.

Napisałem krótki kod w R, który w tym pomaga.


I tyle. Jeśli macie jakieś swoje doświadczenia związane z migracją do Hugo to zachęcam do podzielenia się nimi w komentarzach.