Jogger → Wordpress. Poradnik emigranta
Obecnie inkryminowany serwis posiada już możliwość eksportu wpisów, przez co poniższa instrukcja trochę się zdezaktualizowała. Być może jednak komuś się jeszcze przyda.
Jak wiadomo, od wersji 2 serwis blogowy Jogger nie jest już wolnym oprogramowaniem. Przez to jego użytkownicy są zdani na łaskę lub niełaskę (zwykle niełaskę) administratora i jedynego dewelopera systemu - Sparrowa. Nie jest to sytuacja ani komfortowa, ani bezpieczna, ani efektywna. W poniższym poradniku opisuję, jak można przenieść całą (no, prawie) bazę danych Joggera na Wordpressa. Zakładam korzystanie z jednego z systemów uniksowych. W popularnym systemie operacyjnym też zapewne da się to zrobić, ale nie tak łatwo.
Przede wszystkim potrzebny jest tobie serwer, na którym postawisz swój nowy blog. Możesz wykupić własny hosting lub skorzystać z darmowego serwisu, jak Wordpress.com. Jeśli zdecydowałeś się na pierwsze rozwiązanie, zainstaluj Wordpressa, a następnie pobierz plik obsługi formatu WXR1. Rozpakuj go i wgraj plik wordpress.php do folderu wp-admin/import/.
Teraz zajmiemy się eksportem twojego joggera do pliku WXR. Ponieważ Sparrow nie udostępnił prawie żadnej możliwości eksportu bazy danych, będziemy musieli zrobić to sami. Dobrze jest przeprowadzić eksport w godzinach o niskim natężeniu odwiedzin, jako że w czasie jego trwania niemożliwe będzie czytanie strony z komentarzami.
Upewnij się, że w zakładce „Ogólne” panelu konfiguracyjnego format daty jest ustawiony na Y-m-d, a czasu na H:i:s. Dopilnuj także, żeby rodzaj archiwum był ustawiony na „Podział na ilość wpisów” (być może nie jest to konieczne, ale tak będzie łatwiej). Przejdź do edycji szablonu komentarzy. Zapisz jego kopię w bezpiecznym miejscu, a następnie podmień go na szablon wstępnego eksportu Joggera do WXR.
Możemy przejść do właściwej części kopiowania bazy danych. Otwórz terminal. Utwórz dowolny folder, w którym będą przechowywane pliki danych, np. joggerbackup, i wejdź do niego.
mkdir joggerbackup cd joggerbackup
Aby nie przeciążać serwera, pobierzemy joggera z dwusekundowymi odstępami między każdą podstroną.
wget -w 2 -r -nd adres_twojego_bloga
Możesz przywrócić stary szablon komentarzy i wcześniejsze ustawienia panelu konfiguracyjnego.
Mamy teraz wiele plików, z których potrzebne nam są tylko strony komentarzy. Otwórz menedżera plików i ustaw sortowanie według daty modyfikacji. Zorientuj się, jaki jest najwcześniejszy plik o nazwie postaci index.html.[jakaś_liczba], którego zawartością jest strona komentarzy, i skasuj wszystkie wcześniejsze od niego, a następnie wszystkie, których nazwa zaczyna się od liczby (będą utworzone najpóźniej). Przejdź z powrotem do terminala.
Połączymy wszystkie dane w jeden plik.
cat * > jogger.xml
Teraz nastąpi najprzyjemniejsza część całości, czyli dostrajanie otrzymanego pliku do formatu WXR za pomocą seda.
sed -i s/"<podpis><a href=\"\(.*\)\">\(.*\)<\/a><\/podpis>"/"<wp:comment_author>\2<\/wp:comment_author>\n\t\t<wp:comment_author_url>\1<\/wp:comment_author_url>"/ jogger.xml sed -i s/"<podpis>\(.*\)<\/podpis>"/"<wp:comment_author>\1<\/wp:comment_author>"/ jogger.xml
Przejdź do panelu administracyjnego Wordpressa i w zakładce „Import” wybierz opcję „Wordpress”. Zaimportuj plik jogger.xml z folderu joggerbackup.
To już wszystko. Daj znać, że działa.
7. listopad 2008
17:11
No to zaczęły się schody. WordPress importuje tylko ostatni wpis z mojego XML-a, już po poprawieniu encji (urwane średniki), a resztę chce zapisać jako załącznik…
6. listopad 2008
16:56
Kod w sedzie i szablon: poprawione.
6. listopad 2008
16:51
Działa doskonale, chociaż nie trzymałem się dokładnie opisu :) .
* W szablonie występuje dwa razy wp:post_date, z czego jedno jest błędne, bo wypełnione datą i godziną.
* Zamiast patrzeć na daty plików, prościej użyć grepa:
grep -i html\ xmlns ./*
grep -i \?xml ./*
Otrzymamy listę plików w niewygodnej formie. Wolałem nie grzebać, więc w gedicie zaznaczałem wszystko od dwukropka po koniec (Shift + End, Delete), a następnie zamieniłem „\n./” na spację i wykonałem rm z otrzymanym tekstem jako parametr.
* Zamiast uruchamiać sed -i s/”"/”"/, uruchomiłem sed -i s^”"^”"^, bo się pluł, a manual dopuszcza dowolny znak.
W każdym razie, uratowałeś mi tyłek.
Dziękuję :) .
6. listopad 2008
2:42
Wygląda na to, że Wordpress nieco przerabiał kod w sedzie, który miał wyświetlić (wycinał niektóre antyukośniki). Mam nadzieję, że teraz będzie działać.
4. listopad 2008
21:45
A mogę dać znać, że sed się pluje, a po próbie zamiany s/”"/”"/ na format „s###” nie zamienia nic?
29. wrzesień 2006
7:45
Dzięki wielkie. Zastanowię sie nad emigracją. Wordpress nigdy chyba nie będzie miał jednej rzeczy. Mianowicie polskiej społeczności i błyskawicznego powiadamiania o nowych wpisach na Jabbera. Testu w tej chwili usłuchę JabRSS, ale to jest dosyć wolne i są dodawane śmieci:/
24. wrzesień 2006
17:31
Dane o kategoriach - tak. Dane o tagach - nie, ale to zapewne można łatwo dodać. Problem w tym, że Wordpress domyślnie nie obsługuje tagów i trzeba by je wyeksportować jako pola użytkownika (które działają na zasadzie klucz - wartość). Żeby jednak później zrobić z nich użytek, trzeba by doinstalować do Wordpressa jakąś wtyczkę obsługującą tagi i przy eksporcie z Joggera sformatować dane tak, żeby mogły być przez nią obsłużone. Dla konkretnej wtyczki nie powinno to być trudne.
24. wrzesień 2006
15:17
Witam, chciałem się dowiedzieć czy ten konwerter pozwoli na zachowanie wszystkich danych. To jest czy będę miał zachowane dane o kategoriach i tagach. Proszę o info.
20. wrzesień 2006
20:50
przepraszam… to raczej ja nie zrozumiałem dokładnie treści… miałem zamiar się przenieść, muszę tylko dorwać dostęp do jakiegoś linuxa :P
20. wrzesień 2006
20:39
Nie rozumiem. Przecież o tym właśnie jest ten wpis. O przenoszeniu wpisów i komentarzy z Joggera na Wordpressa.