LoginSignup
1
1

More than 5 years have passed since last update.

esa.ioの記事をまとめてScrapbox形式に変換

Last updated at Posted at 2019-02-20

前置き

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

フォルダの中にファイル変換用シェルスクリプトを書いて置いておく

henkan.sh
#!/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行目に追加するスクリプトを入れておく

namae.sh
#!/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とかで頑張る。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1