ノート/メモははライティングアプリ Ulysses を使い Markdown で書いていて、検索・閲覧・整理も Ulysses で基本済ませています。ただいくつかの良く参照するファイルはブックマークやハイパーリンクから Web ブラウザでさっと表示させたかったりします。なので以前は Plack::App::Directory::Markdown を使った自作 PSGI アプリケーションを使ってました。
が、セットアップしたり保守したりという手間を今とれないなと思って、 Markdown ビューアを探してみたところ MkDocs が良さそうなので試してみました。
MacBook Pro に Homebrew で入れて動かしてみます。
$brew install MkDocs $mkdir -p ~/var/mkdocs $cd ~/var/mkdocs $mkdocs new local $cd local $mkdocs serve
で Web サーバが立ち上がるので http://127.0.0.1:8000/ にアクセスすると ~/var/mkdocs/local/docs/index.md の内容を HTML に変換したものが表示されます。お手軽! 設定変更は ~/var/mkdocs/local/mkdocs.yml できます。
あとは docs の下に Markdown ファイルを置いておけば Web ブラウザで閲覧できます。docs の下に既存の Markdown ファイルノートディレクトリへシンボリックリンクを作ればそれらも辿って表示されます。
試していてブラウザでのレンダリング表示が重いなと思って HTML ソースを見たら同じ JavaScript ファイルを何十回も読み込んでいて何か変ぽかったので Homebrew のをやめて pip で入れなおしました。どちらも現在 mkdocs 0.17.2 ですが pip で入れた方は問題なかったのでこちらを使うことにします。
$brew uninstall mkdocs $brew install python $pip2 install mkdocs
MkDocs は静的サイトジェネレータで、プレビューサーバは補助的機能ですがまずまず使えそうです。
個人サイトの長期運用を考えると静的にページを作った方が楽そうとか、手元の Markdown ファイルをレンダリングして共有したいことがあるとか、そういう理由で静的サイトジェネレータについて興味を持ち続けている。
今だと Web サイトやアプリケーションを作るための React ベースのオープンソースフレームワーク Gatsby が勢いがあるようなのでちょっと触ってみた。 Gatsby の Quick Start をやってみるところまで。
結構大きく複雑なフレームワークに成長しているのかな。もうちょっとシンプルなのでもいいのかなあ。
https://www.gatsbyjs.com/docs/quick-start/
$ npm install -g gatsby-cli $ cd ~/tmp $ gatsby new gatsby-site https://github.com/gatsbyjs/gatsby-starter-hello-world $ cd gatsby-site $ gatsby develop
http://localhost:8000/ にアクセスして Hello world! を確認。src/pages/index.js を編集してすぐに反映されることをチェック。
$ gatsby build $ gatsby serve
http://localhost:9000/ にアクセスしビルドしたものも確認。
ノートを整理すると公開したくなるし、公開すると思うとノートを整理する気になる。 Obsidian で書いたノートもやはり公開できるようにしたい。Gatby・Hugo・MkDocs などの静的サイトジェネレータでサイト生成して公開することも考えたけれど、 Obsidian の仕様に合わせた内部リンク対応を書く必要があり開発保守コストが高いな。4日前に様子見と思った Obsidian Publish を結局買ってしまうことにした。$96/年。クレジットカード決済での換算レート107.514円で、支払い額は10,321円となった。
独自ドメインで公開もできるけれど HTTPS にしようとするとまだ大変なので当面 publish.obsidian.md の下でいいことにする。将来独自ドメインに移した際に URL が変わってクールじゃないかなというのはあるが、そもそも頻繁に更新するパーソナルナレッジベースの公開サイトという点で URL がどんどん変わるので気にしても仕方ないよね。
[ サブスクリプションサービス ]
Web サイトの移行の話が出た流れで、この Web 日記についてちょっと考えたりした。
Perl で書いた自作の日記システム (CGI プログラム) で問題なく動いているが、手を入れずに使い続けているので将来環境(Perl やライブラリ)のアップデート時にハマるのではというのがあると、このまま記事が増え続けた時に問題が起きるのではというのがあり、気掛かりではある。
配信環境に依存しないように静的サイトジェネレータで生成する形に変えたらいいのではと、以前から思ったりしている。
ちょっとしか使ったことがない JavaScript を学ぶ機会としても Next.js とかどうかなとちょっと調べてみた。
個別記事ページを静的ページとして生成するのはいいとして、自動リンク機能で実現しているキーワード別ページとそのページングがちょっと厄介そう。やれるとしても今の URL 体系も一部変えなければいけないな。
今年も棚卸しをかねて2021年にお金を払ったサブスクリプションサービスを書き出してみるよ。以下税込額。今年支払ったのは109,725円 (naney.org ドメイン更新5年分含む)。年末時点で継続しているもので月8,594円相当。
今年新しく開始したサブスクリプションは Obsidian の3つ。
合計で21,087円。結構でかい。今年止めたものは無し。
昨年支払ったのが71,968円だったので37,757円増。2017年に支払ったのは39,264円だったので、4年で2.8倍。結構なペースで増えてる。去年棚卸し済みで削れるものは今は無い。来年は自重したい。
レンタルサーバ。この nDiki の公開とメールボックスが主な用途。2009年に契約して安定稼働しているので乗り換えることもなくずっと利用継続中。
年額4,800円 (Apple In-App Purchase)。
一番使いやすいタスク管理ツール。2007年に使い始め、最初に Pro にしてみたのは2010年。
mixi のプレミアム会員サービス。mixi日記の表現力がアップするなどのプレミアムサービスを利用するのに登録中。登録しているといろいろな機能がちょっとずつ便利になる。広告も非表示に。
Lightroom Classic は週のうち何日かは使っていて無くてはならない状態。 Lightroom Classic で現像したデータがあるのでロックインされている。
年額3,800円 (Google Play 支払い)。
Google フォトでの容量使用が中心。今年は 200GB のままで大丈夫だった。来年は 2TB (年額13,000円) にしないと足りなくなるかも……。
YouTube の広告の質がだんだん悪くなって不快に感じるようになったのと、何かしら音楽の定額配信サービスを使いたいなと思って一昨年登録。広告が出なくなったのシンプルに快適だし、音楽配信も家族で結構利用しているのでまあお値段相応の価値は感じている。
年額4,500円 (クレジットカード払い)。
主に『あつまれ どうつぶの森』『TETRIS 99』のために継続。 Nintendo 64 やセガ メガドライブはほとんど遊んだことが無かったので「Nintendo Switch Online + 追加パック」(+4,400円)には手を出さずに済んでいる。
『響け!ユーフォニアム』シリーズを観るために去年入会。今年は『四月は君の嘘』『ちはやふる』などを観ている。月に観る本数としては若干割高感があるがシリーズで継続して観ているものがあると抜けられないのよね。
年額4,900円 (クレジットカード払い)。
Amazon.co.jp のプレミアム会員サービス。使っている会員特典はお急ぎ便と Prime Video ぐらい。ちょっと割高感。
5年間8,250円 (クレジットカード払い)。1年あたり1,650円。
さくらのレンタルサーバにした頃に VALUE-DOMAIN へ移管したあとずっと継続。登録有効期限が今年8月だったので5年更新した。
年額 $50 (今年は 5,356円、クレジットカード払い)。
ナレッジベースアプリケーション Obsidian を仕事のノートとしても使うためにライセンスを購入。めちゃくちゃ使っているので妥当な額かな。
年額 $96 (今年は 10,321円、クレジットカード払い)。
ナレッジベースアプリケーション Obsidian のノートを公開するためのサービス。ノートは Markdown ファイルなので静的サイトジェネレータでサイト生成して公開することもできるのだけれど、開発保守コスト(労力と時間)を考えて公式サービスを使うことにした。
クライアントサイドレンダリングなためか Google にインデックスされにくいというのはあるが、 Obsidian と合わせて公式に保守されているので運用がとても楽なのはありがたい。
デスクトップアプリケーションやモバイルアプリに比べて開発優先度が低いのは仕方ないが、いいお値段なのでもうちょっと頑張って欲しくはある。
年額 $46 (今年は 5,410円、クレジットカード払い)。
ナレッジベースアプリケーション Obsidian の vault を同期するための公式サービス。同期が圧倒的に楽なので一度使うと、クラウドストレージやサードパーティアプリを組み合わせて頑張るのに戻れなくなる。
Obsidian の有料サービス・ライセンスはどれも便利なんだけれど、早期割引適用後で合計年 $194 は結構な額だ。個人でデスクトップアプリを使うのは無料ということで使い始めたけど、気がつけば Roam Pro (年 $165) より高くなっちゃった。
今年は支払いサイクル・ポイント利用・キャンペーン等で支払いが無かったものはなし。今年の支払いが多かったのはそれもあり。
今年は無し。
[ サブスクリプションサービス ]
Obsidian Publish でノートをインターネット公開しつつ、それとは別に組織内で「公開で作業する」というコンセプトでノートを公開したいと模索している。
Obsidian forum ではいろいろな方法が提案されている。今回は以前使ったことがある静的サイトジェネレータ MkDocs を使った静的サイト生成を試してみることにした。
インストール:
pip3 install --upgrade pip pip3 install mkdocs pip3 install mkdocs-material pip3 install mkdocs-mermaid2-plugin pip3 install mkdocs-roamlinks-plugin pip3 install obs2mk pip3 install mkdocs-awesome-pages-plugin pip3 install git+git://github.com/Mara-Li/mkdocs-ezlinks-plugin pip3 install mdx_breakless_lists pip3 install git+git://github.com/Mara-Li/mkdocs-tooltipster-links-plugin#egg=mkdocs-tooltipster-links-plugin pip3 install mkdocs-embed-file-plugins pip3 install rich
次に雛形として Mkdocs Obsidian を取得する。
obs2mk コマンドを使うと Obsidian vault から MkDocs プロジェクトの docs を生成させられる。
obs2mk --git
そこそこいい感じだけれど出来合いのだと痒いところに手が届かないと思った時にちょっと辛いかなというのが印象かな。開発が止まることもあり得るし頼らない方が良さそう。
濁点のあるノートタイトルは予想通りうまくリンクにならなかった(Unicode 正規化形式の違いのせい)。
「Obsidian vault 内の一部のノートを MkDocs で静的サイト化する」するのではなく「MkDocs で静的サイト化するノートを Obsidian vault 内に置いて一緒に編集する (それらの Markdown ファイルは Obsidian のリンク機能などは使わない)」がいい気がしてきた。
Unicode 正規化形式の違いの問題は Obsidian vault を Cryptomator vault の中に置いたことによるもので、 Obsidian + MkDocs で使う上では問題無かった。
[ 組織内公開ワーキングノートサイト ] [ 公開で作業する ]
Markdown で書いているノートを「公開で作業する」というコンセプトで社内で公開するのに、 GitHub Enterprise Server (以下 GHE) の GitHub Pages を使ってみることにした。
静的サイトジェネレータ MkDocs には GitHub Pages にデプロイする機能が入っている。GHE 上のリポジトリに対しても問題なく動いた。
$ pip3 install mkdocs mkdocs-material
GHE 上で notes リポジトリを作成する。プライベートでも OK。
$ git clone git@example.com:Naney/notes.git $ cd notes $ git config user.name 'WATANABE Yoshimasa' $ git config user.email naney@example.com
MkDocs 設定ファイルと Markdown ファイルは既存の Obsidian vault の中にそれぞれ置いておき、シンボリックリンクしておくことにする。
$ ln -s /path/to/vault/Settings/mkdocs.yml
mkdocs.yml 内で以下を指定しておく。
docs_dir: /path/to/vault/notes
$ mkdocs serve
を実行し、 Web ブラウザで http://127.0.0.1:8000/ に接続しどのように表示するか確認する。
$ mkdocs gh-deploy
を実行すると gh-pages ブランチ上に静的サイトが生成され、リモートリポジトリに push してくれる。 GHE のリポジトリ側も自動で gh-pages ブランチを GitHub Pages で公開するように設定してくれる。びっくり。 https://example.com/pages/Naney/notes/ が公開 URL になる。
あとは Markdown ファイルを追加・更新・削除したら必要に応じて mkdocs serve で確認しつつ、 mkdocs gh-deploy していけば良い。
やってみると思ったよりお手軽だった。
プライベートリポジトリでも GitHub Enterprise Server の GitHub Pages サイトは公開となるので、組織内で限定公開するには境界型セキュリティに頼ることになる。ゼロトラストと考えるなら、漏洩してはならない情報を書かないよう注意して使うべきだ。
[ 組織内公開ワーキングノートサイト ] [ 公開で作業する ]
Obsidian で書いているノートを簡単に公開できる公式サービス Obsidian Publish を自動更新した。$96/年。クレジットカード決済での換算レート134.787円で、支払い額は12,939円。円安で去年より1,540円アップ。
ワーキングノートサイト nNodes として今日時点で 557 ノート (画像等含め 562 ファイル) を公開状態にしている。
Obsidian vault を公開する Obsidian Publish Alternatives なツールはいろいろあるけれど、公開と管理の容易さ・Obsidian との互換性・サイト機能・開発保守の継続性を考えるとまだ選べるものが無いなという印象である。
パーソナルナレッジマネジメント自体にではなくサイト管理に時間を費やしてしまうと本末転倒なので Obsidian Publish がベストチョイスだ。
Obsidian Publish は共通パスワードを使ったアクセス制限しかできないので、プライベートなサイト運営には向かない。ちょっとドキュメントサイトっぽい作りになってしまうが静的サイトジェネレータとしては、1年弱運用できている Obsidian + MkDocs + MkDocs Roamlinks Plugin がプライベートサイト向けには今のところいいかと思う。
[ サブスクリプションサービス ]
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。