yoshiakist

続:いつ、どこで書くのか

いつ、どこで書くのかで書いていたように、これまで InkDrop を執筆用アプリとして使っていた。けれどもWebエンジニアの端くれとして、もう少し汎用性が高い執筆環境にしていこうと思い立った。

先日、good bye Newt, hello microCMS!というエントリでヘッドレスCMSを Newt から microCMS に乗り換えたことを記事にしたが、そういう意味でタイミングもちょうどいい。ここで更にモダンかつどんなプラットフォームでも動作し得る、そしてどんなアプリが生まれて消えても影響を受けにくい、そんなしなやかな構成にアップデートしてみる。

Obsidian

Obsidian を使うと何が嬉しいのか。
まず、Obsidian の最大の特徴は「マークダウンエディタ」であるということ。これまで記事や小説の原稿を全てマークダウンとして書いてきた私にとってぴったりだった。
文章のセマンティクス決定を、マウスを使わずにキーボードだけで手軽に完結できるのがやはり嬉しい。
マークダウンファイルを編集するのだから、Cursor など別のエディタでも開ける。Cursor であればAIの支援も得られる…… といっても自分の日記なので一切AIには書かせないのだが。ただ、知識をまとめたいノートアプリとして使う際にはかなり強力だろう。

それに、無料だ。VSCode などの各種エディタも無料のものが多いが、Obsidian もフリーで使える。最近、商用利用も無償化されたらしい。
InkDrop は月10ドルでデバイス間の同期機能も利用できるもので、どちらかというと執筆以外のことを考えたくない非エンジニア向けのサービスという感触を持った。
使い始めて「おや」と思った機能はグラフビュー。記事と記事とのつながりが可視化されており、脳が刺激される感覚がある。記事同士が点と線でつながれているのをみると、「あ、この記事の続きを書こう」とか、「これとこれをつなげてこんな話題でも書けそうだ」といった感じで頭がざわめきだす。
そして、実践したことはないが、このグラフビューは Zettelkasten のようなメモ管理手法とも相性がいいのだとか。
知識と知識、文書と文書が繋がって大きな意味を持ち始めるのを眺めるのが、きっと快感に変わってくるのではないか。そんなことを期待している。

あと、ブログ記事にとって必要な description や投稿日、タグなどのメタ情報も Ctrl + ; で素早く入力できる点も気に入っている。そして、このメタ情報もマークダウンファイルのコメンテーションを利用して入力されるもので、ファイルとしてのフォーマットを壊さないところが良い。

Obsidian with Windows / iOS

せっかく単純な .md ファイルを扱うのだから、同期して色んなデバイスで使えるようにしたい。というか、そもそもここが狙いで Obsidian 導入に踏み切ったのだ。
既に世の中にはいろいろなまとめ記事があるが、自分の行ったステップを備忘録として残しておく。

  • Save Remotely プラグインを Windows / iPad の Obsidian にそれぞれインストールする
  • AWS の準備
    • S3 のバケットを作成する
    • IAM ユーザを作成し、AmazonS3FullAccess 権限を付与する
    • IAM ユーザの Access Key と Secret Access Key を控えておく
  • Save Remotely プラグインの設定で、以下を入力する
    • Endpoint: s3.{region}.amazonaws.com
    • Region: リージョン名
    • Access key ID: 控えたもの
    • Secret Access Key: 控えたもの
    • Bucket Name: S3 で作成したバケット名

なお、Change the remote prefix: という項目があり、S3 バケットの下にサブフォルダを作ることができるらしい。任意だが、今回は素直に vault 名を prefix としてやることにした。これで複数の vault を一つの S3 バケットで管理・同期できるので、後々ブログ記事だけでなく自分の小説の原稿を管理したくなった際にも対応できる。

ちなみに、S3 の利用料金を試算したが、週1のペースで3,000文字の記事をアップロードし続ける場合でも、驚きの月額 0.25 円である。ドル建てで 0.01$ 以上になった場合には請求が来るらしいが、ここは無視できる料金になる。30分程度の設定作業で実現できるのだから、便利なものである。

現在の執筆環境

構成

  • ホスティング: フロントエンドを Vercel にデプロイ
  • Webフロントエンド: 自作ブログテンプレートを Next.js で開発
  • Webバックエンド: ヘッドレスCMSである microCMS
  • 記事の執筆: Windows と iPad の Obsidian アプリで執筆し、AWS S3 で同期させる

管理フロー

  • 執筆
    • Obsidian で記事を書く
    • 自宅なら Wndows、カフェなら iPad
    • 記事を書く前と書いたあとに Sync をする
  • 記事を投稿する
    • コピペして microCMS に張り付けて、公開ボタンを押す
    • Vercel の webhook URL が自動で叩かれ、勝手にブログが再ビルドされ公開される
  • ブログを管理する
    • GitHub の main ブランチに merge させるだけで、Vercel 上で再ビルドされ最新化される

ここまでやりきると、かなり満足している。
構成しているツールやサービス群は多くてWebの初心者にはオススメできないけれど、その分だけ柔軟で堅牢だ。どこかの部分がサービス終了したとしても、部分を差し替えてどんどん成長していける。

小さいことだけどこだわりの集まった環境で、まだまだ「書く行為」を楽しんでいきたい。