はてなブログからNotion Blogへ移行する際に、過去の記事をどうしても持ってきたかったので、はてなブログのエクスポートデータ(Movable Type形式)からNotion用のインポートデータ(HTML)を作成するツールを作りました。
このエントリでは hatena2notion を使ってはてなブログの過去記事をNotionに移行する方法を説明します。
まず最初にNotion Blogの記事テーブル(以下、記事データベースと呼ぶ)に必要なカラムを追加します。
Notion Blogを開設していればBlog Indexの直下に記事データベースがあるはずです。もしまだNotion Blogを開設していない方は下記の記事を参考にしてください。
記事データベースに Tags
(Text) と Excerpt
(Text) のカラムを追加します。
Tags
はあとで Multi-select に変更しますが今は Text で良いです。Excerpt は抜粋で、はてなブログの「記事の概要」にあたります。
次にはてなブログの記事データをエクスポートしていきます。
はてなブログのエクスポート対象には下書き状態の記事も含まれてしまうので、先に不要な下書きは削除して整理しておきましょう。
整理が終わったらエクスポート機能を使って記事データをダウンロードします。エクスポートメニューは設定→詳細設定にあります。
hatena2notion を使ってダウンロードしたはてなブログのエクスポートデータを元に、Notion用のインポートデータを作成します。
ブログデータの移行で一番面倒なのが画像などのメディアファイルです。画像をはてなに置いたままで気にならないという人は良いのですが、どうせなら丸ごとNotionに移行した方がすっきりです。
hatena2notion は記事中の画像(img
タグの src
属性 ) をダウンロードしてNotionにアップロードします。ただし Notion にはまだ公式APIがなく、hatena2notionは非公式APIを使っています。使用はくれぐれも自己責任でお願いします。
hatena2notion の使い方はREADMEを読んでください。日本語です。
hatena2notion を使うと生成物の1つとして hatena2notion/csv/
以下に meta.csv
というCSVファイルが生成されます。このCSVファイルには記事ごとのタイトル、公開日時、URLパスといったメタ情報が載っています。
この meta.csv
をNotionにインポートし、あとで記事データベースにマージしていきます。
Name
以外の列を削除するhatena2notion/csv/meta.csv
をインポートするこれで記事データベースのフォーマットによく似たメタデータのテーブルができました。
メタデータに続き、次は記事データをNotionにインポートします。記事データは hatena2notion/html/
以下にHTMLファイルとして生成されています。
hatena2notion/html/
以下のHTMLファイルをすべて選択してインポートする/
が :
に置き換わっているので適宜修正する/
が使えないため(見た目は /
だが実体は :
)これで記事データのインポートができました。最後にメタデータをマージしたら完了です。
記事データベースは Page
列にタイトルが入っているだけで、他の列は空になっています。ここに先ほど作成したメタデータテーブルをマージして記事データベースを完成させます。
Slug
, Date
, Tags
, Excerpt
をコピーするTags
列を Text > Multi-select に変更するSlug
があれば直すDate
などでソートする場合はソースコードを修正するDate
降順でのソート例は下記のコミットを参考におつかれさまでした。これでデータ移行は完了です。
hatena2notion は完全なツールではないので、公開前にご自身で記事のチェックや手直しはしておいた方が良いでしょう。
以上です。このエントリでは hatena2notion を使ってはてなブログの過去記事をNotionに移行する方法を説明しました。