Dlaczego i jak przeprowadzić migrację z Wordpressa do Hexo
Agencja internetowa » Wiadomości cyfrowe » Dlaczego i jak przeprowadzić migrację z WordPress do Hexo

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…!

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?

★ ★ ★ ★ ★