Migrate Kobito data to Quiver.
KobitoのデータをQuiverに移行するためのサポートツールです。
# Ruby 2.4 or higher
$ ruby -v
$ bundle install
このツールを使って何らかの損害が発生しても、作者は責任を負いません。
Qiita::Team用のKobitoデータの移行はこのツールの動作対象外です。(作者がQiita::Teamを利用していないため)
$ cp ~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/Kobito.db ./db
以下のコマンドを実行するとoutputディレクトリに記事がMarkdownファイルとしてエクスポートされる。
$ bundle exec rake export
なお、記事にtempというタグが付いていると出力をスキップするようにしている。
def output_files(items)
init_dir
items.each do |pk, item|
puts "#{pk} / #{item.title}"
# 出力をスキップ
next if item.temp?
path = File.join(OUTPUT_DIR, "#{pk}.md")
File.write(path, item.body)
end
endまた、KobitoからQiitaに送信した記事はファイルの冒頭にQiitaへのリンクを付与している。
Quiverを起動 > File > Import > Markdown で、上で出力したMarkdownをインポートする。
この時点ではタイトルは数字で、タグはインポートされない。
上でインポートしたNotebookを確認する。(以下の例で言うと、"FAEFB235"で始まる作成日時が一番若いqvnotebookディレクトリがそれ)
$ ls -lt ~/Library/Containers/com.happenapps.Quiver/Data/Library/Application\ Support/Quiver/Quiver.qvlibrary/ | grep .qvnotebook
drwxr-xr-x@ 787 jit staff 25184 Dec 30 20:31 FAEFB235-9A6F-4771-AF03-6685EEC2212E.qvnotebook
drwxr-xr-x@ 3 jit staff 96 Dec 30 18:57 Trash.qvnotebook
drwxr-xr-x@ 787 jit staff 25184 Dec 30 18:55 B6A3F526-F4F6-4D18-9D76-F7D122BD1C1E.qvnotebook
drwxr-xr-x@ 3 jit staff 96 Dec 30 06:03 Inbox.qvnotebook
drwxr-xr-x@ 15 jit staff 480 Dec 30 05:59 Tutorial.qvnotebook
qvnotebookディレクトリにコピーする。
$ cp -r ~/Library/Containers/com.happenapps.Quiver/Data/Library/Application\ Support/Quiver/Quiver.qvlibrary/(対象のqvnotebook).qvnotebook ./qvnotebook
以下のコマンドを実行すると、各記事のタイトルとタグが更新される。
$ bundle exec rake update_qvnotebook
なお、Qiitaに投稿したことのある記事はqiita-publishedのタグも付与されます。
def update_meta_json(dir)
update_json(dir, 'meta.json') do |json_data, item|
json_data['title'] = item.title
json_data['created_at'] = item.created_at.to_i
json_data['updated_at'] = item.updated_at.to_i
json_data['tags'] = item.tags
# Qiitaに投稿されていれば"qiita-published"のタグも付ける
if item.qiita_published?
json_data['tags'] << 'qiita-published'
end
end
end念のためQuiverを終了させる。
続いて、先ほどのqvnotebookディレクトリを元に戻す。
$ cp -rf ./qvnotebook/(対象のqvnotebook).qvnotebook ~/Library/Containers/com.happenapps.Quiver/Data/Library/Application\ Support/Quiver/Quiver.qvlibrary/
Quiverを起動し、インポートした記事のタイトルやタグが更新されていることを確認する。(以下のスクリーンショットではインポート時に作成されたNotebook名をKobitoに変えています)
MIT License.