前置き
esa.ioからScrapboxにできるだけ楽にデータ移行するため、いろいろ試してみました。
とはいっても1記事1ファイルの.txtに変換するところまでです。
Scrapboxのインポート機能はJSON形式のファイルが入れられるけど、そこまで頑張る気力がありませんでした。誰か助けて。
流れ
esaの管理画面から記事をzipファイルでエクスポートできる
https://hoge.esa.io/team/admin
解凍してフォルダに入る。中はディレクトリで区切られて、記事がmdファイルになっている
$ cd 2019-00-00-hogehoge
MarkdownのファイルをScrapbox形式に変換
MarkdownをScrapboxに変換してくれるパッケージ、md2sbをインストールする
https://github.com/pastak/scrapbox-converter/tree/master/packages/md2sb
$ npm i -g md2sb
フォルダの中にファイル変換用シェルスクリプトを書いて置いておく
# !/bin/sh
echo $1;
newname="${1}.txt";
cat "${1}" | md2sb > $newname;
実行できるようにする
$ chmod 744 ./henkan.sh
mdファイルをまとめて変換用スクリプトに流し込むワンライナーを実行する
$ find . -type f -name "*.md" -print0 | xargs -0 -L 1 ./henkan.sh
ファイル名を1行目に入れる
Scrapboxは1行目がタイトルになるので、ファイルの1行目にタイトルを入れておく必要がある。
Macの場合、sedがGNU版じゃないと使いにくいのでgnu-sedをインストール
$ brew install gnu-sed
sed
の代わりにgsed
でつかえる。
フォルダの中にファイル名をファイルの1行目に追加するスクリプトを入れておく
# !/bin/sh
echo $1;
title=`basename $1 | gsed "s/\.md\.txt//"`;
gsed -i "1s/^/${title}\n/" ${1};
# Macじゃない人はgsedじゃなくsedでいいはず
実行できるようにする
$ chmod 744 ./namae.sh
同じ要領で流し込むワンライナーを実行する
find . -type f -name "*.md.txt" -print0 | xargs -0 -L 1 ./namae.sh
後処理
テキストファイルを開いてちまちまScrapboxの新規ページに貼り付けます。
#
で始まる行が[****** hoge]
みたいになってしまうなど若干直したいところが出てくるので、そこはgrepとかで頑張る。