nDiki : 静的サイトジェネレータ

2018年2月26日 (月)

Markdown で書いているノートWeb ブラウザで見るのに MkDocs を使う

ノート/メモははライティングアプリ Ulysses を使い Markdown で書いていて、検索・閲覧・整理も Ulysses で基本済ませています。ただいくつかの良く参照するファイルはブックマークやハイパーリンクから Web ブラウザでさっと表示させたかったりします。なので以前は Plack::App::Directory::Markdown を使った自作 PSGI アプリケーションを使ってました。

が、セットアップしたり保守したりという手間を今とれないなと思って、 Markdown ビューアを探してみたところ MkDocs が良さそうなので試してみました。

MkDocsHomebrew で入れてみる

MacBook ProHomebrew で入れて動かしてみます。

 $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 ファイルノートディレクトリへシンボリックリンクを作ればそれらも辿って表示されます。

pip で入れ直す

試していてブラウザでのレンダリング表示が重いなと思って HTML ソースを見たら同じ JavaScript ファイルを何十回も読み込んでいて何か変ぽかったので Homebrew のをやめて pip で入れなおしました。どちらも現在 mkdocs 0.17.2 ですが pip で入れた方は問題なかったのでこちらを使うことにします。

 $brew uninstall mkdocs
 $brew install python
 $pip2 install mkdocs

MkDocs静的サイトジェネレータで、プレビューサーバは補助的機能ですがまずまず使えそうです。

[ 2月26日全て ]

2020年9月26日 (土)

静的サイトジェネレータとして Gatsby をちょっと触ってみる

個人サイトの長期運用を考えると静的にページを作った方が楽そうとか、手元の Markdown ファイルをレンダリングして共有したいことがあるとか、そういう理由で静的サイトジェネレータについて興味を持ち続けている。

今だと Web サイトやアプリケーションを作るための React ベースのオープンソースフレームワーク Gatsby が勢いがあるようなのでちょっと触ってみた。 Gatsby の Quick Start をやってみるところまで。

結構大きく複雑なフレームワークに成長しているのかな。もうちょっとシンプルなのでもいいのかなあ。

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/ にアクセスしビルドしたものも確認。

[ 9月26日全て ]

2021年2月13日 (土)

Obsidian Publish 買った

ノートを整理すると公開したくなるし、公開すると思うとノートを整理する気になる。 Obsidian で書いたノートもやはり公開できるようにしたい。Gatby・Hugo・MkDocs などの静的サイトジェネレータでサイト生成して公開することも考えたけれど、 Obsidian仕様に合わせた内部リンク対応を書く必要があり開発保守コストが高いな。4日前に様子見と思った Obsidian Publish を結局買ってしまうことにした。$96/年。クレジットカード決済での換算レート107.514円で、支払い額は10,321円となった。

独自ドメインで公開もできるけれど HTTPS にしようとするとまだ大変なので当面 publish.obsidian.md の下でいいことにする。将来独自ドメインに移した際に URL が変わってクールじゃないかなというのはあるが、そもそも頻繁に更新するパーソナルナレッジベースの公開サイトという点で URL がどんどん変わるので気にしても仕方ないよね。

[ サブスクリプションサービス ]

[ 2月13日全て ]

2021年8月13日 (金)

Next.js で nDiki を作り直そうと考えて引っ込めた

Web サイトの移行の話が出た流れで、この Web 日記についてちょっと考えたりした。

Perl で書いた自作の日記システム (CGI プログラム) で問題なく動いているが、手を入れずに使い続けているので将来環境(Perl やライブラリ)のアップデート時にハマるのではというのがあると、このまま記事が増え続けた時に問題が起きるのではというのがあり、気掛かりではある。

配信環境に依存しないように静的サイトジェネレータで生成する形に変えたらいいのではと、以前から思ったりしている。

ちょっとしか使ったことがない JavaScript を学ぶ機会としても Next.js とかどうかなとちょっと調べてみた。

個別記事ページを静的ページとして生成するのはいいとして、自動リンク機能で実現しているキーワード別ページとそのページングがちょっと厄介そう。やれるとしても今の URL 体系も一部変えなければいけないな。

今の日記システムに手を入れるのを再開して、 Markdown 対応させるのが先かな。

[ 8月13日全て ]

2021年12月31日 (金)

2021年にお金を払ったサブスクリプションサービス

今年も棚卸しをかねて2021年にお金を払ったサブスクリプションサービスを書き出してみるよ。以下税込額。今年支払ったのは109,725円 (naney.org ドメイン更新5年分含む)。年末時点で継続しているもので月8,594円相当。

今年新しく開始したサブスクリプションは Obsidian の3つ。

合計で21,087円。結構でかい。今年止めたものは無し。

昨年支払ったのが71,968円だったので37,757円増。2017年に支払ったのは39,264円だったので、4年で2.8倍。結構なペースで増えてる。去年棚卸し済みで削れるものは今は無い。来年は自重したい。

今年支払ったもの

さくらのレンタルサーバ プレミアム (継続)

レンタルサーバ。この nDiki の公開とメールボックスが主な用途。2009年に契約して安定稼働しているので乗り換えることもなくずっと利用継続中。

Remember The Milk Pro (タスク管理ツール) (継続)

年額4,800円 (Apple In-App Purchase)。

一番使いやすいタスク管理ツール。2007年に使い始め、最初に Pro にしてみたのは2010年

mixiプレミアム (継続)

mixi のプレミアム会員サービス。mixi日記の表現力がアップするなどのプレミアムサービスを利用するのに登録中。登録しているといろいろな機能がちょっとずつ便利になる。広告も非表示に。

Adobe Creative Cloudフォトプラン (継続)

Lightroom Classic は週のうち何日かは使っていて無くてはならない状態。 Lightroom Classic で現像したデータがあるのでロックインされている。

Google One (継続)

年額3,800円 (Google Play 支払い)。

Google フォトでの容量使用が中心。今年は 200GB のままで大丈夫だった。来年は 2TB (年額13,000円) にしないと足りなくなるかも……。

YouTube Premium ファミリー プラン (継続)
  • 月額1,780円 (Google Play 支払い)。
  • 1年あたり: 21,360円。

YouTube広告の質がだんだん悪くなって不快に感じるようになったのと、何かしら音楽の定額配信サービスを使いたいなと思って一昨年登録。広告が出なくなったのシンプルに快適だし、音楽配信も家族で結構利用しているのでまあお値段相応の価値は感じている。

Nintendo Switch Online ファミリー プラン (継続)

年額4,500円 (クレジットカード払い)。

主に『あつまれ どうつぶの森』『TETRIS 99』のために継続。 Nintendo 64 やセガ メガドライブはほとんど遊んだことが無かったので「Nintendo Switch Online + 追加パック」(+4,400円)には手を出さずに済んでいる。

dアニメストア (継続)
  • 月額440円 (ドコモ払い)。
  • 1年あたり: 5,280円。

響け!ユーフォニアム』シリーズを観るために去年入会。今年は『四月は君の嘘』『ちはやふる』などを観ている。月に観る本数としては若干割高感があるがシリーズで継続して観ているものがあると抜けられないのよね。

Amazonプライム (継続)

年額4,900円 (クレジットカード払い)。

Amazon.co.jp のプレミアム会員サービス。使っている会員特典はお急ぎ便と Prime Video ぐらい。ちょっと割高感。

naney.org ドメイン (継続)

5年間8,250円 (クレジットカード払い)。1年あたり1,650円。

さくらのレンタルサーバにした頃に VALUE-DOMAIN へ移管したあとずっと継続。登録有効期限が今年8月だったので5年更新した。

Obsidian commercial license

年額 $50 (今年は 5,356円、クレジットカード払い)。

ナレッジベースアプリケーション Obsidian を仕事のノートとしても使うためにライセンスを購入。めちゃくちゃ使っているので妥当な額かな。

Obsidian Publish

年額 $96 (今年は 10,321円、クレジットカード払い)。

ナレッジベースアプリケーション Obsidianノートを公開するためのサービス。ノートMarkdown ファイルなので静的サイトジェネレータでサイト生成して公開することもできるのだけれど、開発保守コスト(労力と時間)を考えて公式サービスを使うことにした。

クライアントサイドレンダリングなためか Google にインデックスされにくいというのはあるが、 Obsidian と合わせて公式に保守されているので運用がとても楽なのはありがたい。

デスクトップアプリケーションやモバイルアプリに比べて開発優先度が低いのは仕方ないが、いいお値段なのでもうちょっと頑張って欲しくはある。

Obsidian Sync

年額 $46 (今年は 5,410円、クレジットカード払い)。

ナレッジベースアプリケーション Obsidian の vault を同期するための公式サービス。同期が圧倒的に楽なので一度使うと、クラウドストレージやサードパーティアプリを組み合わせて頑張るのに戻れなくなる。

Obsidian の有料サービス・ライセンスはどれも便利なんだけれど、早期割引適用後で合計年 $194 は結構な額だ。個人でデスクトップアプリを使うのは無料ということで使い始めたけど、気がつけば Roam Pro (年 $165) より高くなっちゃった。

今年は支払いが無かったもの

今年は支払いサイクル・ポイント利用・キャンペーン等で支払いが無かったものはなし。今年の支払いが多かったのはそれもあり。

2021年に止めたもの・更新しなかったもの

今年は無し。

過去にお金を払ったサブスクリプションサービス

[ サブスクリプションサービス ]

[ 12月31日全て ]

2022年2月8日 (火)

Mkdocs Obsidian を試す

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 のリンク機能などは使わない)」がいい気がしてきた。

2022年03月27日 追記

Unicode 正規化形式の違いの問題は Obsidian vault を Cryptomator vault の中に置いたことによるもので、 Obsidian + MkDocs で使う上では問題無かった。

[ 組織内公開ワーキングノートサイト ] [ 公開で作業する ]

[ 2月8日全て ]

2022年2月9日 (水)

MkDocs でワーキングノートを GitHub Pages にデプロイし公開する

Markdown で書いているノートを「公開で作業する」というコンセプトで社内で公開するのに、 GitHub Enterprise Server (以下 GHE) の GitHub Pages を使ってみることにした。

静的サイトジェネレータ MkDocs には GitHub Pages にデプロイする機能が入っている。GHE 上のリポジトリに対しても問題なく動いた。

手順1: MkDocs をインストール

 $ pip3 install mkdocs mkdocs-material

手順2: GHE でリポジトリを作成

GHE 上で notes リポジトリを作成する。プライベートでも OK。

手順3: MkDocs プロジェクトを作成する

 $ 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

手順4: MkDocs ビルトインサーバでどのようなサイトになるか確認する

 $ mkdocs serve

を実行し、 Web ブラウザで http://127.0.0.1:8000/ に接続しどのように表示するか確認する。

手順5: GitHub Pages にデプロイする

 $ 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 Pages は公開

プライベートリポジトリでも GitHub Enterprise Server の GitHub Pages サイトは公開となるので、組織内で限定公開するには境界型セキュリティに頼ることになる。ゼロトラストと考えるなら、漏洩してはならない情報を書かないよう注意して使うべきだ。

[ 組織内公開ワーキングノートサイト ] [ 公開で作業する ]

[ 2月9日全て ]

2023年2月11日 (土)

Obsidian Publish を自動更新してワーキングノートサイトをそのまま継続する

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 がプライベートサイト向けには今のところいいかと思う。

[ サブスクリプションサービス ]

[ 2月11日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.021558s / load averages: 0.26, 0.33, 0.25