Scrapboxから1300個のメモをNotionに引っ越してみた/ScrapboxToNotion

9321a57bcb62d9d6fca07b5c5ca6f6d0?s=47 Shunsuke Ohba
September 01, 2020

 Scrapboxから1300個のメモをNotionに引っ越してみた/ScrapboxToNotion

ずっと使い続けてたメモアプリScrapboxから最近流行りのNotionに1300個のメモをPythonを使って移行した話です。
※エンジニアLTで発表した内容です。

# Twitterやってます
Unity・UI/UX・ゲーム開発についてつぶやいています
https://twitter.com/ohbashunsuke

9321a57bcb62d9d6fca07b5c5ca6f6d0?s=128

Shunsuke Ohba

September 01, 2020
Tweet

Transcript

  1. Scrapboxから1300個の
 メモをNotionに
 引っ越してみた
 エンジニアランチLT
 2020.09.01 大庭俊介


  2. 自己紹介
 大庭俊介
 デザイナー > Flash > Unityと遷移
 ▪主な業務
 - 現在はUnityでスマホゲームの開発


    - デザイナー・企画・エンジニア間の調整やワークフロー整備、UXの実装
 10年以上プロダクトのUX部分に関わる仕事をしています
 新規開発ゲームの立ち上げに関わることが多いです

  3. ScrapboxからNotionへ移行したい
 - 僕は1年以上Scrapboxを使ってきた
 - 最近無料版のサービス拡張によりNotionが流行っているので波に乗りたい


  4. Scrapboxとは
 タグ、ページリンクで繋がる並列メモアプリ
 タグやリンクが関連ページとして 
 リストアップする


  5. 個人使用におけるScrapboxの所感
 【良いと思うところ】
 - 端末間共有
 - Youtube埋め込みサポート
 - 画像はデフォルトGyazoへアップロード (実質容量無制限)
 -

    高速検索
 - 編集履歴保持
 - 全ページ一括JSON書き出し
 【イマイチポイント】
 - Scrapbox独特な文法
 - 書き出したJSONにもそのまま 
 - 埋め込みコンテンツが少ない
 - リンクしたページが多くなると見づら い、というか見ない
 - UIがイマイチ
 

  6. 今まで使ってきたメモアプリ
 - Mac純正のメモアプリ・・・・結構使ったが僕がAndroidユーザーになり終了
 - Trello・・・・メモが増えていくと見づらい・重くなりやめる
 - Evernote・・・最初は良かったがアプリ重いのでやめる
 - GoogleKeep・・・結構使った
 -

    DayOne(iOS有料アプリ)・・・UIイイが僕がAndroidユーザーになり終了
 - Scrapbox
 ※その他、自作アプリを作ったりもした

  7. メモアプリに求めること
 - 軽快な動作
 - プラットフォームを越えた端末共有
 - バックアップ用のダウンロードサポート
 - MarkDownを使いたい(特殊文法は引っ越ししづらいので)
 -

    階層構造
 - 埋め込みコンテンツが豊富(Twitter、Youtube、SlideShareなど)
 - API提供
 UIがイケてると尚良い

  8. そこでNotion
 - 軽快な動作
 - プラットフォームを越えた端末共有可 => Webなので
 - バックアップ用のダウンロードサポート =>

    形式も豊富
 - MarkDown
 - 階層構造が簡単に作れる
 - 埋め込みコンテンツが豊富
 - 非公開だがAPI提供
 - UIがイケてる
 - エクセルのようなデータベースを作れる
 求めてたものが
 Notionにあった!!

  9. さあScrapboxから
 Notionへ引っ越しだ!!


  10. 問題発生!!その1


  11. "lines": [ "ScrapboxのデータをNotionにインポートしたい! _2020/08/25", "[**** 経緯]", "Notionを使ってみたいが、 Scrapboxに貯めた知見を捨てたくない。 ", "そして私は情報はできるだけ一元管理したい派です。

    ", "", "[*** そうだ!変換ツールを作ろう! ]", "Scrapbox記法が特殊でそのままでは、 Notionに持っていっても残念なことになります。 ", "Gyazoにアップされた画像は、埋め込み画像として Notionに持っていきたいですし、 Webページリンクもリンクとして動いてもらいたいで す。", " リスト", " ヘッドライン", " コードブロック", " [Webページのリンク https://twitter.com/ohbashunsuke]", "この辺りは動いてもらいたいところ。 ", "", "[** GyazoURL対応]", "[https://gyazo.com/d341a202e4a4e41483329c354520d909]", "", 
 書き出したテキストは特殊文法のまま

  12. 特殊文法採用に依る引っ越しの弊害
 特殊文法をMarkdownに置き換えるスクリプト作る必要がある
 [*** hoge] => ## hoge(ヘッドラインへ)
 code:X => ```(コードブロックへ置き換え)


    [http://X piyo] => [piyo](http://X) (ハイパーリンクへ) 
 [http://gyazo.com/bar] => ![](http://gyazo.com/bar) (画像リンクへ)
 行頭スペース => - (リストへ)

  13. Pythonと正規表現で何とかした!


  14. 結果 : それっぽくエクスポート出来た


  15. 問題発生!!その2


  16. Scrapboxユーザーにとって
 内部の相互リンクは大事だったという盲点
 ※Scrapbox好きの同僚にヒアリングしました 


  17. 非公式APIの存在を知る
 なんとか出来そうだ!
 次のようなフロー図で実装してみた


  18. 非公式API バックアップ JSONをパース 1メモずつMarkDown保存 僕の場合は1300ファイル インポート 全メモ情報取得 (URL付き) 非公式API メモを上書き

    内部リンク用CSV保存 内部リンク作成
  19. OSSで公開できる日が来るかも知れない


  20. 今回学んだこと
 - 少しでも楽したい、やってみたい事があるが、専門分野外・やったことのない技術 だったとしてもチャレンジすると得るものが大きい
 - 今回Pythonを初めてまともに書いたけど、ググれば情報出てくるし、なんとかなる。
 - 今後Python使ってツール開発もできそうなのでプライベートが業務に生きてくるだろ う
 -

    VSCode最高(プラグイン豊富)
 
 とりあえず手を動かして作ってみる大事

  21. 最近の僕のNotion活用例


  22. CEDEC2020一覧ページを見やすくする
 スクレイピングしてCEDEC一覧を見やすくリストにしてみた
 公開版のページを用意しています。ページ単位で公開できるのもNotionの良いところ です。


  23. 聴講した時のメモはそのまま子階層にページを作成
 ソースはアップしているので、スクレイピングやってみたい人は参考にどうぞ 定番のBeautifulSoupを使ってます https://github.com/baobao/CEDEC2020SessionToNotion

  24. 技術的な話はnoteに書きました
 https://note.com/ohbashunsuke/n/n97ef497a270c

  25. ありがとうございました
 
 Twitter@ohbashunsuke