Dlaczego i jak przeprowadzić migrację z WordPress do Hexo
Przez około 2 lata pisałem swoją opinię na temat starego, dobrego WordPressa. WordPress to uniwersalne narzędzie, znane i używane przez wszystkich, łatwe w instalacji i pozwalające przy niewielkiej inwestycji tworzyć motywy, rozszerzenia...
Tak, ale dzisiaj właśnie dlatego zdecydowałem się opuścić WordPress:
- Używam WordPressa do tworzenia treści statycznych i dlatego nie interesuje mnie dynamiczne generowanie strony za każdym razem.
- WordPress jest powolny i pomimo mojej inwestycji nic nie pomaga, 1 sekunda na wydobycie zawsze tej samej treści to za dużo.
- Jestem programistą PHP, a PHP jest językiem „szablonowym”, ale nie mogę znieść widoku mieszanki szablonów i kodu biznesowego…
- … Dlatego nigdy nie poświęciłem czasu na dostosowanie mojego motywu. Korzystałem z oficjalnego motywu WordPress, który został załadowany, nie zajmował całej szerokości ekranu i sformatowałem większość mojej pracy do kolumny o wielkości około 350 pikseli…!
streszczenie
Wprowadzenie
Tak, ale jakie są wady?
Mówiąc bardziej ogólnie, generatory statyczne, takie jak Hexo czy Jekyll, generują treści… statyczne i dlatego nie pozostawiają miejsca na treści wymagające przetworzenia, takie jak komentarze. Ten problem męczył mnie przez długi czas i ostatecznie zdecydowałem się na Disqus. Przed podjęciem decyzji trochę przestudiowałem projekty i oto, czego się dowiedziałem.
- Disqus (lub jakikolwiek inny SaaS) zdecentralizuje Twoje treści. Komentarze nie są Twoją własnością. Jest importer i eksporter. Mimo to bez konserwacji w domu.
- Rozwiązania typu Isso czy Discours pozwalają mieć podobny system w domu, ale z tym się wiąże kopia zapasowa treści (problem, który mieliśmy już z WordPressem), ale także upewnienie się, że Twój SMTP działa poprawnie (już znany problem)…
- Deportowanie komentarzy pozwala również na przykład hostować swojego bloga na GitHub.
To
Isso to świetna alternatywa, która wygląda bardzo podobnie do Disqus, ale brakuje jej kilku szczegółów.
- Brak zaplecza do administrowania komentarzami.
- W moich testach przeczytałem, że można moderować komentarze za pomocą linku dostępnego w wiadomości e-mail lub w logach. Nigdy nie widziałem tych linków, więc powinienem był wykonać kilka zapytań do bazy danych.
Poza tym Isso był produktem idealnym. Nie mam wątpliwości, że będzie się dalej rozwijał i że wkrótce napiszę artykuł o migracji z Disqus do tego.
Rozprawiać
Dyskurs był drugą alternatywą, ale tak naprawdę jej nie testowałem. Ten oferuje płatną wersję i te techniczne wymagania szybko mnie powstrzymały.
Dlaczego Hexo a nie Jekyll
Odpowiedź jest prosta. Jekyll jest w Rubin podczas Klątwa jest w JAVASCRIPT (node.js). Podoba mi się składnia JS i dlatego było to łatwiejsze dla dostosować, rozumieć, …
Jak to działa?
1
2
3
4
|
$ # Zainstaluj Hexo
$ npm install -g hexo-cli
$ # Utwórz bloga
$ hexo init mój-blog && cd mój blog
|
Proszę bardzo, Twój projekt jest gotowy. Możesz go wersjonować.
Jak wygenerować treść
1
|
generowanie hekso $
|
Jak zobaczyć treść napisaną w Markdown bez ponownego generowania całej treści
1
|
$ heksoserwer
|
Za pomocą tego prostego polecenia możesz uzyskać dostęp do serwera node.js który renderuje go w czasie rzeczywistym. Adres jest zwykle http://localhost:4000.
Jak przenieść moje posty z WordPress
Klątwa wdrożyła wiele narzędzi do migracji treści. W przypadku WordPressa jest to bardzo proste.
1
2
3
|
$ npm install hexo-migrator-wordpress --save
$ # Przejdź do zaplecza WordPress i [wyeksportuj zawartość swojego bloga](https://en.support.wordpress.com/export/).
$ hexo migracja wordpress /ścieżka/do/file_exported.xml
|
Do migracji treści nie potrzebujesz niczego więcej. Trudność polega na migracji załączniki (jak na zdjęciach). W pliku źródło/_posty musisz utworzyć folder o takiej samej nazwie jak plik artykułu.
Przykład dla artykułu narysuj-mnie-owcę.md musisz utworzyć folder narysuj mi owcę.
W tych folderach skopiujesz obrazy ze swojego WordPressa. Będziesz wtedy musiał wrócić do swoich artykułów i zmienić źródło. W moim przypadku załadowane obrazy pozostały na pierwotnym źródle.
Przykłady:
1
2
3
4
5
6
7
|
# Zanim
![Moje zdjęcie](https://mon-blog/wp-content/mon-image.png)
# LUB
<img src=„https://mój-blog/wp-content/my-image.png” />
# Po
![Moje zdjęcie](/narysuj-mnie-owcę/mój-obraz.png)
|
Po co podawać nazwę folderu w ścieżce mojego obrazu?
Możesz absolutnie załadować obraz w ten sposób.
1
|
![Moje zdjęcie](mój-obraz.png)
|
To szybko staje się problemem. Na stronie artykułu obraz zostanie załadowany poprawnie, ponieważ jest względny względem bieżącej strony, ale na Twojej strona główna, obraz zostanie załadowany względem strony głównej, a następnie zobaczysz a 404 Not Found.
Konfiguracja
Aby skopiować obrazy, będziesz musiał umieścić tę konfigurację w swoim _config.yml.
1
2
|
#_config.yml
folder_post_zasobów: prawdziwy
|
Jak skonfigurować przekierowania
Głównym problemem po migracji treści jest zachowanie naturalnych odniesień. To jest o ścięgna wojny i dość łatwo poradziłem sobie z problemem.
Artykuły
Początkowo artykuły mają dla URL :rok/:miesiąc/:dzień/:tytuł. W WordPress zazwyczaj jest tylko tytuł. Włóż swoje _config.yml tę wartość.
1
2
|
#_config.yml
bezpośredni link: :tytuł/
|
Kategorie
Z kategoriami to trochę ta sama historia. Tym razem trasa jest prawie taka sama. W WordPressie tak jest kategoria / i w hekso kategorie/ (domyślnie). Oto jak to zmienić.
1
2
|
#_config.yml
kategoria_katalog: kategoria
|
Tagi
Z tagami to zawsze ta sama historia. W WordPressie tak jest etykietka/ i w hekso tagi / (domyślnie). Oto jak to zmienić.
1
2
|
#_config.yml
katalog_tagu: etykieta
|
archiwa
To najbardziej techniczna i zarazem najprostsza część. W WordPressie archiwa znajdują się w rok/miesiąc/ i w hekso jest archiwa/rok/miesiąc/. W moim przypadku nie chciałem zmieniać ścieżka w hexo i chciałem zachować ten nowy sposób robienia rzeczy.
Oto przekierowanie nginx do ustalenia.
1
2
3
4
5
6
7
|
serwer {
...
Lokalizacja / {
rewrite ^/(d{4})/(01|02|03|04|05|06|07|08|09|10|11|12)/ /archives/$1/$2/ permanent;
}
}
|
To wyrażenie regularne jest dalekie od najdoskonalszego, ale będzie potężny.
inny
O załączniki musisz zrobić małe przekierowanie, ale w każdym razie utrata SEO będzie mniej szkodliwa.
Oto jak wykonać przekierowanie za pomocą Nginx.
1
2
3
4
5
6
7
|
serwer {
...
Lokalizacja / {
przepisz ^/narysuj-mnie-owcę/moje-zdjęcie/$ /narysuj-mnie-owcę/moje-zdjęcie.png na stałe;
}
}
|
Co jeśli Google zobaczy przekierowanie 404?
Bez obaw, z tym warunkiem nginx, Nie ma problemu. Przekierowujemy wszystkie 404 Vers la strona główna.
1
2
3
4
5
6
7
8
9
|
serwer {
...
strona_błędu 404 @powrót;
lokalizacja @powrót {
przepisać ^/ / na stałe;
}
}
|
Przenieś komentarze
Przez Disqus, oto link, który pozwoli Ci łatwo zaimportować komentarze WordPress.
Mapa strony
Istnieje projekt do łatwego generowania mapy witryny za pomocą Hexo. W skrócie, oto jak.
1
|
$ npm install hexo-generator-sitemap --save
|
1
2
3
|
#_config.yml
mapa witryny:
ścieżka: sitemap.xml
|
Wnioski
Przy niewielkiej inwestycji możesz łatwo przenieść swoje treści. Mała przepustka, aby sprawdzić, czy artykuły zostały poprawnie przeniesione i czy są spakowane. W moim przypadku mam tylko 23 reguły przekierowań dla całej mojej witryny. Łatwy?