مهاجرت از وردپرس به گوست
چند وقتیه وبلاگمو از وردپرس به Ghost منتقل کردم. با خودم گفتم شاید تجربه من از این مهاجرت، مفید و کاربردی باشه.
چرا از وردپرس مهاجرت کردم؟
وردپرس برای یک وبلاگ ساده و سبک، بیش از حد امکانات داره و وابستگیش به پلاگینها باعث کند شدن وبسایت و همینطور افزایش آسیبپذیری میشه. برای همین دنبال یک سیستم مدیریت محتوای بیکله (Headless CMS) بودم که نوشتههای فارسی رو بدون مشکل راست چین کنه و ساده و سبک باشه. و در نهایت با سیستم مدیریت محتوای گوست آشنا شدم.
چه کارایی انجام دادم؟
اول از همه از سرویس خوب فندق برای میزبانی وبسایتم استفاده کردم؛ امکان نصب گوست روی سرویسهای اشتراکی نیست و حداقل به 512 مگابایت رم برای کارآیی قابل قبول نیاز داره. با استفاده از سرویس فندق خیلی راحت میشه از داکرهاب Ghost یا هر سرویس دیگهای که نیاز دارید رو میزبانی کنید و به دامنه موردنظرتون متصل کنید.
تصمیم گرفتم از قالب پیشفرض Ghost به نام Casper استفاده کنم. گوست قابلیت ترجمه قالبها به زبانهای مختلف رو میده، اما من این کارو انجام ندادم و ترجمههارو مستقیم توی کدهای قالب نوشتم.
نکته بعدی که باید بدونید اینه که گوست به صورت پیشفرض قابلیت ثبت نظرات رو نداره اما میشه از سرویسهایی مثل Disqus یا GraphComment برای این کار استفاده کرد. من توی وبلاگم از GraphComment به دلیل پشتیبانی بهتر از زبان فارسی استفاده کردم. نکته دیگهای که برام مهم بود، وجود یک Syntax Highlighter برای نمایش بلاکهای کدی بود که در مطالب گذاشته میشه. من از Prism برای انجام این کار استفاده کردم که تقریباً از تمام زبانهای برنامه نویسی و اسکریپت نویسی پشتیبانی میکنه. فقط کافیه از وبسایتش زبانهای موردنظرتون رو انتخاب کنید و فایل JS و CSS که بهتون ارائه میکنه توی فایلهای قالب قرار بدید و فراخوانی کنید.
برای انتقال محتوا از وردپرس به گوست از پلاگین Ghost استفاده کردم و فایل خروجی که بهم داد از صفحه مدیریت گوست از قسمت Labs ایمپورت کردم. اما از اونجایی که گوست مثل وردپرس چیزی به اسم Category یا دسته بندی مطالب نداره و به جاش فقط از Tag یا برچسب استفاده میکنه، مجبور شدم به صورت دستی برچسبهای تازه تعریف کنم و به مطالبی که ایمپورت کردم اختصاص بدم. البته در صورت نیاز میتونید با استفاده از پلاگین Taxonomy Converter دسته بندیهای مطالب رو توی وردپرس به برچسب تبدیل کنید و بعد انتقال بدید.
بقیه تنظیمات وبلاگ مثل جمله راست چین کردن مطالب یا تغییرات ظاهری از طریق قابلیت Code Injection که در قسمت تنظیمات صفحه مدیریت Ghost قرار داره انجام دادم. برای راست چین کردن قالب Casper میتونید قطعه کد زیر رو از قسمت Code Injection توی بخش Site Header قرار بدید:
<style>
body {
text-align: right;
direction: rtl;
}
/* Header nav */
.home-template .gh-head-menu {
margin-left: 0;
margin-right: -2.5vmin;
}
.gh-head-menu .nav li {
margin: 0 0 0 2.5vmin;
}
/* Header social icons */
.gh-social {
margin: 0 0 0 1.5vmin;
}
.gh-social a + a {
margin-right: .8rem;
}
/* Post-card list */
.post-card-byline-content {
margin: 0 8px 0 0;
}
/* Post */
.article-byline-content .author-list {
padding: 0 0 0 12px
}
/* Call to action */
.footer-cta-button {
padding: 5px 15px 5px 5px;
}
/* Footer */
.site-footer-nav a {
margin-right: 10px;
}
.site-footer-nav li:not(:first-child) a::before {
margin: 0 0 0 10px;
}
</style>
حرف آخر
نکتهای که فراموش کردم بهش اشاره کنم، بکاپ گیری بود. قبل از اینکه شروع کنید به انتقال چیزی که حتی یک درصد روی درست کار کردنش توی محیط یا پلتفرم جدید شک دارید، حتماً بکاپ گیری کنید و مطمئن بشید که بکاپتون درست کار میکنه. شخصاً قبل از اینکه وبسایتمو روی گوست منتشر کنم و دامنه رو بهش متصل کنم، روی سیستم شخصی خودم با استفاده از داکر، بکاپ سایت رو آزمایش کردم و اصلاحاتی که لازم بود انجام دادم و در نهایت خیلی راحت و بدون دغدغه بلاگ جدیدمو منتشر کردم.