😸

Emacs org-mode で個人Webページを運用した

2024/07/03に公開1

このメモについて

個人ホームページを org-mode で作成して運用した際のメモ

記事執筆時の状況

  • Emacsを日常的に使っていた
  • rsync でファイルをデプロイすれば静的Webサイトを公開できるサーバを運用中であった

個人Webサイトの公開

下記理由で個人Webサイトを作成することにした、

  • 認証なしにアクセスできる私的なメモとしてのWebページが欲しかった
  • 自己紹介などURLの共有で済ませられると便利だと思った

その個人サイトは https://www.genie-yk.net

Webサイト作成の方法

華美な見た目は必要なく、ほとんど純粋なテキストだけでも良いような目的であった。
個人のメモを Emacs org-mode でとっていたので、それを使って作成できれば便利だと感じた。

そこで、 org-mode の文章から静的HTMLを作成するスクリプトを作成してWebサイトの作成と公開を始めた。

下記方針で org フォーマットの記事を書きためて Wiki のように運用しつつ、
make でキックするスクリプトでHTML/CSSのファイル群を生成、 rsync 同期により公開した。

  • index.org というファイルを用意し、ここから他ファイルをたどっていく
  • index.org ファイル以外は全て [[記事名][file:unixtimestamp.org]] の形式で index.org と同一フォルダに作成した
    • unixtimestamp.org の 「unixtimestamp」 部分はタイムスタンプの数字文字列で、Emacs上で date +%s コマンドを発行して都度採番していた
    • 重複しない文字列であれば何でもよかったので、上記運用でファイル名を決めていた

https://github.com/GenieYK/org-website-base/tree/main

に、ボイラーテンプレートとして固有の情報を削ったコードを置いている。

作成し、運用してみた感想

日頃使用している Emacs 上で記事を書いて、 M-x compile で 記事を公開できるのはとても便利だった。

Webサイトとしての見た目はかなり恥しいレベルかもれしれないが、個人の便利のためだけに利用しているので問題ない。

むしろ、 eww 等のテキストブラウザで見る際に見やすい感じがある。

Discussion

rilril

すごく参考になりました。リンク先のテンプレートをみて2点気がついたことがあったのでここに記しておきます。

  1. main.cssの中でtable-of-contentstable-of-ontentsとtypoしている。
#table-of-ontents {
    padding: 2rem;
}
  1. Makefileのtouch部分は、build.elの最後を(org-publish-all)から(org-publish-all t)にすればおそらく不要である。