daemonfreaks.com

github actionsでデプロイ

posted by jun-g at Sun, 13 Feb 2022 12:55 JST

前回 からの続きで、新しい記事を書いてgithubにpushしたらgithub actionsを使ってサーバーに自動的にデプロイされるようにしました。

尚、実装には このページ を参考にしました。分かりやすい記事を書いていただきありがとうございました。

どこからでも記事が書けるように、という目標でチマチマ整備を進めてたのですが、これでgithubにログインできればどこからでも記事を書けるようにはなったので、一旦目標達成ということで。

mtimeをメタデータから取る

posted by jun-g at Sun, 06 Feb 2022 23:40 JST

PyBlosxomは記事の作成日時を各エントリーファイルの修正日時(mtime)から取得します。投稿後に過去記事を修正した場合に作成日付が変わってしまうのが気に入らなかったので、entrycacheというプラグインを使用して初回に記事が読み込まれた際のmtimeがキャッシュされるようにしていましたが、キャッシュファイルがサーバー側で生成・更新され続けるため、キャッシュファイルを紛失してしまうと作成日時が再現できなくなる脆弱な仕組みが気になっていたので、 entrymtime というプラグインを自作し、各エントリーファイルのmetadataに作成日時を書いておけるようにしました。

移行の為にentrycacheのキャッシュファイルから作成日時を抽出して各エントリーファイルのmetadataに追記。

import os, time

with open('.entrycache') as c:
    data = c.read()

caches = eval(data)

for item in caches.items():
    fname = os.path.basename(item[0])
    if not os.path.exists(fname):
        continue
    t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(item[1]))
    with open(fname) as r:
        lines = r.readlines()
    lines.insert(1, "#entrymtime %s\n" % t)
    with open(os.path.join("new", fname), 'w') as w:
        w.writelines(lines)

ついでに拡張子がtxtのエントリーファイルの拡張子を blx に変更しました。

さらについでに、エントリーファイルもgithubで管理するようにしました。ついでというよりこれが本当のやりたかったこと。

うーん、2022年の記事とは思えないですね…w

サーバーのPythonバージョンを3.8に上げたら その2

posted by jun-g at Sun, 12 Sep 2021 02:59 JST

直りました。

  1. commentsプラグインで他にcgi.parseを使ってるところがあったのでhtml.parseに変更してエラーが出ないようにした。
  2. python3ブランチでは、HTMLで書いたファイルは拡張子をtxtからblxに変えないとダメな変更が入っていて、それに気付いてなくてPython3に移行した後ずっと発生してた問題だった。一旦拡張子txtのまま読み込むようにした。

ほったらかしだと気持ち悪かったので直せてよかったです。

サーバーのPythonバージョンを3.8に上げたら

posted by jun-g at Mon, 06 Sep 2021 00:14 JST

  1. commentsプラグインでエラーが出るようになったので直した。 cgiモジュールからparse_qs()が削除された ことによるもの。代わりにurllib.parse.parse_qs()を使えばOK。
  2. HTMLで書いた、拡張子txtのエントリーを読み込ませるとエラーが出るようになった。暫定的にエラーだけ出ないようにしたが、拡張子txtのエントリーがちゃんと読み込めていない(404になる)ので、要調査。

FreeBSD上のPythonのデフォルトバージョンが3.7から3.8に上がったので追従して上げてみたけど、結構面倒臭い結果に。やはりちゃんとテストしてから上げるべきだった…w

Python3系に移行した

posted by jun-g at Sun, 21 Jun 2020 11:51 JST

このブログは未だにPyBlosxomで運用しているわけですが、Python2系の公式サポートもそろそろ終了とのことなので、ここのPyBlosxomもPython3系に移行しました。

詳細は別途書きますが、まだpluginに細かいバグが残ってるのと、実行環境に調整の余地ありなので、チマチマ改善していきます。

取り急ぎ。

PyBlosxomのプラグイン

posted by jun-g at Mon, 23 Sep 2013 22:28 JST

バージョン1.5から標準でプラグインが同梱されるようになったので、同梱されてるものはなるべくそれを使うように設定を変更しました。

ついでに自作のプラグインはコードを整理してちょっとづつbitbucketに登録していってます。

daemonfreaks / pyblosxom-plugins

自分のブログをちょこちょこカスタマイズするのは箱庭的な趣があって、何年経っても楽しいものですね。