今晚試著照 Jekyll 網站教的方法把 wordpress.com 的資料轉過來,遇到了一些問題,主要是 yaml 無法正確處理 UTF-8 資料以及原始檔名有包含 % 時會有重複 escape 的問題。花了一點功夫試出了解決方式如下:
修改 wordpressdotcom.rb:
--- a/source/_import/wordpressdotcom.rb
+++ b/source/_import/wordpressdotcom.rb
@@ -3,6 +3,7 @@
require 'rubygems'
require 'hpricot'
require 'fileutils'
+require 'ya2yaml'
require 'yaml'
require 'time'
@@ -16,7 +17,7 @@ module Jekyll
(doc/:channel/:item).each do |item|
title = item.at(:title).inner_text.strip
- permalink_title = item.at('wp:post_name').inner_text
+ permalink_title = item.at('wp:post_name').inner_text.delete('%')
# Fallback to "prettified" title if post_name is empty (can happen)
if permalink_title == ""
permalink_title = title.downcase.split.join('-')
@@ -54,7 +55,7 @@ module Jekyll
FileUtils.mkdir_p "_#{type}s"
File.open("_#{type}s/#{name}", "w") do |f|
- f.puts header.to_yaml
+ f.puts header.ya2yaml
f.puts '---'
f.puts item.at('content:encoded').inner_text
end
--
1.7.5.4
所以舊的文章都轉過來啦,但是排版不是太正確,而且也用了一些 wordpress 特有的 tag 還沒換,必須要寫個簡單的 script 來把它轉回來,可能改天有空再弄吧…