Calm Hill My Random Thoughts

Wordpress to Pelican

Wordpress ကနေ Pelican ကိုပြောင်းဖို့ ဆုံးဖြတ်ရတာက တကယ်ကတော့ Server မနိုင်တာကလည်း တခုဖြစ်သလို အလုပ်မအားလို့ Server Upgrade မှန်မှန် မလုပ်နိုင်တာလည်းပါတယ် Static ဖြစ်သွားရင် No Database & CGI ဆိုတော့ အတော်များများက လှည့်မကြည့်ဖြစ်လည်း သိပ်ကိစ္စမရှိတော့ဘူး။ Server အရွှေ့အပြောင်းဆိုလည်း HTML တွေပဲဆိုတော့ အကုန်လုံးဒီအတိုင်း ကူးသွားလိုက်ရုံဆိုတော့ အလုပ်ရှုပ်သက်သာ ခေါင်းခြောက်စရာ မလိုတော့ဘူး။

Pelican က သုံးရတာလွယ်ပါတယ် ဒါပေမယ့် End-user အတွက်လားမေးရင်တော့ မဟုတ်ဘူးလို့ပဲ ဖြေမှရလိမ့်မယ်။ အရင်ဆုံးအနေနဲ့ Pelican ကို Install လုပ်ရမယ် Install လုပ်ဖို့ကတော့ Pelican Documentation မှာပြထားပြီးသားပါ Getting started ကိုပြီးအောင်ဖတ်ရင် စပြီးတော့သုံးလို့ရတဲ့ အခြေအနေကိုရပါလိမ့်မယ်။ Pelican မှာတခုအဆင်ပြေတာက Deploy လုပ်ဖို့အတွက် Script တွေပါပြီးသားဖြစ်တော့ FTP ဖွင့်ပြီး Manual Upload လုပ်စရာတော့မလိုပါဘူး ကိုယ်ကတော့ Pelican နဲ့ RSync သုံးပြီးတော့ Deploy လုပ်လိုက်တယ်။

http://docs.getpelican.com/en/3.3.0/getting_started.html

Wordpress ကနေ Pelican ကိုမပြောင်းခင်မှာ တခုသတိထားရမှာက Pelican မှာ Multiple Category မရဘူးဆိုတာပဲ အဲဒါကြောင့် ကိုယ့်ရဲ့ Wordpress Blog မှာ Multiple Category သုံးထားရင်တော့ အရင်ဆုံးအနေနဲ့ Single Category အဖြစ်ပြောင်းပြီးမှ Pelican ကို ပြောင်းရပါလိမ့်မယ်။ Tags ဆိုတာကတော့ Multiple ဖြစ်တဲ့အတွက် ပြဿနာမရှိပါဘူး Pelican မှာလည်း အလုပ်လုပ်ပါလိမ့်မယ်။

Pelican မှာ data-import script ပါလာတယ် စမ်းကြည့်ပေမယ့် ကိုယ့်အတွက် အဆင်မပြေဘူး အဓိကပြဿနာက Data Size ကြောင့်ရယ် URL တွေမှာ Unicode Character တွေနဲ့ဖြစ်တာရယ် အရင်တုံး အပြောင်းအရွှေ့မှာ Post တွေတဝက်နဲ့ ပျက်နေတာတွေနဲ့ အစအဆုံးဘယ်တော့မပြီးဘူး အဲဒါနဲ့ Database ထဲကနေ တခါတည်းဖတ်ပြီးတော့ Markdown File တွေထုတ်လိုက်တယ်။ Markdown Format တော့ မပြောင်းပါဘူး Content ထဲက HTML တွေကို ဒီအတိုင်းပဲ ကူးထုတ်ပါတယ်။ သုံးချင်ရင်တော့ အောက်မှာပြထားတဲ့ Script ကိုသုံးလို့ရပါတယ်။

https://gist.github.com/yelinkyaw/10949463

Contents တွေကို ကူးထုတ်ပြီးသွားရင် နောက်ထပ်အရေးကြီးတာကPermalink တွေပါ Pelican မှာက Wordpress ရဲ့ Permalink Structure အတိုင်း ထုတ်လို့ရပေမယ့် မတူတာတခုက Static File တွေဖြစ်တဲ့အတွက် Post URL တွေဟာ html extension တွေ အဆုံးသတ်ပါတယ် အဲဒီတော့ Wordpress URL အဟောင်းတွေ အလုပ်လုပ်ဖို့အတွက်ရယ် Search Engine က Crawled လုပ်ပြီးသားတွေအတွက်ရယ် Redirect လုပ်ပေးဖို့လိုမယ်။ အဲဒါကတော့ ကိုယ်သုံးထားတဲ့ Web Server အပေါ်မူတည်တယ် Nginx ဆိုရင်တော့ အောက်မှပြထားသလို Redirect လုပ်ပေးဖို့ နည်းနည်းထည့်ရုံပါပဲ။

# Add HTML Extension
if (-f "${request_filename}.html") {
    rewrite ^/(.*)$ /$1.html permanent;
}

# Remove Trailing Slash
if (!-f "${request_filename}index.html") {
    rewrite ^/(.*)/$ /$1.html permanent;
}

Pelican မှာအဆင်ပြေတာက Comment အတွက် Disqus ကို Built-In Support လုပ်သလို Google Analytics အတွက်လည်း Configuration မှာ ထည့်ပေးရုံနဲ့ Tracking Code ကိုထည့်ပေးပါလိမ့်မယ်။ Social Media တွေကတော့ Core ထဲမှာမပါတော့ Theme နဲ့ပဲဆိုင်မယ် ကိုယ့်ဆီမှာကတော့ Facebook ပဲသုံးတာများတော့ အခုတော့ Facebook အတွက် Open Graph Meta Tags တွေနဲ့ Facebook Like လေးပဲ ပြန်ထည့်ထားတယ် အခုတော့ သုံးလို့ရသလောက် ဖြစ်နေပါပြီ တခုရှိတာက Comment က Disqus ဖြစ်နေတော့ Style Sheet ကိုယ်တိုင်ထည့်မရတော့ Comment တွေက Default Fonts နဲ့ပဲ မြင်ရတာတော့ အခက်အခဲရှိနိုင်ပါတယ်။