This article is automatically generated from the original content

自分の思索やらを記録しておきたいという要望が以前からあり、今までは物理のノートやTwitter, note, Zennや社内wikiなどに書いていましたが、

  • データが手元に残らないため失われる可能性がある
  • 一元管理できない
  • 内容を機械処理(翻訳、言語解析等)にかけるのが面倒
  • relationalな内容をそのように管理/取り扱いすることができない

という問題がありました。

relationalな内容の管理とは、アイデアや思想はその周辺のアイデアとのつながりがあってこそ活きるので、人間の頭の中で起きているような連想を行える何者かのことです。


要件

サイトのコンセプトが要件です

  • なんでも書ける
  • 書いたものはローカル/GitHubに残せる
  • 書いたものを構造化できる
  • 書いたものを後処理にかけられる

仕様

  • Git管理にする
  • 静的HTMLをホスティングする
    • 動的にする理由もないし…
  • ホスティングはGitHub Pagesを利用
    • 楽やねん
  • ジェネレータはHugoを利用
    • なんでも良かったのだが、元コンテンツをMarkdownで記述できることと、GitHub Pagesが利用しているJekyllはGitHub Action上での変更容易性がなさそう&Ruby製なので中立のHugoにした
  • ビルド&デプロイはGitHub Actionを利用
    • 楽やねん
  • relationalな内容の管理
    • どうしようね?

実装・運用

静的HTML生成〜公開はHugoのドキュメンテーションが詳しく、おおよそ詰まらずにできた
Hugoを使用したGitHub Pages用の静的HTML生成

relationalな内容の管理

実装を試みたことはある(BidirectionalEditor)がデータがない状態ではモチベーションが続かなかったので、まずコンテンツを拡充するのが当面の目標。

各記事/記事中の用語に対してその説明/他の記事が紐づけられていて、ユーザー体験としては相互にリンクされたそれを自由に行き来できるというものになるはず。

静的HTML + 手作業で行うこともおそらく可能なのでスモールスタートでやってみてもいい。
本格的に機械的に行うなら毎ビルド時に総ざらいするよりDB入れたほうがいいが…とりま体験を先に作ってみましょう。

その他

  • GitHub ActionでHugoのビルドに使用している peaceiris/actions-gh-pages@v3 はかなり用途が特定されている印象があるので複雑な処理を挟む場合は自前で書き直すかも
  • 記事の体を成すものはですます調、それ以外は適当