当方のブログを WordPress から Octopress に移行して間もないですが、WordPress に投稿してきた記事・画像を Octopress に移行した際の記録を残しておきます。
0. 前提条件
- WordPress は 3.4.1 を使用。(特にバージョンの違いは問題にならないと思われる)
- Octopress は 2.0.0 を使用。(特にバージョンの違いは問題にならないと思われる)
- 書式変換には Ruby 1.9.3-p327 を使用。
- 画像データも移行する。
- コメントは移行しない。(Disqus への移行が煩雑?)
1. WordPress から投稿データエクスポート
WordPress 管理画面の「ツール」-「エクスポート」で、全ての「投稿」データのみを XML エクスポートする。
ファイル名は wordpress.xml
とした。
2. 画像データコピー
WordPress の wp-content/uploads/
ディレクトリ配下にあるデータを丸ごと Octopress の source/images/
配下へコピーする。
3. 書式変換スクリプト作成
jekyll スタイル、Markdown 記法に変換する Ruby スクリプトを作成する
HTML はそのまま残しておいても大丈夫だが、可能な限り Markdown 記法に則るようにした。
また、元々当方の WordPress のブログでは、パーマリンクを http://www.mk-mode.com/wordpress/YYYY/MM/DDhhmmss
としていたので、作成するファイルは YYYY-MM-DD-DDhhmmss
とした。
(Octopress 的には、記事タイトルを指定するのがよいのでしょうが、Web サーバで旧 URL へのアクセスをリライトさせるので)
以下のスクリプト内の「個別変換」は、当方の環境(プラグインの関係)で個別に対応が必要な部分です。主変換の前に行なっておいたほうがよい変換のみ主変換前に、その他は主変換後に行なっています。(予め記事の内容をチェックし、必要と思われる箇所を正規表現等を使用して一括変換しています)
個別変換部分は非掲載ですが、実際には Syntax Highlighter 部分の jekyll 変換やエスケープ文字の変換、等々の処理を行なっています。
当然、完全には対応しきれません。非対応部分については次項参照。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
|
GitHub にもアップしている。( komasaru/WpXml2Md )
以下も参考にした。
- https://github.com/mojombo/jekyll/blob/master/lib/jekyll/migrators/wordpressdotcom.rb
- https://gist.github.com/374148#file_wp_xml_import.rb
4. 変換スクリプトについての注意
li
タグで入れ子になっている部分は非対応。(入れ子部分のli
かどうかの判別が困難。li
タグは変換しない方がよかったかも?)table
タグを Markdown 記法に非対応。(元の HTML をそのまま使用する形)
【2013.01.01 追記】(Markdown 記法への変換も可能だがalign
属性が W3C Validation(HTML5) で Invalid になってしまうので)- 画像については、WordPress 側でサムネイルが実画像にリンクする形式にしていたので非対応。(元の HTML をそのまま使用する形)
- WordPress の記事に対して投稿されたコメントについては、Disqus に取り込むのが面倒なので非対応。(元々、そんなにコメントも無かったし)
- 記事内に埋め込んでいた、Amazon や楽天の広告は、当然そのまま。(元の HTML をそのまま使用する形)
5. 変換実行
用意した XML ファイル wordpress.xml
を Ruby スクリプトと同じディレクトリに置いて実行する。
_posts
ディレクトリが作成され、そのディレクトリ内に記事分のファイルが作成されるので、それらを正規の場所(デフォルトなら octopress/_posts
)に移動し、rake generate
後 rake preview
で確認してみる 。
問題なければ、 rake deploy
で公開する。
1 2 3 4 5 6 7 |
|
出来上がった Markdown ファイルを確認した結果、(実際にはかなり細かく変換したので)かなり見やすくなりました。
あとは、公開後に不自然さに気付いたらその都度修正しようと考えています。
以上。