در نوشته قبلی از این گفتم که چطور شد که موقع راه‌انداختن این وبلاگ، در «ویرگول» ننوشتم. حالا می‌خوام از انتخاب سیستم مدیریت محتوا و مهاجرت بهش بگم.

معیارها

وقتی قرار شد که از یک نرم‌افزار برای نوشتن «وبلاگِ حامد» استفاده کنم، دنبال یک چیز ساده می‌گشتم که مثل وردپرس، از امکانات باد نکرده باشه (bloated‌ نباشه) و ساده‌ترین چیزی که پیدا کردم Miniblog از Mads Kristensen‌ بود. این پروژه اون‌قدر ساده است که حتی دیتابیس نداره و همه چیز رو با performance خوب توی فایل xml‌ نگه می‌داره. در عین سادگی، ویژگی‌های اصلی و حتی امکانی مثل اتصال به Windows Live Writer رو هم داره. اما به دلایلی لازم بود اطلاعات رو روی دیتابیس داشته باشم. اولش خواستم کد Miniblog‌ رو برای استفاده از دیتابیس تغییر بدم. با توجه به اینکه دو تا interface اصلی یکی برای کاربرها و یکی هم برای امکانات وبلاگ داشت، ساده می‌شد با پیاده‌سازی جدیدی از این interface‌ها نسخه‌ای از Miniblog‌ که با دیتابیس کار می‌کنه رو ساخت ولی خب مشغله باعث شد فرصت نکنم.

بعد گشتم دنبال راه‌های دیگه و به Ghost CMS‌ رسیدم. همون چیزی که می‌خواستم: ساده با امکانات کافی. این سیستم مدیریت محتوا، جستجو یا کامنت رو به صورت پیش‌فرض نداره و خب می‌تونید از طریق قابلیت‌هایی که داره با سرویس‌های دیگر یکپارچه‌اش کنین. جالبه بدونین پروژه Ghost از Kickstarter‌ شروع شده

از سرویس خوب فندق برای هاست استفاده کردم و خیلی راحت Ghost‌ رو از داکرهاب نصب کردم.

انتقال نوشته‌های قبلی و تغییرات قالب

بعد نوبت رسید به انتقال نوشته‌های قبلی. من قبلاً از Hugo که یک سایت‌ساز استاتیکه برای وبلاگ استفاده می‌کردم. کدی رو پیدا کردم که نوشته‌‌های markdown‌ رو از Hugo‌ به قالب json قابل وارد شدن به Ghost تبدیل می‌کرد ولی درست و خوب کار نمی‌کرد. این بود که دست به کار شدم و یک پروژه کوچک برای انتقال محتوا نوشتم

Hameds/HugoToGhost
Convert Hugo (static site generator) markdown files to Ghost (headless CMS) post format - Hameds/HugoToGhost

یک سری تغییرات هم روی قالب پیش‌فرض Ghost‌ یعنی casper دادم اما از قابلیت ترجمه استفاده نکردم (خودشون هم ترجمه رو قرار ندادن اما بخشی از قابلیت‌های سیستم قالب Ghost هست) و مستقیم ترجمه‌ها رو توی کدهای قالب نوشتم که به عنوان hamed-casper‌ گذاشتمش روی گیت‌هاب. بقیه راست به چپ و فونت و کلاً css سفارشی هم از طریق قابلیت Code Injection که توی Ghost وجود داره انجام شده