blue note.

WriteFreely

#WriteFreely #Fediverse #ActivityPub #サーバーいじり #ChatGPT #VibeCoding

2年ほど存在を忘れていたこのブログを、ふと思い出したので色々改造なども行ってみました。 (とはいえ僕はコードの読み書きができるわけではないので、ChatGPTを使ったVibe-Codingです。)

  • 独自テーマの整備 — WriteFreely標準UIをベースに、ダーク系の個人ブログらしいレイアウト・配色へカスタマイズ。
  • 記事インデックスの独自実装 — 記事情報をJSON化し、JavaScriptから記事一覧・タグなどを扱える仕組みを追加。
  • タグ機能の追加 — WriteFreelyの記事からタグを扱い、サイドバーなどから記事を辿れるようにした。
  • 記事シェアボタンの追加 — Mastodon・Misskey・Xへの共有と、URLコピー機能を記事下部に実装。
  • ActivityPub Actorアイコンの変更 — WriteFreely標準の「ブログ名先頭文字アイコン」を独自画像へ差し替え。
  • サイドバー「Links」の追加 — 外部サイトやSNSへのリンク集を独自に追加。 リンク情報のJSON外出し — リンクを blue-note-links.json で管理し、JavaScript本体を編集せず追加・変更できるようにした。
  • リンクバナー対応 — リンクごとにバナー画像を指定でき、未指定ならテキストリンクへフォールバックするよう実装。
  • 自サイト用リンクバナーの設置 — 「リンクフリー・相互リンク歓迎」とblue note.のバナーをサイドバーへ追加。
  • カスタマイズ資産のバックアップ拡張 — JS・JSON・アイコン・バナー・テンプレート・インデックス生成スクリプト等をバックアップ対象へ追加。
  • 記事URIを日時形式へ変更 — WriteFreely本体をGoで改造し、新規記事のURIをタイトル由来ではなく YYYYMMDDHHMMSS に変更。
  • URI改造をblue note.限定に実装 — blue0a6m5c Collectionへの公開時だけ日時slugを適用し、WriteFreely本来の挙動への影響を限定。
  • WriteFreelyをソースから独自ビルド — Go 1.25環境を導入し、v0.17.2をベースに独自改造版バイナリを作成・稼働。
  • ついでに謎のスパムアカウントを調査・除去 — 過去のWriteFreely登録制御バグを突いたBotによるアカウント・投稿を特定し、証拠をバックアップしたうえでDBから削除。

かなり使いやすくなったし、ブログっぽい見た目に出来たと思います。