Prečo a ako migrovať z WordPress na Hexo
Asi 2 roky som písal svoju spätnú väzbu na starý dobrý WordPress. WordPress je univerzálny nástroj, ktorý pozná a používa každý, ľahko sa inštaluje a umožňuje s nízkou investíciou vytvárať témy, rozšírenia...
Áno, ale dnes som sa rozhodol opustiť WordPress:
- Používam WordPress na vytváranie statického obsahu, a preto nemám skutočný záujem zakaždým dynamicky generovať stránku.
- WordPress je pomalý a napriek mojej investícii nič nepomáha, 1 sekunda na to, aby som vždy vytiahol rovnaký obsah, je príliš veľa.
- Som vývojár PHP a PHP je „šablónovací“ jazyk, ale nemôžem vidieť zmesi šablón a obchodného kódu...
- ... Preto som si nikdy nenašiel čas na prispôsobenie témy. Používal som oficiálnu tému WordPress, ktorá bola načítaná, nezaberala celú šírku obrazovky a naformátovala väčšinu mojej práce do stĺpca s veľkosťou približne 350 pixelov…!
úvod
Áno, ale aké sú nevýhody?
Všeobecnejšie, statické generátory ako Hexo alebo Jekyll generujú obsah... statický, a preto neponechávajú priestor pre obsah vyžadujúci spracovanie, ako sú komentáre. Tento problém ma trápil dlho a nakoniec som sa rozhodol pre Disqus. Predtým, ako som sa rozhodol, som si projekty trochu naštudoval a tu je to, čo som si odniesol.
- Disqus (alebo akékoľvek iné SaaS) decentralizuje váš obsah. Komentáre nie sú vaším vlastníctvom. Existuje dovozca a vývozca. Napriek tomu žiadna údržba doma.
- Riešenia ako Isso alebo Discours vám umožňujú mať podobný systém doma, ale zahŕňa to zálohovanie obsahu (problém, ktorý sme už mali s WordPress), ale aj na zabezpečenie správneho fungovania vášho SMTP (už známy problém)…
- Deportovanie komentárov vám tiež umožňuje hostiť váš blog napríklad na GitHub.
ISSO
Isso je skvelá alternatíva, ktorá vyzerá veľmi podobne ako Disqus, no chýba mu pár detailov.
- Žiadny back-end na správu komentárov.
- V mojich testoch som sa dočítal, že komentáre môžete moderovať prostredníctvom odkazu dostupného v e-maile alebo v denníkoch. Tieto odkazy som nikdy nevidel, takže som mal urobiť nejaké databázové dotazy.
Okrem toho bol Isso ideálnym produktom. Nepochybujem o tom, že sa bude ďalej rozrastať a že čoskoro napíšem článok o migrácii z Disqus na tento.
rozhovor
Diskurz bol druhou alternatívou, ale v skutočnosti som to netestoval. Tento ponúka platenú verziu a tieto technické predpoklady ma rýchlo zarazili.
Prečo Hexo a nie Jekyll
Odpoveď je jednoduchá. Jekyll je rubín zatiaľ čo Hex je JavaScript (Node.js). Páči sa mi syntax JS, a preto to bolo pre nich jednoduchšie prispôsobiť, rozumieť, …
Ako to funguje?
1
2
3
4
|
$ # Nainštalujte Hexo
$ npm install -g hexo-cli
$ # Vytvorte si blog
$ hexo init my-blog && cd môj blog
|
Tu to máte, váš projekt je pripravený. Môžete ho verzovať.
Ako generovať obsah
1
|
$ hex vygenerovať
|
Ako zobraziť obsah napísaný v Markdown bez regenerácie celého obsahu
1
|
$ hexoserver
|
Pomocou tohto jednoduchého príkazu získate prístup k serveru Node.js ktorý vám ho vykreslí v reálnom čase. Adresa je zvyčajne http://localhost:4000.
Ako migrovať moje príspevky z WordPress
Hex implementovala mnoho nástrojov na migráciu vášho obsahu. Pre WordPress je to veľmi jednoduché.
1
2
3
|
$ npm nainštalovať hexo-migrator-wordpress --uložiť
$ # Prejdite do svojej backoffice WordPress a [exportujte obsah svojho blogu](https://en.support.wordpress.com/export/).
$ hexo migrovať wordpress /cesta/k/exportovanému_súboru.xml
|
Na migráciu obsahu nepotrebujete nič viac. Obtiažnosť spočíva v migrácii príslušenstvo (ako obrázky). V súbore zdroj/_príspevky musíte vytvoriť priečinok s rovnakým názvom ako súbor s článkom.
Príklad k článku nakresli-ma-ovcu.md musíte vytvoriť priečinok nakresli mi ovečku.
Do týchto priečinkov skopírujete obrázky z vášho WordPress. Potom sa budete musieť vrátiť k svojim článkom a zmeniť zdroj. V mojom prípade načítané obrázky zostali na pôvodnom zdroji.
Príklady:
1
2
3
4
5
6
7
|
# Predtým

# ALEBO
<img src=„https://my-blog/wp-content/my-image.png“ />
# Po

|
Prečo zadať názov priečinka v ceste k môjmu obrázku?
Týmto spôsobom by ste mohli úplne načítať obrázok.
1
|

|
To sa rýchlo stáva problémom. Na stránke článku sa obrázok načíta dobre, pretože je relatívny k aktuálnej stránke, ale na vašej homepage, obrázok sa načíta vzhľadom na domovskú stránku a potom sa zobrazí a 404 Not Found.
Konfigurácia
Ak chcete skopírovať obrázky, musíte túto konfiguráciu vložiť do svojho _config.yml.
1
2
|
#_config.yml
post_asset_folder: pravdivý
|
Ako nastaviť presmerovania
Hlavným problémom po migrácii obsahu je nestratiť prirodzené odkazy. Je to o vojnové šľachy a problém som obišiel celkom ľahko.
Články
Spočiatku majú články pre URL :rok/:mesiac/:deň/:názov. Vo WordPresse je zvyčajne iba názov. Vložte do svojho _config.yml túto hodnotu.
1
2
|
#_config.yml
trvalý odkaz: :title/
|
Kategórie
S kategóriami je to trochu rovnaký príbeh. Tentoraz je cesta takmer rovnaká. Vo WordPress je to tak Kategórie/ a v hexo Kategórie/ (predvolene). Tu je návod, ako to zmeniť.
1
2
|
#_config.yml
category_dir: kategórie
|
Tagy
S tagmi je to vždy ten istý príbeh. Vo WordPress je to tak deň/ a v hexo značky/ (predvolene). Tu je návod, ako to zmeniť.
1
2
|
#_config.yml
tag_dir: štítok
|
archívy
Toto je najtechnickejšia časť a zároveň najjednoduchšia. Vo WordPresse sa archívy nachádzajú v rok/mesiac/ a v hexo je to tak archívy/rok/mesiac/. V mojom prípade som nechcel meniť cesta v hexo a chcel som zachovať tento nový spôsob robenia vecí.
Tu je presmerovanie Nginx vytvoriť.
1
2
3
4
5
6
7
|
server {
...
Poloha / {
rewrite ^/(d{4})/(01|02|03|04|05|06|07|08|09|10|11|12)/ /archives/$1/$2/ permanent;
}
}
|
Tento regulárny výraz nie je ani zďaleka najdokonalejší, ale bude impozantný.
Ostatné
O príloh musíte urobiť malé presmerovanie, ale v každom prípade bude strata SEO menej škodlivá.
Tu je postup, ako vykonať presmerovanie pomocou Nginx.
1
2
3
4
5
6
7
|
server {
...
Poloha / {
prepísať ^/nakresli-me-ovečku/môj-obrázok/$ /nakresli-me-ovečku/môj-obrázok.png natrvalo;
}
}
|
Čo ak Google uvidí presmerovanie 404?
Žiadny strach, s týmto stavom v Nginx, žiaden problém. Všetky presmerujeme 404 vers la homepage.
1
2
3
4
5
6
7
8
9
|
server {
...
error_page 404 @fallback;
umiestnenie @fallback {
prepísať ^/ / trvalé;
}
}
|
Migrovať komentáre
Cez Disqus, tu je odkaz, ktorý vám umožní jednoducho importovať vaše komentáre WordPress.
Sitemap
Existuje projekt na jednoduché generovanie mapy webu pomocou Hexo. Stručne povedané, tu je postup.
1
|
$ npm nainštalovať hexa-generátor-sitemap --uložiť
|
1
2
3
|
#_config.yml
mapa stránok:
cesta: sitemap.xml
|
záver
S malou investíciou môžete ľahko migrovať svoj obsah. Malý prechod na kontrolu, či boli články správne migrované a či sú zabalené. V mojom prípade mám iba 23 pravidiel presmerovania pre celý môj web. Jednoduché?