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を使えば簡単のようだ。

ーー
(関連記事)
Hexo→Octopress変換スクリプト「Hexo to Octopress Converter」

表示   このエントリーをはてなブックマークに追加

Comments

2014年11月25日