自分の書いた文章が急に消えたり、いつの間にか意図していない形で表示されるようになったりすることが怖くなってきた。そこで、各サービスに投稿していたテキストデータを徐々に引っ越してきて、GitHubで管理していくことにした。これまでこういう状態だった。技術記事2017年〜2019年Patreon技術記事2018年〜2019年Qiita技術記事2014年〜2016年Twitterつぶやき2011年〜2019年これからはこういう状態にしようとしている。2009年〜2019年Twitterつぶやき2011年〜2019年テキストデータはfrontmatter付きのMarkdownとして記述することにした。人間が書いて機械が読む、というところでバランスが取れるギリギリの妥協点だと思う。プレーンテキストとして読めるようなMarkdownを心掛けたい。データの保存と整形と公開はGitHubにやってもらう。何かの間違いで全てが消えてしまうかもしれないから、たまにバックアップを取って、どこか遠いところに保存しておく。見る側のための行動ではなくて、書く側のための行動である。移行にあたって、失われる情報もあるだろうし、これまで各サービスを通して自分の文章を見てくれていた人達に対しては、不便を感じさせてしまうと思う。そこについては本当に申し訳ない。以下は泥臭い引越し作業の話。Qiitaは記事のエクスポートに対応していないけど、increments/qiita-rbを使うと、Qiitaの記事をJSON形式で簡単にエクスポートできる。これぐらいならCLIでも簡単。items.json記事の削除もCLIで出来るけど、jqとかでごにょごにょやるのはちょっと面倒なので、Ruby向けのAPIを使う。```いいねが数百件以上付いた記事の削除は、体感50%ぐらいの確率でタイムアウトするので、無限にリトライさせて対応した。markdown」でググった。medium-2-mdでMarkdownに変換できて最高。アカウントを仮削除状態にできるボタンもあるので移行が捗る。はてなブログはMovableType形式でエクスポートされるので、文字列操作で適当にゴニョゴニョやってMarkdown化する。Patreonも今のところ良いエクスポート方法が無さそうなので、Nokogiriでぎこぎこやる予定。エクスポートしてきた記事にはそれぞれ、frontmatter部分にエクスポート元のサービス名を記述してある。現状はまだ不要なマークアップが含まれてしまっているので、将来この部分を綺麗にするためにサービス名の情報を使う。全部終わったら、今度は記事に含まれる画像のURLを探索して、適切なサービスに移し替えたい。