Octopress→Hexo移行のプラグイン「hexo-migrator-octopress」を試してみた
OctopressとHexoでは記事ソースのファイルの形式やFront Matter(---
で区切られた、title、dateなどの部分)が微妙に異なる。
OctopressのcategoriesはHexoではtagsに相当したり。
Octopressの記事ソースをHexoに取り込む「hexo-migrator-octopress」というHexo用プラグインがあったので、試してみた。
(Hexoの記事ソースをOctopress用に変換するスクリプト「Hexo to Octopress Converter」とは逆向き。)
デスクトップ上にhexo-test(Hexoフォルダ)とoctopress-test(Octopressフォルダ)を作った。
hexo-testで端末を開き、プラグインをインストール。
$ npm install hexo-migrator-octopress
コマンドhexo migrate octopress <source>
で記事ソースが変換され、Hexoに取り込まれる。(<source>
はOctopressフォルダへのパス)
今回のテスト環境では
$ hexo migrate octopress ~/Desktop/octopress-test
octopress-test/source/_posts/2014-10-25-cosmos.markdownがhexo-test/source/_posts/cosmos.mdとして取り込まれた。
(Hexoのデフォルト設定に従い、日付けが削除さるようだ。)
Front MatterはOctopressの
---
layout: post
title: "畑一面のコスモスはなぜ?"
date: 2014-10-25 15:41:22 +0900
comments: true
categories:
- 未分類
- 写真
---
から
---
layout: post
title: "畑一面のコスモスはなぜ?"
date: 2014-10-25 15:41:22 +0900
comments: true
tags:
- 未分類
- 写真
---
に変換されたが、変更はcategories:
がtags:
になっただけのようだ。
この状態でもHexoで使えるのだが、これを「Hexo to Octopress Converter」でOctopress用に再変換すると
---
layout: post
comments: true
---
layout: post
title: "畑一面のコスモスはなぜ?"
date: 2014-10-25 15:41:22 +0900
comments: true
tags:
- 未分類
- 写真
---
となってしまい、tags:
がcategories:
に変換されない。
上部の---
を削除しておくとcategories:
に変換はされたが、タイトルの部分がtitle: ""畑一面のコスモスはなぜ?""
と「”」が重複しまい、rake generateでエラーになる。
結局、Octopress用に再変換する場合には、「hexo-migrator-octopress」でHexo用に変換したものを手作業で
title: 畑一面のコスモスはなぜ?
date: 2014-10-25 15:41:22 +0900
tags:
- 未分類
- 写真
---
のように変更しておく必要がありそうだ。
それにOctopressでcategoriesとtagsを両方使っていた場合は変換後tags:
が重複してしまう。
それから、Hexoの新規記事ソースはデフォルトでは日付けがつかないが、_config.ymlのnew_post_name:
で日付けをつけることが出来る。
日付けがあった方が同じタイトルの記事を複数書けたり、過去記事編集の際に探し易かったりと、なにかと都合が良い。
Octopressの方のファイル拡張子が.markdownではなく.mdなら「Hexo to Octopress Converter」で変換しても日付けが削除されないので、前もって.mdに変えておいた方が良いかもしれない。
拡張子が.mdでもtags:
はcategories:
に変換される。
拡張子の一括変換は/_postsディレクトリで
$ rename 's/.markdown/.md/' *.markdown
とするか、ファイルマネージャーThunarを使えば簡単のようだ。